diff --git a/api_contents2.txt b/api_contents2.txt index 3d9bae3..8fc6237 100644 --- a/api_contents2.txt +++ b/api_contents2.txt @@ -101,9 +101,12 @@ 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', @@ -226,7 +229,7 @@ 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -269,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -276,7 +280,6 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', @@ -399,9 +402,6 @@ 'action_ctx_base_source_t_chooser_get', 'action_ctx_base_source_t_chooser_set', 'action_ctx_base_source_t_reset', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -565,6 +565,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -591,8 +593,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -870,6 +870,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -942,6 +944,7 @@ 'begin_type_updating', 'bin_flag', 'bin_search', + 'bin_search3', 'bin_search__SWIG_0', 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', @@ -1179,6 +1182,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1264,6 +1269,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1894,6 +1901,7 @@ 'chooser_base_t_header_get', 'chooser_base_t_height_get', 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', 'chooser_base_t_is_force_default', 'chooser_base_t_is_modal', 'chooser_base_t_is_multi', @@ -1932,6 +1940,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -2320,11 +2366,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2365,6 +2421,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2400,6 +2457,7 @@ 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', @@ -2610,6 +2668,7 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', 'delete_call_stack_info_vec_t', 'delete_call_stack_t', @@ -2641,6 +2700,8 @@ 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2676,6 +2737,7 @@ 'delete_dirtree_iterator_t', 'delete_dirtree_selection_t', 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', 'delete_dyn_ea_array', @@ -2758,6 +2820,10 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_input_file_t', 'delete_insn_cmt_t', 'delete_insn_cmts_t', @@ -2834,6 +2900,7 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', 'delete_op_parent_info_t', 'delete_op_t', @@ -2843,6 +2910,7 @@ 'delete_oprepr_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_pattern_id_t', 'delete_pkt_get_pop_result_t', 'delete_pkt_get_pop_t', @@ -2870,8 +2938,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2930,6 +2996,7 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -3090,8 +3157,8 @@ 'dirspec_t_get_attrs', 'dirspec_t_get_inode', 'dirspec_t_get_name', - 'dirspec_t_nodename_get', - 'dirspec_t_nodename_set', + 'dirspec_t_id_get', + 'dirspec_t_id_set', 'dirspec_t_rename_inode', 'dirspec_t_unlink_inode', 'dirtree_cursor_t___eq__', @@ -3156,6 +3223,7 @@ 'dirtree_t_change_rank', 'dirtree_t_chdir', 'dirtree_t_errstr', + 'dirtree_t_find_entry', 'dirtree_t_findfirst', 'dirtree_t_findnext', 'dirtree_t_get_abspath', @@ -3164,7 +3232,7 @@ 'dirtree_t_get_dir_size', 'dirtree_t_get_entry_attrs', 'dirtree_t_get_entry_name', - 'dirtree_t_get_nodename', + 'dirtree_t_get_id', 'dirtree_t_get_parent_cursor', 'dirtree_t_get_rank', 'dirtree_t_getcwd', @@ -3185,10 +3253,12 @@ 'dirtree_t_resolve_path', 'dirtree_t_rmdir', 'dirtree_t_save', - 'dirtree_t_set_nodename', + 'dirtree_t_set_id', + 'dirtree_t_traverse', 'dirtree_t_unlink', 'dirtree_t_unlink__SWIG_0', 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -3257,6 +3327,7 @@ 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', 'disown_file_enumerator_t', 'disown_func_md_diff_handler_t', @@ -3437,6 +3508,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -4034,10 +4106,6 @@ 'func_info_vec_t_size', 'func_info_vec_t_swap', 'func_info_vec_t_truncate', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -4058,6 +4126,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_md_diff_handler_t_on_comment_changed', 'func_md_diff_handler_t_on_extra_comment_changed', 'func_md_diff_handler_t_on_frame_member_changed', @@ -4220,8 +4290,12 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', 'gdl_graph_t_begin', 'gdl_graph_t_edge', 'gdl_graph_t_empty', @@ -4260,7 +4334,6 @@ 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', - 'generate_til_with_parser', 'generic_linput_t_blocksize_get', 'generic_linput_t_blocksize_set', 'generic_linput_t_filesize_get', @@ -4341,6 +4414,7 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', @@ -4371,6 +4445,7 @@ 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -4498,8 +4573,7 @@ 'get_ind_purged', 'get_inf_structure', 'get_initial_ida_version', - 'get_initial_ida_version__SWIG_0', - 'get_initial_ida_version__SWIG_1', + 'get_initial_idb_version', 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', @@ -4750,6 +4824,7 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', 'get_vftable_ea', 'get_vftable_ordinal', @@ -4972,8 +5047,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4983,9 +5058,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -5036,8 +5108,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -5185,6 +5255,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -5232,8 +5305,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -5322,6 +5395,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -5365,10 +5441,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -5535,6 +5611,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'input_file_t_md5_get', 'input_file_t_md5_set', 'input_file_t_path_get', @@ -5629,6 +5735,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5829,6 +5941,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -6585,6 +6698,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -7042,6 +7156,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -7523,7 +7638,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -7792,6 +7906,7 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', 'new_call_stack_info_vec_t', 'new_call_stack_info_vec_t__SWIG_0', @@ -7848,6 +7963,10 @@ 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7861,8 +7980,6 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', @@ -7905,6 +8022,7 @@ 'new_dirtree_iterator_t', 'new_dirtree_selection_t', 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', @@ -8039,6 +8157,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_input_file_t', 'new_insn_cmt_t', 'new_insn_cmts_t', @@ -8162,6 +8284,7 @@ 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', 'new_op_parent_info_t', 'new_op_t', @@ -8172,6 +8295,7 @@ 'new_optblock_t', 'new_optinsn_t', 'new_packet', + 'new_params_t', 'new_pattern_id_t', 'new_pkt_get_pop_result_t', 'new_pkt_get_pop_t', @@ -8208,10 +8332,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -8271,6 +8391,8 @@ 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -8321,13 +8443,12 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -8548,6 +8669,10 @@ 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', @@ -8606,6 +8731,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -8620,6 +8747,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -8630,8 +8761,12 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', @@ -8809,6 +8944,10 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', @@ -9211,49 +9350,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -9624,6 +9720,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -10367,6 +10465,8 @@ 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', @@ -10424,6 +10524,7 @@ 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -10616,6 +10717,14 @@ 'step_into', 'step_over', 'step_until_ret', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -10686,15 +10795,22 @@ 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -10705,6 +10821,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -10798,6 +10915,8 @@ 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -10815,6 +10934,8 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', @@ -11369,6 +11490,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -11380,6 +11505,7 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', 'udc_filter_t_install', 'udc_filter_t_match', @@ -11408,6 +11534,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', diff --git a/api_contents3.txt b/api_contents3.txt index 4f64157..b20fc34 100644 --- a/api_contents3.txt +++ b/api_contents3.txt @@ -101,9 +101,12 @@ 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', @@ -226,7 +229,7 @@ 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -269,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -276,7 +280,6 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', @@ -399,9 +402,6 @@ 'action_ctx_base_source_t_chooser_get', 'action_ctx_base_source_t_chooser_set', 'action_ctx_base_source_t_reset', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -565,6 +565,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -591,8 +593,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -870,6 +870,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -942,6 +944,7 @@ 'begin_type_updating', 'bin_flag', 'bin_search', + 'bin_search3', 'bin_search__SWIG_0', 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', @@ -1179,6 +1182,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1264,6 +1269,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1894,6 +1901,7 @@ 'chooser_base_t_header_get', 'chooser_base_t_height_get', 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', 'chooser_base_t_is_force_default', 'chooser_base_t_is_modal', 'chooser_base_t_is_multi', @@ -1932,6 +1940,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -2320,11 +2366,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2365,6 +2421,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2400,6 +2457,7 @@ 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', @@ -2610,6 +2668,7 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', 'delete_call_stack_info_vec_t', 'delete_call_stack_t', @@ -2641,6 +2700,8 @@ 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2676,6 +2737,7 @@ 'delete_dirtree_iterator_t', 'delete_dirtree_selection_t', 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', 'delete_dyn_ea_array', @@ -2758,6 +2820,10 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_input_file_t', 'delete_insn_cmt_t', 'delete_insn_cmts_t', @@ -2834,6 +2900,7 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', 'delete_op_parent_info_t', 'delete_op_t', @@ -2843,6 +2910,7 @@ 'delete_oprepr_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_pattern_id_t', 'delete_pkt_get_pop_result_t', 'delete_pkt_get_pop_t', @@ -2870,8 +2938,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2930,6 +2996,7 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2979,6 +3046,7 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', @@ -3089,8 +3157,8 @@ 'dirspec_t_get_attrs', 'dirspec_t_get_inode', 'dirspec_t_get_name', - 'dirspec_t_nodename_get', - 'dirspec_t_nodename_set', + 'dirspec_t_id_get', + 'dirspec_t_id_set', 'dirspec_t_rename_inode', 'dirspec_t_unlink_inode', 'dirtree_cursor_t___eq__', @@ -3155,6 +3223,7 @@ 'dirtree_t_change_rank', 'dirtree_t_chdir', 'dirtree_t_errstr', + 'dirtree_t_find_entry', 'dirtree_t_findfirst', 'dirtree_t_findnext', 'dirtree_t_get_abspath', @@ -3163,7 +3232,7 @@ 'dirtree_t_get_dir_size', 'dirtree_t_get_entry_attrs', 'dirtree_t_get_entry_name', - 'dirtree_t_get_nodename', + 'dirtree_t_get_id', 'dirtree_t_get_parent_cursor', 'dirtree_t_get_rank', 'dirtree_t_getcwd', @@ -3184,10 +3253,12 @@ 'dirtree_t_resolve_path', 'dirtree_t_rmdir', 'dirtree_t_save', - 'dirtree_t_set_nodename', + 'dirtree_t_set_id', + 'dirtree_t_traverse', 'dirtree_t_unlink', 'dirtree_t_unlink__SWIG_0', 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -3256,6 +3327,7 @@ 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', 'disown_file_enumerator_t', 'disown_func_md_diff_handler_t', @@ -3436,6 +3508,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -4033,10 +4106,6 @@ 'func_info_vec_t_size', 'func_info_vec_t_swap', 'func_info_vec_t_truncate', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -4057,6 +4126,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_md_diff_handler_t_on_comment_changed', 'func_md_diff_handler_t_on_extra_comment_changed', 'func_md_diff_handler_t_on_frame_member_changed', @@ -4138,11 +4209,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -4214,8 +4290,12 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', 'gdl_graph_t_begin', 'gdl_graph_t_edge', 'gdl_graph_t_empty', @@ -4254,7 +4334,6 @@ 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', - 'generate_til_with_parser', 'generic_linput_t_blocksize_get', 'generic_linput_t_blocksize_set', 'generic_linput_t_filesize_get', @@ -4335,6 +4414,7 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', @@ -4365,6 +4445,7 @@ 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -4492,8 +4573,7 @@ 'get_ind_purged', 'get_inf_structure', 'get_initial_ida_version', - 'get_initial_ida_version__SWIG_0', - 'get_initial_ida_version__SWIG_1', + 'get_initial_idb_version', 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', @@ -4744,6 +4824,7 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', 'get_vftable_ea', 'get_vftable_ordinal', @@ -4966,8 +5047,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4977,9 +5058,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -5030,8 +5108,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -5179,6 +5255,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -5226,8 +5305,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -5316,6 +5395,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -5359,10 +5441,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -5529,6 +5611,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'input_file_t_md5_get', 'input_file_t_md5_set', 'input_file_t_path_get', @@ -5623,6 +5735,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5823,6 +5941,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -6579,6 +6698,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -7036,6 +7156,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -7517,7 +7638,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -7790,6 +7910,7 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', 'new_call_stack_info_vec_t', 'new_call_stack_info_vec_t__SWIG_0', @@ -7846,6 +7967,10 @@ 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7859,8 +7984,6 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', @@ -7903,6 +8026,7 @@ 'new_dirtree_iterator_t', 'new_dirtree_selection_t', 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', @@ -8037,6 +8161,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_input_file_t', 'new_insn_cmt_t', 'new_insn_cmts_t', @@ -8160,6 +8288,7 @@ 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', 'new_op_parent_info_t', 'new_op_t', @@ -8170,6 +8299,7 @@ 'new_optblock_t', 'new_optinsn_t', 'new_packet', + 'new_params_t', 'new_pattern_id_t', 'new_pkt_get_pop_result_t', 'new_pkt_get_pop_t', @@ -8206,10 +8336,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -8269,6 +8395,8 @@ 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -8319,13 +8447,12 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -8395,8 +8522,9 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', @@ -8545,6 +8673,10 @@ 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', @@ -8603,6 +8735,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -8617,6 +8751,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -8627,8 +8765,12 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', @@ -8806,6 +8948,10 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', @@ -9208,49 +9354,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -9621,6 +9724,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -10364,6 +10469,8 @@ 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', @@ -10421,6 +10528,7 @@ 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -10613,6 +10721,14 @@ 'step_into', 'step_over', 'step_until_ret', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -10683,15 +10799,22 @@ 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -10702,6 +10825,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -10795,6 +10919,8 @@ 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -10812,6 +10938,8 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', @@ -11083,6 +11211,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -11215,6 +11344,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -11364,6 +11494,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -11375,6 +11509,7 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', 'udc_filter_t_install', 'udc_filter_t_match', @@ -11403,6 +11538,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -11412,6 +11548,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -11425,6 +11562,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -11434,6 +11572,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -11465,46 +11604,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', diff --git a/docs/bc695.md b/docs/bc695.md deleted file mode 100644 index d7ade40..0000000 --- a/docs/bc695.md +++ /dev/null @@ -1,46 +0,0 @@ - -IDAPython for IDA 7.00: backward-compatibility with 6.95 APIs -============================================================= - -Availability of the backward-compatibility code ------------------------------------------------ - -* Backward-compatibility is provided by python.cfg's - `AUTOIMPORT_COMPAT_IDA695` directive. This directive is - currently turned on by default, but in the future it will: - 1. be turned off by default - 1. eventually disappear, and all the corresponding code will be removed - -* Consequently IDAPython script/plugin writers should try and port - their code, with the help of the porting guide XXX FIXME URL? XXX. - -* Once you have done the porting, please check that your code works - with `AUTOIMPORT_COMPAT_IDA695` set to `NO`. - -* If anything proves too hard or confusing, please let us know about - it on , and we will help you, either by fixing - IDAPython if needed, or by improving the documentation. - - -Coverage of the backward-compatibility code -------------------------------------------- - -* We did what was reasonably feasible, to provide an IDAPython API - that's as backward-compatible as possible with the IDA 6.95 API - -* However, we considered it unreasonable for some parts of the API - to be ported. Most notably: - * the "processor module" API: existing processor modules will - have to be ported to the new API. Please see the SDK's - `module/script/proctemplate.py` (or any other `*.py` file in - that directory) for examples how to use the new API. - * processor module-related notifications: some of those have either - been renamed, or have possibly changed signature - -* Most (all?) of the renamed functions, properties, etc... should be - covered, in all modules: `idaapi`, `idc`, ... - If something doesn't work/isn't there anymore, it's likely an - omission from our side. - -* Please let us know about any missing bits & pieces, that you - believe should be there and that we might have forgotten! diff --git a/docs/bc695.sh b/docs/bc695.sh deleted file mode 100755 index 9cc5f9d..0000000 --- a/docs/bc695.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -TARGET_DIR=../../../../www/www.hex-rays.com/public_html/hex-rays/products/ida/7.0/docs -TARGET_FILE=$TARGET_DIR/idapython_backward_compat_695.html -p4 edit $TARGET_FILE -echo \\ > $TARGET_FILE -echo \ >> $TARGET_FILE -echo \ >> $TARGET_FILE -echo \\ >> $TARGET_FILE -markdown bc695.md >> $TARGET_FILE -echo \\ >> $TARGET_FILE -p4 revert -a $TARGET_FILE diff --git a/docs/inject_pydoc.md b/docs/inject_pydoc.md new file mode 100644 index 0000000..b12efe5 --- /dev/null +++ b/docs/inject_pydoc.md @@ -0,0 +1,75 @@ + +# inject_pydoc.py + +This tool is in charge extracting information from the C++ SDK +headers, and inject it into IDAPython's documentation. + +## Extracting the C++ SDK information/documentation + +The IDAPython build system will run `doxygen` against the SDK headers, +asking it to output all the information it could extract, as `XML` +format for later use - by `inject_pydoc.py`, but not only… + +## Applying the documentation + +Then, we run `tools/inject_pydoc.py`, to process that `XML` +content and extract documentation about the functions, classes, +methods, variables, etc… that are present in the corresponding +IDAPython module. + +## Fixing the input parameters + +We cannot blindly apply the SDK documentation, however: some C++ +function parameters will turn into output values when converted to +Python, and thus it makes no sense to have those parameters as part of +the IDAPython function documentation. For example, when wrapping + + inline void get_registered_actions(qstrvec_t *out) + +into `ida_kernwin.get_registered_actions`, the `out` parameter will +turn into a `list(str)`, so it makes no sense to see the corresponding +C++ header's documentation: + + /// \param out the list of actions to be filled + +into the IDAPython documentation. + +Fortunately, we can rely on SWiG's help to do that, because even +though SWiG doesn't know how to import C++ header's documentation, it +*will* tell us what parameters are present in the wrapped prototype. + +Therefore, we collect the SWiG-generated list of parameters from the +prototype, and simply remove the non-relevant bits from the C++ +header's documentation before injecting that into IDAPython. + +## Fixing the return values + +Because all of that was too easy, IDAPython adds another layer of +complexity (craziness?) for fixing the return values. + +When it comes to the input parameters, it's actually _fairly_ easy to +drop the irrelevant bits from the C++ SDK header's documentation: we +know what parameters SWiG will keep & wrap. + +But for the return values, it's another story entirely: SWiG doesn't +know (and cannot always reliably know) what type a return value will +have. +In particular when it comes to custom code in `pywraps/` that returns +a `PyObject *`. + +Therefore, we have put a mechanism into place, that lets us put a +"wrapper" around _all_ IDAPython functions/class methods, that will +trace/keep track of the types of the values that were passed in, and +the types of the values that were spit out by those functions. + +We can then use that wrapper when running tests, collect information +from the tests that were run, process that information, and save it +into `tools/collected_traces.txt`, which will then be used by +`inject_pydoc.py`. + +It's worth pointing out that that information is not, and could not +possibly, be generated at build-time: it must be done at another time +(e.g., after running tests), which is very different than the +mechanism used for fixing the parameters (that "simply" relies on the +`doxygen`-parsed `XML`-formatted documentation.) + diff --git a/docs/pydoc.md b/docs/pydoc.md new file mode 100644 index 0000000..da4e069 --- /dev/null +++ b/docs/pydoc.md @@ -0,0 +1,22 @@ + +# IDAPython runtime documentation + +We define the "IDAPython runtime documentation" as the documentation +that's available through Python's `help()` system, while the user is +interacting with `IDAPython` during an IDA session. + +That documentation is SWiG-generated + patched, or custom written. + +## Custom-written documentation + +Some functions have custom-written documentation (check for +tags in the `pywraps/` directory), but the general case is that the +documentation is automatically generated by SWiG, and then patched. + +## SWiG-generated + patched documentation + +Because SWiG doesn't know about the C++ SDK header's documentation, we +need a way to "import" that documentation into IDAPython. + +That's done by `tools/inject_pydoc.py` which deserves +[its own documentation](inject_pydoc.md) diff --git a/examples/core/colorize_disassembly.py b/examples/core/colorize_disassembly.py index 1525d38..273559b 100644 --- a/examples/core/colorize_disassembly.py +++ b/examples/core/colorize_disassembly.py @@ -5,9 +5,15 @@ description: This illustrates the setting/retrieval of background colours using the IDC wrappers + In order to do so, we'll be assigning colors to specific ranges + (item, function, or segment). Those will be persisted in the + database. + category: disassembly keywords: coloring, idc + +see_also: colorize_disassembly_on_the_fly """ from __future__ import print_function diff --git a/examples/core/colorize_disassembly_on_the_fly.py b/examples/core/colorize_disassembly_on_the_fly.py new file mode 100644 index 0000000..1028043 --- /dev/null +++ b/examples/core/colorize_disassembly_on_the_fly.py @@ -0,0 +1,136 @@ +""" +summary: an easy-to-use way to colorize lines + +description: + This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info` + feature, to provide a quick & easy way to colorize disassembly + lines. + + Contrary to @colorize_disassembly, the coloring is not persisted in + the database, and will therefore be lost after the session. + + By triggering the action multiple times, the user can "carousel" + across 4 predefined colors (and return to the "no color" state.) + +keywords: coloring + +see_also: colorize_disassembly +""" + +import ida_kernwin +import ida_moves + +class on_the_fly_coloring_hooks_t(ida_kernwin.UI_Hooks): + + # We'll offer the users the ability to carousel around the + # following colors. Well, note that these are in fact not + # colors, but rather color "keys": each theme might have its + # own values for those. + AVAILABLE_COLORS = [ + ida_kernwin.CK_EXTRA5, + ida_kernwin.CK_EXTRA6, + ida_kernwin.CK_EXTRA7, + ida_kernwin.CK_EXTRA8, + ] + + def __init__(self): + ida_kernwin.UI_Hooks.__init__(self) + + # Each view can have on-the-fly coloring. + # We'll store the custom colors keyed on the widget's title + self.by_widget = {} + + def get_lines_rendering_info(self, out, widget, rin): + """ + Called by IDA, at rendering-time. + + We'll look in our set of marked lines, and for those that are + found, will produce additional rendering information for IDA + to use. + """ + title = ida_kernwin.get_widget_title(widget) + assigned = self.by_widget.get(title, None) + if assigned is not None: + for section_lines in rin.sections_lines: + for line in section_lines: + for loc, color in assigned: + if self._same_lines(widget, line.at, loc.place()): + e = ida_kernwin.line_rendering_output_entry_t(line) + e.bg_color = color + out.entries.push_back(e) + + def _same_lines(self, viewer, p0, p1): + return ida_kernwin.get_custom_viewer_place_xcoord(viewer, p0, p1) != -1 + + def _find_loc_index(self, viewer, assigned, loc): + for idx, tpl in enumerate(assigned): + _loc = tpl[0] + if self._same_lines(viewer, loc.place(), _loc.place()): + return idx + return -1 + + def carousel_color(self, viewer, title): + """ + This performs the work of iterating across the available + colors (and the 'no-color' state.) + """ + loc = ida_moves.lochist_entry_t() + if ida_kernwin.get_custom_viewer_location(loc, viewer): + assigned = self.by_widget.get(title, []) + new_color = None + + idx = self._find_loc_index(viewer, assigned, loc) + if idx > -1: + prev_color = assigned[idx][1] + prev_color_idx = self.AVAILABLE_COLORS.index(prev_color) + new_color = None \ + if prev_color_idx >= (len(self.AVAILABLE_COLORS) - 1) \ + else self.AVAILABLE_COLORS[prev_color_idx + 1] + else: + new_color = self.AVAILABLE_COLORS[0] + + if idx > -1: + del assigned[idx] + if new_color is not None: + assigned.append((loc, new_color)) + + if assigned: + self.by_widget[title] = assigned + else: + if title in self.by_widget: + del self.by_widget[title] + + +class carousel_color_ah_t(): + """ + The action that will be invoked by IDA when the user + activates its shortcut. + """ + def __init__(self, hooks): + self.hooks = hooks + + def activate(self, ctx): + v = ida_kernwin.get_current_viewer() + if v: + self.hooks.carousel_color(v, ctx.widget_title) + return 1 # will cause the widget to redraw + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ida_kernwin.get_current_viewer() \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +ACTION_NAME = "example:colorize_disassembly_on_the_fly" +ACTION_LABEL = "Pick line color" +ACTION_SHORTCUT = "!" +ACTION_HELP = "Press %s to carousel around available colors (or remove a previously-set color)" % ACTION_SHORTCUT + +otf_coloring = on_the_fly_coloring_hooks_t() +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + carousel_color_ah_t(otf_coloring), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + otf_coloring.hook() diff --git a/examples/core/create_structure_programmatically.py b/examples/core/create_structure_programmatically.py index 306c28e..bf34825 100644 --- a/examples/core/create_structure_programmatically.py +++ b/examples/core/create_structure_programmatically.py @@ -4,6 +4,8 @@ summary: programmatically create & populate a structure description: Usage of the API to create & populate a structure with members of different types. + +author: Gergely Erdelyi (gergely.erdelyi@d-dome.net) """ from __future__ import print_function @@ -12,8 +14,6 @@ from __future__ import print_function # # This script demonstrates how to create structures and populate them # with members of different types. -# -# Author: Gergely Erdelyi #--------------------------------------------------------------------- import ida_struct diff --git a/examples/core/dump_extra_comments.py b/examples/core/dump_extra_comments.py index 0a858ce..3224418 100644 --- a/examples/core/dump_extra_comments.py +++ b/examples/core/dump_extra_comments.py @@ -14,7 +14,6 @@ from __future__ import print_function import ida_lines import ida_kernwin - # ----------------------------------------------------------------------- class dump_at_point_handler_t(ida_kernwin.action_handler_t): def __init__(self, anchor): @@ -41,25 +40,43 @@ class dump_at_point_handler_t(ida_kernwin.action_handler_t): return "dump_extra_comments:%s" % v +# -------------------------------------------------------- +# action variants + +class action_previous_handler_t(dump_at_point_handler_t): + ACTION_LABEL = "previous" + ACTION_SHORTCUT = "Ctrl+Shift+Y" + + def __init__(self): + super(action_previous_handler_t, self).__init__(ida_lines.E_PREV) + +class action_next_handler_t(dump_at_point_handler_t): + ACTION_LABEL = "next" + ACTION_SHORTCUT = "Ctrl+Shift+Z" + + def __init__(self): + super(action_next_handler_t, self).__init__(ida_lines.E_NEXT) + + # ----------------------------------------------------------------------- # create actions (and attach them to IDA View-A's context menu if possible) widget_title = "IDA View-A" ida_view = ida_kernwin.find_widget(widget_title) -actions_variants = [ - ("previous", ida_lines.E_PREV, "Ctrl+Shift+Y"), - ("next", ida_lines.E_NEXT, "Ctrl+Shift+Z"), +action_variants = [ + action_previous_handler_t, + action_next_handler_t, ] -for label, anchor, shortcut in actions_variants: - actname = dump_at_point_handler_t.compose_action_name(label) +for variant in action_variants: + actname = dump_at_point_handler_t.compose_action_name(variant.ACTION_LABEL) if ida_kernwin.unregister_action(actname): print("Unregistered previously-registered action \"%s\"" % actname) desc = ida_kernwin.action_desc_t( actname, - "Dump %s extra comments" % label, - dump_at_point_handler_t(anchor), - shortcut) + "Dump %s extra comments" % variant.ACTION_LABEL, + variant(), + variant.ACTION_SHORTCUT) if ida_kernwin.register_action(desc): print("Registered action \"%s\"" % actname) diff --git a/examples/core/list_function_items.py b/examples/core/list_function_items.py new file mode 100644 index 0000000..efffa8a --- /dev/null +++ b/examples/core/list_function_items.py @@ -0,0 +1,102 @@ +""" +summary: showcases (a few of) the iterators available on a function + +description: + This demonstrates how to use some of the iterators available on the func_t type. + + This example will focus on: + + * `func_t[.__iter__]`: the default iterator; iterates on instructions + * `func_t.data_items`: iterate on data items contained within a function + * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing + the start of an instruction, or a data item. + * `func_t.addresses`: iterate on all addresses within function (code + and data, beginning of an item or not) + + Type `help(ida_funcs.func_t)` for a full list of iterators. + + In addition, one can use: + + * `func_tail_iterator_t`: iterate on all the chunks (including + the main one) of the function + * `func_parent_iterator_t`: iterate on all the parent functions, + that include this chunk + +keywords: funcs iterator +""" + +import ida_bytes +import ida_kernwin +import ida_funcs +import ida_ua + +class logger_t(object): + + class section_t(object): + def __init__(self, logger, header): + self.logger = logger + self.logger.log(header) + def __enter__(self): + self.logger.indent += 2 + return self + def __exit__(self, tp, value, traceback): + self.logger.indent -= 2 + if value: + return False # Re-raise + + def __init__(self): + self.indent = 0 + + def log(self, *args): + print(" " * self.indent + "".join(args)) + + def log_ea(self, ea): + F = ida_bytes.get_flags(ea) + parts = ["0x%08x" % ea, ": "] + if ida_bytes.is_code(F): + parts.append("instruction (%s)" % ida_ua.print_insn_mnem(ea)) + if ida_bytes.is_data(F): + parts.append("data") + if ida_bytes.is_tail(F): + parts.append("tail") + if ida_bytes.is_unknown(F): + parts.append("unknown") + if ida_funcs.get_func(ea) != ida_funcs.get_fchunk(ea): + parts.append(" (in function chunk)") + self.log(*parts) + +def main(): + # Get current ea + ea = ida_kernwin.get_screen_ea() + + pfn = ida_funcs.get_func(ea) + + if pfn is None: + print("No function defined at 0x%x" % ea) + return + + func_name = ida_funcs.get_func_name(pfn.start_ea) + logger = logger_t() + logger.log("Function %s at 0x%x" % (func_name, ea)) + + with logger_t.section_t(logger, "Code items:"): + for item in pfn: + logger.log_ea(item) + + with logger_t.section_t(logger, "'head' items:"): + for item in pfn.head_items(): + logger.log_ea(item) + + with logger_t.section_t(logger, "Addresses:"): + for item in pfn.addresses(): + logger.log_ea(item) + + with logger_t.section_t(logger, "Function chunks:"): + for chunk in ida_funcs.func_tail_iterator_t(pfn): + logger.log("%s chunk: 0x%08x..0x%08x" % ( + "Main" if chunk.start_ea == pfn.start_ea else "Tail", + chunk.start_ea, + chunk.end_ea)) + +if __name__ == '__main__': + main() diff --git a/examples/core/list_segment_functions.py b/examples/core/list_segment_functions.py index e2aa6fa..eb9562f 100644 --- a/examples/core/list_segment_functions.py +++ b/examples/core/list_segment_functions.py @@ -46,11 +46,9 @@ def main(): funcea = func.start_ea print("Function %s at 0x%x" % (ida_funcs.get_func_name(funcea), funcea)) - ref = ida_xref.get_first_cref_to(funcea) - - while ref != ida_idaapi.BADADDR: + xb = ida_xref.xrefblk_t() + for ref in xb.crefs_to(funcea): print(" called from %s(0x%x)" % (ida_funcs.get_func_name(ref), ref)) - ref = ida_xref.get_next_cref_to(funcea, ref) func = ida_funcs.get_next_func(funcea) diff --git a/examples/core/list_stkvar_xrefs.py b/examples/core/list_stkvar_xrefs.py index bb04db5..49e760d 100644 --- a/examples/core/list_stkvar_xrefs.py +++ b/examples/core/list_stkvar_xrefs.py @@ -33,10 +33,7 @@ class list_stkvar_xrefs_ah_t(ida_kernwin.action_handler_t): sptr = ida_struct.get_struc(frame.id) mptr = ida_struct.get_member_by_name(sptr, stkvar_name) if mptr: - fii = ida_funcs.func_item_iterator_t() - ok = fii.set(pfn) - while ok: - ea = fii.current() + for ea in pfn: F = ida_bytes.get_flags(ea) for n in range(ida_ida.UA_MAXOP): if not ida_bytes.is_stkvar(F, n): @@ -47,7 +44,6 @@ class list_stkvar_xrefs_ah_t(ida_kernwin.action_handler_t): v = ida_frame.calc_stkvar_struc_offset(pfn, insn, n) if v >= mptr.soff and v < mptr.eoff: print("Found xref at 0x%08x, operand #%d" % (ea, n)) - ok = fii.next_code() else: print("No stack variable named \"%s\"" % stkvar_name) else: diff --git a/examples/debugging/misc/print_call_stack.py b/examples/debugging/misc/print_call_stack.py new file mode 100644 index 0000000..441ff6a --- /dev/null +++ b/examples/debugging/misc/print_call_stack.py @@ -0,0 +1,59 @@ +""" +summary: print call stack (on Linux) + +description: print the return addresses from the call stack at a breakpoint. + (and print also the module and the debug name from debugger) + + To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint where you want to see the call stack + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Shift+C at the breakpoint +""" +import os +import ida_idaapi +import ida_idd +import ida_dbg +import ida_kernwin +import ida_name + +def log(msg): + print(">>> %s" % msg) + +class print_call_stack_ah_t(): + def activate(self, ctx): + log("=== start of call stack impression ===") + tid = ida_dbg.get_current_thread() + trace = ida_idd.call_stack_t() + if ida_dbg.collect_stack_trace(tid, trace): + for frame in trace: + mi = ida_idd.modinfo_t() + if ida_dbg.get_module_info(frame.callea, mi): + module = os.path.basename(mi.name) + name = ida_name.get_nice_colored_name( + frame.callea, + ida_name.GNCN_NOCOLOR|ida_name.GNCN_NOLABEL|ida_name.GNCN_NOSEG|ida_name.GNCN_PREFDBG) + log("Return address: " + hex(frame.callea) + " from: " + module + " with debug name: " + name) + else: + log("Return address: " + hex(frame.callea)) + log("=== end of call stack impression ===") + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_ALWAYS + +ACTION_NAME = "example:print_call_stack" +ACTION_LABEL = "Print call stack" +ACTION_SHORTCUT = "Shift+C" +ACTION_HELP = "Press %s to dump the call stack" % ACTION_SHORTCUT + +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + print_call_stack_ah_t(), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + diff --git a/examples/hexrays/curpos_details.py b/examples/hexrays/curpos_details.py new file mode 100644 index 0000000..775ceff --- /dev/null +++ b/examples/hexrays/curpos_details.py @@ -0,0 +1,90 @@ +""" +summary: a focus on the 'curpos' hook, printing additional details about user input + +description: + Shows how user input information can be retrieved during + processing of a notification triggered by that input + +see_also: vds_hooks +""" + +import ida_hexrays +import ida_kernwin + +class curpos_details_t(ida_hexrays.Hexrays_Hooks): + def curpos(self, v): + parts = ["cpos={lnnum=%d, x=%d, y=%d}" % (v.cpos.lnnum, v.cpos.x, v.cpos.y)] + uie = ida_kernwin.input_event_t() + if ida_kernwin.get_user_input_event(uie): + kind_str = { + ida_kernwin.iek_shortcut : "shortcut", + ida_kernwin.iek_key_press : "key_press", + ida_kernwin.iek_key_release : "key_release", + ida_kernwin.iek_mouse_button_press : "mouse_button_press", + ida_kernwin.iek_mouse_button_release : "mouse_button_release", + ida_kernwin.iek_mouse_wheel : "mouse_wheel", + }[uie.kind] + + # + # Retrieve input kind-specific information + # + if uie.kind == ida_kernwin.iek_shortcut: + payload_str = "shortcut={action_name=%s}" % uie.shortcut.action_name + elif uie.kind in [ + ida_kernwin.iek_key_press, + ida_kernwin.iek_key_release]: + payload_str = "keyboard={key=%d, text=%s}" % (uie.keyboard.key, uie.keyboard.text) + else: + payload_str = "mouse={x=%d, y=%d, button=%d}" % ( + uie.mouse.x, + uie.mouse.y, + uie.mouse.button) + + # + # And while at it, retrieve a few extra bits from the + # source QEvent as well, why not + # + qevent = uie.get_source_QEvent() + qevent_str = str(qevent) + from PyQt5 import QtCore + if qevent.type() in [ + QtCore.QEvent.KeyPress, + QtCore.QEvent.KeyRelease]: + qevent_str="{count=%d}" % qevent.count() + elif qevent.type() in [ + QtCore.QEvent.MouseButtonPress, + QtCore.QEvent.MouseButtonRelease]: + qevent_str="{globalX=%d, globalY=%d, flags=%s}" % ( + qevent.globalX(), + qevent.globalY(), + qevent.flags()) + elif qevent.type() == QtCore.QEvent.Wheel: + qevent_str="{angleDelta={x=%s, y=%s}, phase=%s}" % ( + qevent.angleDelta().x(), + qevent.angleDelta().y(), + qevent.phase()) + + # + # If the target QWidget is a scroll area's viewport, + # pick up the parent + # + from PyQt5 import QtWidgets + qwidget = uie.get_target_QWidget() + if qwidget: + parent = qwidget.parentWidget() + if parent and isinstance(parent, QtWidgets.QAbstractScrollArea): + qwidget = parent + + parts.append("user_input_event={kind=%s, modifiers=0x%x, target={metaObject={className=%s}, windowTitle=%s}, source=%s, %s, source-as-qevent=%s}" % ( + kind_str, + uie.modifiers, + qwidget.metaObject().className(), + qwidget.windowTitle(), + uie.source, + payload_str, + qevent_str)) + print("### curpos: %s" % ", ".join(parts)) + return 0 + +curpos_details = curpos_details_t() +curpos_details.hook() diff --git a/examples/hexrays/vds21.py b/examples/hexrays/vds21.py index 37b14af..3292bed 100644 --- a/examples/hexrays/vds21.py +++ b/examples/hexrays/vds21.py @@ -30,35 +30,46 @@ import ida_kernwin import ida_typeinf import ida_hexrays +testing = False # only for testing purposes + class callinfo_provider_t(ida_hexrays.Hexrays_Hooks): # this callback will be called for all call instructions # our plugin may provide the function prototype or even a complete new callinfo # object. The callinfo object may be useful if the prototype is not enough # to express all details of the call. - def build_callinfo(self, blk, type, callinfo): + def build_callinfo(self, blk, type): # it is a good idea to skip direct calls. # note that some indirect calls may be resolved and become direct calls, # and will be filtered out here: ida_kernwin.msg("%x: got called for: %s\n" % (blk.tail.ea, blk.tail.dstr())) tail = blk.tail if tail.opcode == ida_hexrays.m_call: - return 0 + return # also, if the type was specified by the user, do not interfere call_ea = tail.ea tif = ida_typeinf.tinfo_t() if ida_nalt.get_op_tinfo(tif, call_ea, 0): - return 0 + return - # ok, the decompiler really has to guess the type. - # just for the sake of an example, return a predefined prototype. - # in real life you will provide the prototype you discovered yourself, - # using your magic of yours :) - my_proto = "int f();" - ida_kernwin.msg("%x: providing prototype %s\n" % (call_ea, my_proto)) - ida_typeinf.parse_decl(type, None, my_proto, 0) - return 0 + global testing + if not testing: + # ok, the decompiler really has to guess the type. + # just for the sake of an example, return a predefined prototype. + # in real life you will provide the prototype you discovered yourself, + # using your magic of yours :) + my_proto = "int f();" + ida_kernwin.msg("%x: providing prototype %s\n" % (call_ea, my_proto)) + ida_typeinf.parse_decl(type, None, my_proto, 0) + else: + # as an alternative to filling 'type', you can + # choose to return a mcallinfo_t instance. + mi = ida_hexrays.mcallinfo_t() + mi.cc = ida_typeinf.CM_CC_STDCALL | ida_typeinf.CM_N32_F48 # let's use stdcall to differentiate from the tinfo_t-filling version + mi.return_type = ida_typeinf.tinfo_t(ida_typeinf.BT_INT) + mi.return_argloc.set_reg1(0) # eax + return mi # a plugin interface, boilerplate code class my_plugin_t(ida_idaapi.plugin_t): diff --git a/examples/hexrays/vds3.py b/examples/hexrays/vds3.py index 9c2c717..72cb78b 100644 --- a/examples/hexrays/vds3.py +++ b/examples/hexrays/vds3.py @@ -30,7 +30,7 @@ description: The modifications are persistent: the user can quit & restart IDA, and the changes will be present. -author: EiNSTeiN_ +author: EiNSTeiN_ (einstein@g3nius.org) """ from __future__ import print_function @@ -41,6 +41,7 @@ import ida_kernwin import ida_hexrays import ida_netnode import ida_idaapi +import ida_idp import traceback @@ -215,6 +216,17 @@ class vds3_hooks_t(ida_hexrays.Hexrays_Hooks): self.i.restore(cfunc) return 0 +class idp_hooks_t(ida_idp.IDP_Hooks): + def __init__(self, i): + ida_idp.IDP_Hooks.__init__(self) + self.i = i + + # 'node' refers to index of the named node, this index became invalid after + # privrange moving, so we recreate the node here to update nodeidx + def ev_privrange_changed(self, old_privrange, delta): + i.node.create(NETNODE_NAME) + + # a plugin interface, boilerplate code class my_plugin_t(ida_idaapi.plugin_t): flags = ida_idaapi.PLUGIN_HIDE @@ -233,6 +245,9 @@ class my_plugin_t(ida_idaapi.plugin_t): "I")) self.vds3_hooks = vds3_hooks_t(i) self.vds3_hooks.hook() + # we need this hook to react to privrange moving event + self.idp_hooks = idp_hooks_t(i) + self.idp_hooks.hook() return ida_idaapi.PLUGIN_KEEP # keep us in the memory def term(self): self.vds3_hooks.unhook() diff --git a/examples/hexrays/vds4.py b/examples/hexrays/vds4.py index 335b24f..2997403 100644 --- a/examples/hexrays/vds4.py +++ b/examples/hexrays/vds4.py @@ -10,7 +10,9 @@ description: * user defined number formats * user defined local variable names, types, comments -author: EiNSTeiN_ + This script loads information from the database without decompiling anything. + +author: EiNSTeiN_ (einstein@g3nius.org) """ from __future__ import print_function @@ -20,19 +22,17 @@ import ida_hexrays import ida_bytes def run(): - - cfunc = ida_hexrays.decompile(ida_kernwin.get_screen_ea()) - if not cfunc: - print('Please move the cursor into a function.') - return - - entry_ea = cfunc.entry_ea - print("Dump of user-defined information for function at %x" % (entry_ea, )) + f = ida_funcs.get_func(ida_kernwin.get_screen_ea()); + if f is None: + print("Please position the cursor within a function") + return True + entry_ea = f.start_ea + print("Dump of user-defined information for function at %x" % entry_ea) # Display user defined labels. labels = ida_hexrays.restore_user_labels(entry_ea); if labels is not None: - print("------- %u user defined labels" % (len(labels), )) + print("------- %u user defined labels" % len(labels)) for org_label, name in labels.items(): print("Label %d: %s" % (org_label, str(name))) ida_hexrays.user_labels_free(labels) @@ -58,8 +58,10 @@ def run(): if numforms is not None: print("------- %u user defined number formats" % (len(numforms), )) for ol, nf in numforms.items(): - - print("Number format at %a, operand %d: %s" % (ol.ea, ol.opnum, "negated " if (nf.props & NF_NEGATE) != 0 else "")) + print("Number format at %a, operand %d: %s" % \ + (ol.ea, + ol.opnum, + "negated " if (ord(nf.props) & ida_hexrays.NF_NEGATE) != 0 else "")) if nf.is_enum(): print("enum %s (serial %d)" % (str(nf.type_name), nf.serial)) diff --git a/examples/hexrays/vds7.py b/examples/hexrays/vds7.py index 2bfa4d5..c1c2617 100644 --- a/examples/hexrays/vds7.py +++ b/examples/hexrays/vds7.py @@ -5,7 +5,7 @@ description: Using a `ida_hexrays.ctree_visitor_t`, search for `ida_hexrays.cit_block` instances and dump them. -author: EiNSTeiN_ +author: EiNSTeiN_ (einstein@g3nius.org) """ from __future__ import print_function diff --git a/examples/hexrays/vds_hooks.py b/examples/hexrays/vds_hooks.py index 557ab4e..ee5a7b9 100644 --- a/examples/hexrays/vds_hooks.py +++ b/examples/hexrays/vds_hooks.py @@ -7,21 +7,27 @@ description: This plugin doesn't really accomplish anything: it just prints the parameters. - Also, the list of notifications handled below, isn't exhaustive. - Please investigate `ida_hexrays.Hexrays_Hooks` for a full list. + The list of notifications handled below should be exhaustive, + and is there to hint at what is possible to accomplish by + subclassing `ida_hexrays.Hexrays_Hooks` + +see_also: curpos_details """ + from __future__ import print_function +import inspect + import ida_idaapi import ida_typeinf import ida_hexrays class vds_hooks_t(ida_hexrays.Hexrays_Hooks): - def _shorten(self, cfunc): - raw = str(cfunc) - if len(raw) > 20: - raw = raw[0:20] + "[...snipped...]" - return raw + def __init__(self): + ida_hexrays.Hexrays_Hooks.__init__(self) + self.display_shortened_cfuncs = False + self.display_vdui_curpos = False + self.inhibit_log = 0; def _format_lvar(self, v): parts = [] @@ -35,106 +41,132 @@ class vds_hooks_t(ida_hexrays.Hexrays_Hooks): parts.append("divisor=%s" % v.divisor) return "{%s}" % ", ".join(parts) - def _log(self, msg): - print("### %s" % msg) + def _format_vdui_curpos(self, v): + return "cpos={lnnum=%d, x=%d, y=%d}" % (v.cpos.lnnum, v.cpos.x, v.cpos.y) + + def _format_value(self, v): + if isinstance(v, ida_hexrays.lvar_t): + v = self._format_lvar(v) + elif isinstance(v, ida_hexrays.cfunc_t): + if self.display_shortened_cfuncs: + self.inhibit_log += 1 + v = str(v) + if len(v) > 20: + v = v[0:20] + "[...snipped...]" + self.inhibit_log -= 1 + else: + v = "" # cannot print contents: we'll end up being called recursively + elif isinstance(v, ida_hexrays.vdui_t) and self.display_vdui_curpos: + v = str(v) + " " + self._format_vdui_curpos(v) + return str(v) + + def _log(self): + if self.inhibit_log <= 0: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print("### %s: %s" % (method_name, ", ".join(argstrs))) return 0 def flowchart(self, fc): - return self._log("flowchart: fc=%s" % fc) + return self._log() def stkpnts(self, mba, stkpnts): - return self._log("stkpnts: mba=%s, stkpnts=%s" % (mba, stkpnts)) + return self._log() def prolog(self, mba, fc, reachable_blocks, decomp_flags): - return self._log("prolog: mba=%s, fc=%s, reachable_blocks=%s, decomp_flags=%x" % (mba, fc, reachable_blocks, decomp_flags)) + return self._log() def microcode(self, mba): - return self._log("microcode: mba=%s" % (mba,)) + return self._log() def preoptimized(self, mba): - return self._log("preoptimized: mba=%s" % (mba,)) + return self._log() def locopt(self, mba): - return self._log("locopt: mba=%s" % (mba,)) + return self._log() def prealloc(self, mba): - return self._log("prealloc: mba=%s" % (mba,)) + return self._log() def glbopt(self, mba): - return self._log("glbopt: mba=%s" % (mba,)) + return self._log() def structural(self, ctrl_graph): - return self._log("structural: ctrl_graph: %s" % (ctrl_graph,)) + return self._log() def maturity(self, cfunc, maturity): - return self._log("maturity: cfunc=%s, maturity=%s" % (self._shorten(cfunc), maturity)) + return self._log() def interr(self, code): - return self._log("interr: code=%s" % (code,)) + return self._log() def combine(self, blk, insn): - return self._log("combine: blk=%s, insn=%s" % (blk, insn)) + return self._log() def print_func(self, cfunc, printer): - # Note: we can't print/str()-ify 'cfunc' here, - # because that'll call print_func() us recursively. - return self._log("print_func: cfunc=..., printer=%s" % (printer,)) + return self._log() def func_printed(self, cfunc): - return self._log("func_printed: cfunc=%s" % (cfunc,)) + return self._log() def resolve_stkaddrs(self, mba): - return self._log("resolve_stkaddrs: mba=%s" % (mba,)) + return self._log() def open_pseudocode(self, vu): - return self._log("open_pseudocode: vu=%s" % (vu,)) + return self._log() def switch_pseudocode(self, vu): - return self._log("switch_pseudocode: vu=%s" % (vu,)) + return self._log() def refresh_pseudocode(self, vu): - return self._log("refresh_pseudocode: vu=%s" % (vu,)) + return self._log() def close_pseudocode(self, vu): - return self._log("close_pseudocode: vu=%s" % (vu,)) + return self._log() def keyboard(self, vu, key_code, shift_state): - return self._log("keyboard: vu=%s, key_code=%s, shift_state=%s" % (vu, key_code, shift_state)) + return self._log() def right_click(self, vu): - return self._log("right_click: vu=%s" % (vu,)) + return self._log() def double_click(self, vu, shift_state): - return self._log("double_click: vu=%s, shift_state=%s" % (vu, shift_state)) + return self._log() def curpos(self, vu): - return self._log("curpos: vu=%s (vu.cpos.lnnum=%d, vu.cpos.x=%d, vu.cpos.y=%d)" % ( - vu, vu.cpos.lnnum, vu.cpos.x, vu.cpos.y)) + return self._log() def create_hint(self, vu): - return self._log("create_hint: vu=%s: " % (vu,)) + return self._log() def text_ready(self, vu): - return self._log("text_ready: vu=%s" % (vu,)) + return self._log() def populating_popup(self, widget, popup, vu): - return self._log("populating_popup: widget=%s, popup=%s, vu=%s" % (widget, popup, vu)) + return self._log() def lvar_name_changed(self, vu, v, name, is_user_name): - return self._log("lvar_name_changed: vu=%s, v=%s, name=%s, is_user_name=%s" % (vu, self._format_lvar(v), name, is_user_name)) + return self._log() def lvar_type_changed(self, vu, v, tif): - return self._log("lvar_type_changed: vu=%s, v=%s, tinfo=%s" % (vu, self._format_lvar(v), tif._print())) + return self._log() def lvar_cmt_changed(self, vu, v, cmt): - return self._log("lvar_cmt_changed: vu=%s, v=%s, cmt=%s" % (vu, self._format_lvar(v), cmt)) + return self._log() def lvar_mapping_changed(self, vu, _from, to): - return self._log("lvar_mapping_changed: vu=%s, from=%s, to=%s" % (vu, _from, to)) + return self._log() def cmt_changed(self, cfunc, loc, cmt): - return self._log("cmt_changed: cfunc=%s, loc=%s, cmt=%s" % (self._shorten(cfunc),loc, cmt)) + return self._log() + + def build_callinfo(self, *args): + return self._log() vds_hooks = vds_hooks_t() vds_hooks.hook() - diff --git a/examples/hexrays/vds_xrefs.py b/examples/hexrays/vds_xrefs.py index 1eef5dd..5213da4 100644 --- a/examples/hexrays/vds_xrefs.py +++ b/examples/hexrays/vds_xrefs.py @@ -8,7 +8,7 @@ description: * supports any global name: functions, strings, integers, ... * supports structure member. -author: EiNSTeiN_ +author: EiNSTeiN_ (einstein@g3nius.org) """ from __future__ import print_function diff --git a/examples/idbhooks/log_idb_events.py b/examples/idbhooks/log_idb_events.py new file mode 100644 index 0000000..e7aa36c --- /dev/null +++ b/examples/idbhooks/log_idb_events.py @@ -0,0 +1,357 @@ +""" +summary: logging IDB events + +description: + these hooks will be notified about IDB events, and + dump their information to the "Output" window +""" + +import inspect + +import ida_idp + +class idb_logger_hooks_t(ida_idp.IDB_Hooks): + + def __init__(self): + ida_idp.IDB_Hooks.__init__(self) + self.inhibit_log = 0; + + def _format_value(self, v): + return str(v) + + def _log(self, msg=None): + if self.inhibit_log <= 0: + if msg: + print(">>> idb_logger_hooks_t: %s" % msg) + else: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print(">>> idb_logger_hooks_t.%s: %s" % (method_name, ", ".join(argstrs))) + return 0 + + def adding_segm(self, segment): + return self._log() + + def allsegs_moved(self, info): + return self._log() + + def auto_empty(self): + return self._log() + + def auto_empty_finally(self): + return self._log() + + def bookmark_changed(self, index, pos, desc, op): + return self._log() + + def byte_patched(self, ea, old_value): + return self._log() + + def callee_addr_changed(self, ea, callee): + return self._log() + + def changing_cmt(self, ea, is_repeatable, new_comment): + return self._log() + + def changing_enum_bf(self, tid, new_bf): + return self._log() + + def changing_enum_cmt(self, tid, is_repeatable, new_comment): + return self._log() + + def changing_op_ti(self, ea, n, new_type, new_fnames): + return self._log() + + def changing_op_type(self, ea, n, opinfo): + return self._log() + + def changing_range_cmt(self, kind, _range, comment, is_repeatable): + return self._log() + + def changing_segm_class(self, segment): + return self._log() + + def changing_segm_end(self, segment, new_end, flags): + return self._log() + + def changing_segm_name(self, segment, old_name): + return self._log() + + def changing_segm_start(self, segment, new_start, flags): + return self._log() + + def changing_struc_align(self, sptr): + return self._log() + + def changing_struc_cmt(self, tid, is_repeatable, comment): + return self._log() + + def changing_struc_member(self, sptr, mptr, flags, ti, nbytes): + return self._log() + + def changing_ti(self, ea, new_type, new_fnames): + return self._log() + + def closebase(self): + return self._log() + + def cmt_changed(self, ea, is_repeatable): + return self._log() + + def compiler_changed(self, may_adjust_inf_fields): + return self._log() + + def deleting_enum(self, tid): + return self._log() + + def deleting_enum_member(self, tid, cid): + return self._log() + + def deleting_func(self, pfn): + return self._log() + + def deleting_func_tail(self, pfn, tail): + return self._log() + + def deleting_segm(self, start_ea): + return self._log() + + def deleting_struc(self, sptr): + return self._log() + + def deleting_struc_member(self, sptr, mptr): + return self._log() + + def deleting_tryblks(self, _range): + return self._log() + + def destroyed_items(self, ea1, ea2, will_disable_range): + return self._log() + + def determined_main(self, main): + return self._log() + + def dirtree_link(self, dt, path, is_link): + return self._log() + + def dirtree_mkdir(self, dt, path): + return self._log() + + def dirtree_move(self, dt, _from, to): + return self._log() + + def dirtree_rank(self, dt, path, rank): + return self._log() + + def dirtree_rmdir(self, dt, path): + return self._log() + + def dirtree_rminode(self, dt, inode): + return self._log() + + def dirtree_segm_moved(self, dt): + return self._log() + + def enum_bf_changed(self, tid): + return self._log() + + def enum_cmt_changed(self, tid, is_repeatable): + return self._log() + + def enum_created(self, tid): + return self._log() + + def enum_deleted(self, tid): + return self._log() + + def enum_member_created(self, tid, cid): + return self._log() + + def enum_member_deleted(self, tid, cid): + return self._log() + + def enum_renamed(self, tid): + return self._log() + + def expanding_struc(self, sptr, offset, delta): + return self._log() + + def extlang_changed(self, kind, el, idx): + return self._log() + + def extra_cmt_changed(self, ea, line_idx, comment): + return self._log() + + def flow_chart_created(self, fc): + return self._log() + + def frame_deleted(self, pfn): + return self._log() + + def func_added(self, pfn): + return self._log() + + def func_deleted(self, func_ea): + return self._log() + + def func_noret_changed(self, pfn): + return self._log() + + def func_tail_appended(self, pfn, tail): + return self._log() + + def func_tail_deleted(self, pfn, tail_ea): + return self._log() + + def func_updated(self, pfn): + return self._log() + + def idasgn_loaded(self, sig_name): + return self._log() + + def item_color_changed(self, ea, color): + return self._log() + + def kernel_config_loaded(self, pass_number): + return self._log() + + def loader_finished(self, li, neflags, filetypename): + return self._log() + + def local_types_changed(self): + return self._log() + + def make_code(self, insn): + return self._log() + + def make_data(self, ea, flags, tid, _len): + return self._log() + + def op_ti_changed(self, ea, n, _type, fnames): + return self._log() + + def op_type_changed(self, ea, n): + return self._log() + + def range_cmt_changed(self, kind, _range, comment, is_repeatable): + return self._log() + + def renamed(self, ea, new_name, is_local_name, old_name): + return self._log() + + def renaming_enum(self, tid, is_enum, new_name): + return self._log() + + def renaming_struc(self, tid, old_name, new_name): + return self._log() + + def renaming_struc_member(self, sptr, mptr, new_name): + return self._log() + + def savebase(self): + return self._log() + + def segm_added(self, segment): + return self._log() + + def segm_attrs_updated(self, segment): + return self._log() + + def segm_class_changed(self, segment, sclass): + return self._log() + + def segm_deleted(self, start_ea, end_ea, flags): + return self._log() + + def segm_end_changed(self, segment, old_end): + return self._log() + + def segm_moved(self, _from, to, size, changed_netmap): + return self._log() + + def segm_name_changed(self, segment, name): + return self._log() + + def segm_start_changed(self, segment, old_start): + return self._log() + + def set_func_end(self, pfn, new_end): + return self._log() + + def set_func_start(self, pfn, new_start): + return self._log() + + def sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag): + return self._log() + + def sgr_deleted(self, start_ea, end_ea, regnum): + return self._log() + + def stkpnts_changed(self, pfn): + return self._log() + + def struc_align_changed(self, sptr): + return self._log() + + def struc_cmt_changed(self, tid, is_repeatable): + return self._log() + + def struc_created(self, tid): + return self._log() + + def struc_deleted(self, tid): + return self._log() + + def struc_expanded(self, sptr): + return self._log() + + def struc_member_changed(self, sptr, mptr): + return self._log() + + def struc_member_created(self, sptr, mptr): + return self._log() + + def struc_member_deleted(self, sptr, mid, offset): + return self._log() + + def struc_member_renamed(self, sptr, mptr): + return self._log() + + def struc_renamed(self, sptr): + return self._log() + + def tail_owner_changed(self, tail, owner_func, old_owner): + return self._log() + + def thunk_func_created(self, pfn): + return self._log() + + def ti_changed(self, ea, _type, fnames): + return self._log() + + def tryblks_updated(self, tbv): + return self._log() + + def updating_tryblks(self, tbv): + return self._log() + + def upgraded(self, _from): + return self._log() + + def enum_width_changed(self, tid, width): + return self._log() + + def enum_flag_changed(self, tid, flags): + return self._log() + + def enum_ordinal_changed(self, tid, ordinal): + return self._log() + + +idb_hooks = idb_logger_hooks_t() +idb_hooks.hook() diff --git a/examples/idbhooks/replay_prototypes_changes.py b/examples/idbhooks/replay_prototypes_changes.py index 8f2ebf7..afd5866 100644 --- a/examples/idbhooks/replay_prototypes_changes.py +++ b/examples/idbhooks/replay_prototypes_changes.py @@ -4,7 +4,7 @@ summary: Record and replay changes in function prototypes description: This is a sample script, that will record (in memory) all changes in functions prototypes, in order to re-apply them later. -. + To use this script: - open an IDB (say, "test.idb") - modify some functions prototypes (e.g., by triggering the 'Y' @@ -12,7 +12,7 @@ description: function) - reload that IDB, *without saving it first* - call rpc.replay(), to re-apply the modifications. -. + Note: 'ti_changed' is also called for changes to the function frames, but we'll only record function prototypes changes. """ diff --git a/examples/index.html b/examples/index.html index 1bd575f..1be7a5a 100644 --- a/examples/index.html +++ b/examples/index.html @@ -1,3 +1,28 @@ + @@ -12,7 +37,8 @@

IDAPython examples:

@@ -22,7 +48,7 @@
- dump_func_info: dump (some) information about the current function. + dump_func_info: Dump (some) information about the current function.
@@ -33,10 +59,10 @@ the function we are currently looking at.
  • Category: analysis
  • -
  • Summary: dump (some) information about the current function.
  • +
  • Summary: Dump (some) information about the current function.
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -49,40 +75,50 @@ the function we are currently looking at.
    • ida_kernwin.get_screen_ea
  • -
  • Summary: dump (some) information about the current function.
  • - +
- -

Category: core

- actions: custom actions, with icons & tooltips + actions: Custom actions, with icons & tooltips
 How to create user actions, that once created can be
 inserted in menus, toolbars, context menus, ...
+
+Those actions, when triggered, will be passed a 'context'
+that contains some of the most frequently needed bits of
+information.
+
+In addition, custom actions can determine when they want
+to be available (through their
+`ida_kernwin.action_handler_t.update` callback)
 
  • Category: core
  • -
  • Summary: custom actions, with icons & tooltips
  • +
  • Summary: Custom actions, with icons & tooltips
  • View on GitHub
  • -
  • Keywords: - actions - + ctxmenu + UI_Hooks +
  • + +
  • Shortcut: + Ctrl+F12 +
  • +
  • APIs used
      @@ -102,25 +138,21 @@ inserted in menus, toolbars, context menus, ...
    • ida_kernwin.unregister_action
  • -
  • Summary: custom actions, with icons & tooltips
  • -
  • See also:
  • +
-
- add_hotkey: triggering bits of code by pressing a shortcut + add_hotkey: Triggering bits of code by pressing a shortcut
@@ -128,17 +160,22 @@ inserted in menus, toolbars, context menus, ... `ida_kernwin.add_hotkey` is a simpler, but much less flexible alternative to `ida_kernwin.register_action` (though it does use the same mechanism under the hood.) + +It's particularly useful during prototyping, but note that the +actions that are created cannot be inserted in menus, toolbars +or cannot provide a custom `ida_kernwin.action_handler_t.update` +callback.
  • Category: core
  • -
  • Summary: triggering bits of code by pressing a shortcut
  • +
  • Summary: Triggering bits of code by pressing a shortcut
  • View on GitHub
  • -
  • Keywords: - actions - +
  • + +
  • APIs used
      @@ -146,25 +183,21 @@ use the same mechanism under the hood.)
    • ida_kernwin.del_hotkey
  • -
  • Summary: triggering bits of code by pressing a shortcut
  • -
  • See also:
  • +
-
- add_idc_hotkey: triggering bits of code by pressing a shortcut (older version) + add_idc_hotkey: Triggering bits of code by pressing a shortcut (older version)
@@ -176,13 +209,13 @@ should be preferred.
  • Category: core
  • -
  • Summary: triggering bits of code by pressing a shortcut (older version)
  • +
  • Summary: Triggering bits of code by pressing a shortcut (older version)
  • View on GitHub
  • -
  • Keywords: - actions - +
  • + +
  • APIs used
      @@ -190,46 +223,57 @@ should be preferred.
    • ida_kernwin.add_idc_hotkey
  • -
  • Summary: triggering bits of code by pressing a shortcut (older version)
  • -
  • See also:
  • +
-
- auto_instantiate_widget_plugin: better integrating custom widgets in the desktop layout + auto_instantiate_widget_plugin: Better integrating custom widgets in the desktop layout
 This is an example demonstrating how one can create widgets from a plugin,
 and have them re-created automatically at IDA startup-time or at desktop load-time.
+
+This example should be placed in the 'plugins' directory of the
+IDA installation, for it to work.
+
+There are 2 ways to use this example:
+1) reloading an IDB, where the widget was opened
+   - open the widget ('View > Open subview > ...')
+   - save this IDB, and close IDA
+   - restart IDA with this IDB
+     => the widget will be visible
+
+2) reloading a desktop, where the widget was opened
+   - open the widget ('View > Open subview > ...')
+   - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto'
+   - start another IDA instance with some IDB, and load that desktop
+     => the widget will be visible
 
  • Category: core
  • -
  • Summary: better integrating custom widgets in the desktop layout
  • +
  • Summary: Better integrating custom widgets in the desktop layout
  • View on GitHub
  • -
  • Keywords: - desktop - + plugin + UI_Hooks +
  • + +
  • APIs used
      @@ -246,32 +290,42 @@ and have them re-created automatically at IDA startup-time or at desktop load-ti
    • ida_kernwin.simplecustviewer_t.Create
  • -
  • Summary: better integrating custom widgets in the desktop layout
  • - +
-
- bin_search: showcasing `ida_bytes.bin_search` + bin_search: Showcasing `ida_bytes.bin_search`
+
+
+
+ + + colorize_disassembly_on_the_fly: An easy-to-use way to colorize lines +
+
+ +
+This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info`
+feature, to provide a quick & easy way to colorize disassembly
+lines.
+
+Contrary to @colorize_disassembly, the coloring is not persisted in
+the database, and will therefore be lost after the session.
+
+By triggering the action multiple times, the user can "carousel"
+across 4 predefined colors (and return to the "no color" state.)
+
+ +
    +
  • Category: core
  • +
  • Summary: An easy-to-use way to colorize lines
  • +
  • View on GitHub
  • +
  • Keywords: + coloring + UI_Hooks +
  • + +
  • Shortcut: + ! +
  • + + +
  • APIs used +
      +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.CK_EXTRA5
    • +
    • ida_kernwin.CK_EXTRA6
    • +
    • ida_kernwin.CK_EXTRA7
    • +
    • ida_kernwin.CK_EXTRA8
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.get_current_viewer
    • +
    • ida_kernwin.get_custom_viewer_location
    • +
    • ida_kernwin.get_custom_viewer_place_xcoord
    • +
    • ida_kernwin.get_widget_title
    • +
    • ida_kernwin.line_rendering_output_entry_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_moves.lochist_entry_t
    • +
    +
  • + +
  • See also: + +
  • +
-
- create_structure_programmatically: programmatically create & populate a structure + create_structure_programmatically: Programmatically create & populate a structure
@@ -321,10 +436,10 @@ members of different types.
  • Category: core
  • -
  • Summary: programmatically create & populate a structure
  • +
  • Summary: Programmatically create & populate a structure
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -353,31 +468,34 @@ members of different types.
    • idc.set_member_type
  • -
  • Summary: programmatically create & populate a structure
  • - + +
  • Author: Gergely Erdelyi (gergely.erdelyi@d-dome.net)
-
- custom_cli: a custom command-line interpreter + custom_cli: A custom command-line interpreter
 Illustrates how one can add command-line interpreters to IDA
+
+This custom interpreter doesn't actually run any code; it's
+there as a 'getting started'.
+It provides an example tab completion support.
 
  • Category: core
  • -
  • Summary: a custom command-line interpreter
  • +
  • Summary: A custom command-line interpreter
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -389,32 +507,35 @@ Illustrates how one can add command-line interpreters to IDA
    • ida_kernwin.cli_t
  • -
  • Summary: a custom command-line interpreter
  • - +
-
- custom_data_types_and_formats: using custom data types & printers + custom_data_types_and_formats: Using custom data types & printers
 IDA can be extended to support certain data types that it
 does not know about out-of-the-box.
+
+A 'custom data type' provide information about the type &
+size of a piece of data, while a 'custom data format' is in
+charge of formatting that data (there can be more than
+one format for a specific 'custom data type'.)
 
  • Category: core
  • -
  • Summary: using custom data types & printers
  • +
  • Summary: Using custom data types & printers
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -440,32 +561,40 @@ does not know about out-of-the-box.
    • ida_struct.is_member_id
  • -
  • Summary: using custom data types & printers
  • - +
-
- dump_extra_comments: retrieve extra comments + dump_extra_comments: Retrieve extra comments
 Use the `ida_lines.get_extra_cmt` API to retrieve anterior
 and posterior extra comments.
+
+This script registers two actions, that can be used to dump
+the previous and next extra comments.
 
  • Category: core
  • -
  • Summary: retrieve extra comments
  • +
  • Summary: Retrieve extra comments
  • View on GitHub
  • -
  • Keywords: + ctxmenu +
  • + +
  • Shortcuts: + Ctrl+Shift+Y + Ctrl+Shift+Z +
  • +
  • APIs used
      @@ -485,31 +614,33 @@ and posterior extra comments.
    • ida_view
  • -
  • Summary: retrieve extra comments
  • - +
-
- dump_flowchart: dump function flowchart + dump_flowchart: Dump function flowchart
 Dumps the current function's flowchart, using 2 methods:
+
+  * the low-level `ida_gdl.qflow_chart_t` type
+  * the somewhat higher-level, and slightly more pythonic
+    `ida_gdl.FlowChart` type.
 
  • Category: core
  • -
  • Summary: dump function flowchart
  • +
  • Summary: Dump function flowchart
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -519,18 +650,16 @@ Dumps the current function's flowchart, using 2 methods:
    • ida_kernwin.get_screen_ea
  • -
  • Summary: dump function flowchart
  • - +
-
- dump_selection: retrieve & dump current selection + dump_selection: Retrieve & dump current selection
@@ -539,14 +668,23 @@ Shows how to retrieve the selection from a listing widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as two "cursors", and from there retrieve (in fact, generate) the corresponding text. + +After running this script: + + * select some text in one of the listing widgets (i.e., + "IDA View-*", "Enums", "Structures", "Pseudocode-*") + * press Ctrl+Shift+S to dump the selection
  • Category: core
  • -
  • Summary: retrieve & dump current selection
  • +
  • Summary: Retrieve & dump current selection
  • View on GitHub
  • - -
  • Keywords: + +
  • Shortcut: + Ctrl+Shift+S +
  • +
  • APIs used
      @@ -567,32 +705,38 @@ the corresponding text.
    • ida_lines.tag_remove
  • -
  • Summary: retrieve & dump current selection
  • - +
-
- extend_idc: add functions to the IDC runtime from IDAPython + extend_idc: Add functions to the IDC runtime from IDAPython
 You can add IDC functions to IDA, whose "body" consists of
 IDAPython statements!
+
+We'll register a 'pow' function, available to all IDC code,
+that when invoked will call back into IDAPython, and execute
+the provided function body.
+
+After running this script, try switching to the IDC interpreter
+(using the button on the lower-left corner of IDA) and executing
+`pow(3, 7)`
 
  • Category: core
  • -
  • Summary: add functions to the IDC runtime from IDAPython
  • +
  • Summary: Add functions to the IDC runtime from IDAPython
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -600,48 +744,46 @@ IDAPython statements!
    • ida_expr.add_idc_func
  • -
  • Summary: add functions to the IDC runtime from IDAPython
  • - +
-
- idapythonrc: code to be run right after IDAPython initialization + idapythonrc: Code to be run right after IDAPython initialization
 The `idapythonrc.py` file:
+
+  * %APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py (on Windows)
+  * ~/.idapro/idapythonrc.py (on Linux & Mac)
+
+can contain any IDAPython code that will be run as soon as
+IDAPython is done successfully initializing.
 
  • Category: core
  • -
  • Summary: code to be run right after IDAPython initialization
  • +
  • Summary: Code to be run right after IDAPython initialization
  • View on GitHub
  • - -
  • Keywords: -
  • APIs used -
      -
    -
  • -
  • Summary: code to be run right after IDAPython initialization
  • - + + +
-
- install_user_defined_prefix: inserting information into disassembly prefixes + install_user_defined_prefix: Inserting information into disassembly prefixes
@@ -654,10 +796,13 @@ information (e.g., '.text:08047718'), but it is possible to
  • Category: core
  • -
  • Summary: inserting information into disassembly prefixes
  • +
  • Summary: Inserting information into disassembly prefixes
  • View on GitHub
  • -
  • Keywords: + plugin +
  • + +
  • APIs used
      @@ -667,18 +812,76 @@ information (e.g., '.text:08047718'), but it is possible to
    • ida_lines.user_defined_prefix_t
  • -
  • Summary: inserting information into disassembly prefixes
  • - + +
+
+
+
+
+ + + list_function_items: Showcases (a few of) the iterators available on a function +
+
+ +
+This demonstrates how to use some of the iterators available on the func_t type.
+
+This example will focus on:
+
+  * `func_t[.__iter__]`: the default iterator; iterates on instructions
+  * `func_t.data_items`: iterate on data items contained within a function
+  * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing
+                         the start of an instruction, or a data item.
+  * `func_t.addresses`: iterate on all addresses within function (code
+                        and data, beginning of an item or not)
+
+Type `help(ida_funcs.func_t)` for a full list of iterators.
+
+In addition, one can use:
+
+  * `func_tail_iterator_t`: iterate on all the chunks (including
+                            the main one) of the function
+  * `func_parent_iterator_t`: iterate on all the parent functions,
+                              that include this chunk
+
+ +
    +
  • Category: core
  • +
  • Summary: Showcases (a few of) the iterators available on a function
  • +
  • View on GitHub
  • +
  • Keywords: + funcs iterator +
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_flags
    • +
    • ida_bytes.is_code
    • +
    • ida_bytes.is_data
    • +
    • ida_bytes.is_tail
    • +
    • ida_bytes.is_unknown
    • +
    • ida_funcs.func_tail_iterator_t
    • +
    • ida_funcs.get_fchunk
    • +
    • ida_funcs.get_func
    • +
    • ida_funcs.get_func_name
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_ua.print_insn_mnem
    • +
    +
  • + +
-
- list_imports: enumerate file imports + list_imports: Enumerate file imports
@@ -688,10 +891,10 @@ Using the API to enumerate file imports.
  • Category: core
  • -
  • Summary: enumerate file imports
  • +
  • Summary: Enumerate file imports
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -700,18 +903,16 @@ Using the API to enumerate file imports.
    • ida_nalt.get_import_module_qty
  • -
  • Summary: enumerate file imports
  • - +
-
- list_patched_bytes: enumerate patched bytes + list_patched_bytes: Enumerate patched bytes
@@ -722,10 +923,10 @@ that were patched using IDA.
  • Category: core
  • -
  • Summary: enumerate patched bytes
  • +
  • Summary: Enumerate patched bytes
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -733,18 +934,16 @@ that were patched using IDA.
    • ida_idaapi.BADADDR
  • -
  • Summary: enumerate patched bytes
  • - +
-
- list_problems: enumerate problems + list_problems: Enumerate problems
@@ -755,10 +954,10 @@ encountered during analysis.
  • Category: core
  • -
  • Summary: enumerate problems
  • +
  • Summary: Enumerate problems
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -784,18 +983,16 @@ encountered during analysis.
    • ida_problems.get_problem_name
  • -
  • Summary: enumerate problems
  • - +
-
- list_segment_functions: list all functions (and xrefs) in segment + list_segment_functions: List all functions (and xrefs) in segment
@@ -806,62 +1003,59 @@ all the cross-references to them.
  • Category: core
  • -
  • Summary: list all functions (and xrefs) in segment
  • +
  • Summary: List all functions (and xrefs) in segment
  • View on GitHub
  • -
  • Keywords: - xrefs - +
  • + +
  • APIs used
    • ida_funcs.get_func
    • ida_funcs.get_func_name
    • ida_funcs.get_next_func
    • -
    • ida_idaapi.BADADDR
    • ida_kernwin.get_screen_ea
    • ida_segment.getseg
    • -
    • ida_xref.get_first_cref_to
    • -
    • ida_xref.get_next_cref_to
    • +
    • ida_xref.xrefblk_t
  • -
  • Summary: list all functions (and xrefs) in segment
  • -
  • See also:
  • +
-
- list_segment_functions_using_idautils: list all functions (and xrefs) in segment + list_segment_functions_using_idautils: List all functions (and xrefs) in segment
 List all the functions in the current segment, as well as
 all the cross-references to them.
+
+Contrary to @list_segment_functions, this uses the somewhat
+higher-level `idautils` module.
 
  • Category: core
  • -
  • Summary: list all functions (and xrefs) in segment
  • +
  • Summary: List all functions (and xrefs) in segment
  • View on GitHub
  • -
  • Keywords: - xrefs - +
  • + +
  • APIs used
      @@ -873,25 +1067,21 @@ all the cross-references to them.
    • idautils.Functions
  • -
  • Summary: list all functions (and xrefs) in segment
  • -
  • See also:
  • +
-
- list_stkvar_xrefs: list all xrefs to a function stack variable + list_stkvar_xrefs: List all xrefs to a function stack variable
@@ -903,13 +1093,16 @@ next_to() (or higher level utilities such as idautils.XrefsTo)
  • Category: core
  • -
  • Summary: list all xrefs to a function stack variable
  • +
  • Summary: List all xrefs to a function stack variable
  • View on GitHub
  • -
  • Keywords: - xrefs - +
  • + +
  • Shortcut: + Ctrl+Shift+F7 +
  • +
  • APIs used
      @@ -917,7 +1110,6 @@ next_to() (or higher level utilities such as idautils.XrefsTo)
    • ida_bytes.is_stkvar
    • ida_frame.calc_stkvar_struc_offset
    • ida_frame.get_frame
    • -
    • ida_funcs.func_item_iterator_t
    • ida_funcs.get_func
    • ida_ida.UA_MAXOP
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • @@ -935,18 +1127,16 @@ next_to() (or higher level utilities such as idautils.XrefsTo)
    • ida_ua.insn_t
  • -
  • Summary: list all xrefs to a function stack variable
  • - +
-
- list_strings: retrieve the strings that are present in the IDB + list_strings: Retrieve the strings that are present in the IDB
@@ -958,50 +1148,56 @@ this will not require that the "Strings" window is opened & available.
  • Category: core
  • -
  • Summary: retrieve the strings that are present in the IDB
  • +
  • Summary: Retrieve the strings that are present in the IDB
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
    • idautils.Strings
  • -
  • Summary: retrieve the strings that are present in the IDB
  • -
  • See also:
  • +
-
- produce_c_file: decompile entire file + produce_c_file: Decompile entire file
-automate IDA to perform auto-analysis on a file and,
+Automate IDA to perform auto-analysis on a file and,
 once that is done, produce a .c file containing the
 decompilation of all the functions in that file.
+
+Run like so:
+
+      ida -A "-S...path/to/produce_c_file.py" 
+
+where:
+
+  * -A instructs IDA to run in non-interactive mode
+  * -S holds a path to the script to run (note this is a single token;
+       there is no space between '-S' and its path.)
 
  • Category: core
  • -
  • Summary: decompile entire file
  • +
  • Summary: Decompile entire file
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1015,32 +1211,40 @@ decompilation of all the functions in that file.
    • ida_pro.qexit
  • -
  • Summary: decompile entire file
  • - +
-
- produce_lst_file: produce listing + produce_lst_file: Produce listing
-automate IDA to perform auto-analysis on a file and,
+Automate IDA to perform auto-analysis on a file and,
 once that is done, produce a .lst file with the disassembly.
+
+Run like so:
+
+      ida -A "-S...path/to/produce_lst_file.py" 
+
+where:
+
+  * -A instructs IDA to run in non-interactive mode
+  * -S holds a path to the script to run (note this is a single token;
+       there is no space between '-S' and its path.)
 
  • Category: core
  • -
  • Summary: produce listing
  • +
  • Summary: Produce listing
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1055,18 +1259,16 @@ once that is done, produce a .lst file with the disassembly.
    • ida_pro.qexit
  • -
  • Summary: produce listing
  • - +
-
- register_timer: using timers for delayed execution + register_timer: Using timers for delayed execution
@@ -1076,45 +1278,50 @@ Register (possibly repeating) timers.
  • Category: core
  • -
  • Summary: using timers for delayed execution
  • +
  • Summary: Using timers for delayed execution
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
    • ida_kernwin.register_timer
  • -
  • Summary: using timers for delayed execution
  • - +
-
- trigger_actions_programmatically: execute existing actions programmatically + trigger_actions_programmatically: Execute existing actions programmatically
 It's possible to invoke any action programmatically, by using
 either of those two:
+
+  * ida_kernwin.execute_ui_requests()
+  * ida_kernwin.process_ui_action()
+
+Ideally, this script should be run through the "File > Script file..."
+menu, so as to keep focus on "IDA View-A" and have the
+'ProcessUiActions' part work as intended.
 
  • Category: core
  • -
  • Summary: execute existing actions programmatically
  • +
  • Summary: Execute existing actions programmatically
  • View on GitHub
  • -
  • Keywords: - actions - +
  • + +
  • APIs used
      @@ -1124,23 +1331,20 @@ either of those two:
    • ida_kernwin.process_ui_action
  • -
  • Summary: execute existing actions programmatically
  • - +
-
-

Category: debugging

- automatic_steps: programmatically drive a debugging session + automatic_steps: Programmatically drive a debugging session
@@ -1152,10 +1356,13 @@ execution.
  • Category: debugging
  • -
  • Summary: programmatically drive a debugging session
  • +
  • Summary: Programmatically drive a debugging session
  • View on GitHub
  • -
  • Keywords: + DBG_Hooks +
  • + +
  • APIs used
      @@ -1171,32 +1378,35 @@ execution.
    • ida_lines.tag_remove
  • -
  • Summary: programmatically drive a debugging session
  • - +
-
- dbg_trace: using the low-level tracing hook + dbg_trace: Using the low-level tracing hook
 This script demonstrates using the low-level tracing hook
 (ida_dbg.DBG_Hooks.dbg_trace). It can be run like so:
+
+     ida[t].exe -B -Sdbg_trace.py -Ltrace.log file.exe
 
  • Category: debugging
  • -
  • Summary: using the low-level tracing hook
  • +
  • Summary: Using the low-level tracing hook
  • View on GitHub
  • -
  • Keywords: + DBG_Hooks +
  • + +
  • APIs used
      @@ -1235,32 +1445,92 @@ This script demonstrates using the low-level tracing hook
    • idc.ARGV
  • -
  • Summary: using the low-level tracing hook
  • - + +
+
+
+
+
+ + + print_call_stack: Print call stack (on Linux) +
+
+ +
+           Print the return addresses from the call stack at a breakpoint.
+           (and print also the module and the debug name from debugger)
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_linux64`, or
+    `ida` on test program `simple_appcall_linux32`, and wait for
+    auto-analysis to finish
+  * put a breakpoint where you want to see the call stack
+  * select the 'linux debugger' (either local, or remote)
+  * start debugging
+  * Press Shift+C at the breakpoint
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Print call stack (on Linux)
  • +
  • View on GitHub
  • + +
  • Shortcut: + Shift+C +
  • + + +
  • APIs used +
      +
    • ida_dbg.collect_stack_trace
    • +
    • ida_dbg.get_current_thread
    • +
    • ida_dbg.get_module_info
    • +
    • ida_idd.call_stack_t
    • +
    • ida_idd.modinfo_t
    • +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_name.GNCN_NOCOLOR
    • +
    • ida_name.GNCN_NOLABEL
    • +
    • ida_name.GNCN_NOSEG
    • +
    • ida_name.GNCN_PREFDBG
    • +
    • ida_name.get_nice_colored_name
    • +
    +
  • + +
-
- registers_context_menu: adding actions to the "registers" widget(s) + registers_context_menu: Adding actions to the "registers" widget(s)
 It's possible to add actions to the context menu of
 pretty much all widgets in IDA.
+
+This example shows how to do just that for
+registers-displaying widgets (e.g., "General registers")
 
  • Category: debugging
  • -
  • Summary: adding actions to the "registers" widget(s)
  • +
  • Summary: Adding actions to the "registers" widget(s)
  • View on GitHub
  • -
  • Keywords: + ctxmenu + UI_Hooks +
  • + +
  • APIs used
      @@ -1282,18 +1552,16 @@ pretty much all widgets in IDA.
    • ida_ua.dt_word
  • -
  • Summary: adding actions to the "registers" widget(s)
  • - +
-
- show_debug_names: retrieving & dumping debuggee symbols + show_debug_names: Retrieving & dumping debuggee symbols
@@ -1304,10 +1572,10 @@ symbols that the process being debugged, provides.
  • Category: debugging
  • -
  • Summary: retrieving & dumping debuggee symbols
  • +
  • Summary: Retrieving & dumping debuggee symbols
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1318,31 +1586,49 @@ symbols that the process being debugged, provides.
    • ida_name.get_debug_names
  • -
  • Summary: retrieving & dumping debuggee symbols
  • - +
- -
+
- simple_appcall_common: + simple_appcall_linux: Executing code into the application being debugged (on Linux)
-
+
+Using the `ida_idd.Appcall` utility to execute code in
+the process being debugged.
 
+This example will run the test program and stop wherever
+the cursor currently is, and then perform an appcall to
+execute the `ref4` and `ref8` functions.
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_linux64`, or
+    `ida` on test program `simple_appcall_linux32`, and wait for
+    auto-analysis to finish
+  * select the 'linux debugger' (either local, or remote)
+  * run this script
+
+Note: the real body of code is in `simple_appcall_common.py`.
 
  • Category: debugging
  • -
  • Summary:
  • -
  • View on GitHub
  • - -
  • Keywords: +
  • Summary: Executing code into the application being debugged (on Linux)
  • +
  • View on GitHub
  • + + +
  • Imports +
      +
    • simple_appcall_common
    • +
    +
  • APIs used
      @@ -1358,106 +1644,101 @@ symbols that the process being debugged, provides.
    • ida_typeinf.apply_cdecl
  • -
  • Summary:
  • - +
- -
-
- - - simple_appcall_linux: executing code into the application being debugged (on Linux) -
-
- -
-Using the `ida_idd.Appcall` utility to execute code in
-the process being debugged.
-
- -
    -
  • Category: debugging
  • -
  • Summary: executing code into the application being debugged (on Linux)
  • -
  • View on GitHub
  • - -
  • Keywords: - -
  • APIs used -
      -
    -
  • -
  • Summary: executing code into the application being debugged (on Linux)
  • - - -
-
-
-
- simple_appcall_win: executing code into the application being debugged (on Windows) + simple_appcall_win: Executing code into the application being debugged (on Windows)
 Using the `ida_idd.Appcall` utility to execute code in
 the process being debugged.
+
+This example will run the test program and stop wherever
+the cursor currently is, and then perform an appcall to
+execute the `ref4` and `ref8` functions.
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_win64.exe`, or
+    `ida` on test program `simple_appcall_win32.exe`, and wait for
+    auto-analysis to finish
+  * select the 'windows debugger' (either local, or remote)
+  * run this script
+
+Note: the real body of code is in `simple_appcall_common.py`.
 
  • Category: debugging
  • -
  • Summary: executing code into the application being debugged (on Windows)
  • +
  • Summary: Executing code into the application being debugged (on Windows)
  • View on GitHub
  • - -
  • Keywords: + + +
  • Imports +
      +
    • simple_appcall_common
    • +
    +
  • APIs used
      +
    • ida_dbg.DBG_Hooks
    • +
    • ida_dbg.run_to
    • ida_ida.inf_is_64bit
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idd.Appcall
    • +
    • ida_idd.Appcall.byref
    • +
    • ida_idd.Appcall.int64
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_name.get_name_ea
    • +
    • ida_name.set_name
    • +
    • ida_typeinf.apply_cdecl
  • -
  • Summary: executing code into the application being debugged (on Windows)
  • - +
-
-

Category: disassembly

- colorize_disassembly: change background colours + colorize_disassembly: Change background colours
 This illustrates the setting/retrieval of background colours
 using the IDC wrappers
+
+In order to do so, we'll be assigning colors to specific ranges
+(item, function, or segment). Those will be persisted in the
+database.
 
  • Category: disassembly
  • -
  • Summary: change background colours
  • +
  • Summary: Change background colours
  • View on GitHub
  • -
  • Keywords: - coloring - - idc - +
  • + +
  • APIs used
      @@ -1469,23 +1750,25 @@ using the IDC wrappers
    • idc.set_color
  • -
  • Summary: change background colours
  • - +
  • See also: + +
  • +
-
-

Category: hexrays

- colorize_pseudocode_lines: interactively color certain pseudocode lines + colorize_pseudocode_lines: Interactively color certain pseudocode lines
@@ -1493,17 +1776,25 @@ using the IDC wrappers Provides an action that can be used to dynamically alter the lines background rendering for pseudocode listings (as opposed to using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`) + +After running this script, pressing 'M' on a line in a +"Pseudocode-?" widget, will cause that line to be rendered +with a special background color.
  • Category: hexrays
  • -
  • Summary: interactively color certain pseudocode lines
  • +
  • Summary: Interactively color certain pseudocode lines
  • View on GitHub
  • -
  • Keywords: - colors - + UI_Hooks +
  • + +
  • Shortcut: + M +
  • +
  • APIs used
      @@ -1522,18 +1813,62 @@ using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`)
    • ida_moves.lochist_entry_t
  • -
  • Summary: interactively color certain pseudocode lines
  • - + +
+
+
+
+
+ + + curpos_details: A focus on the 'curpos' hook, printing additional details about user input +
+
+ +
+Shows how user input information can be retrieved during
+processing of a notification triggered by that input
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: A focus on the 'curpos' hook, printing additional details about user input
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_kernwin.get_user_input_event
    • +
    • ida_kernwin.iek_key_press
    • +
    • ida_kernwin.iek_key_release
    • +
    • ida_kernwin.iek_mouse_button_press
    • +
    • ida_kernwin.iek_mouse_button_release
    • +
    • ida_kernwin.iek_mouse_wheel
    • +
    • ida_kernwin.iek_shortcut
    • +
    • ida_kernwin.input_event_t
    • +
    +
  • + +
  • See also: + +
  • +
-
- decompile_entry_points: automatic decompilation of functions + decompile_entry_points: Automatic decompilation of functions
@@ -1541,14 +1876,17 @@ using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`) Attempts to load a decompiler plugin corresponding to the current architecture (and address size) right after auto-analysis is performed, and then tries to decompile the function at the first entrypoint. + +It is particularly suited for use with the '-S' flag, for example: +idat -Ldecompile.log -Sdecompile_entry_points.py -c file
  • Category: hexrays
  • -
  • Summary: automatic decompilation of functions
  • +
  • Summary: Automatic decompilation of functions
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1571,31 +1909,29 @@ and then tries to decompile the function at the first entrypoint.
    • idc.get_idb_path
  • -
  • Summary: automatic decompilation of functions
  • - +
-
- vds1: decompile & print current function. + vds1: Decompile & print current function.
-
+Decompile & print current function.
 
  • Category: hexrays
  • -
  • Summary: decompile & print current function.
  • +
  • Summary: Decompile & print current function.
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1607,32 +1943,41 @@ and then tries to decompile the function at the first entrypoint.
    • ida_lines.tag_remove
  • -
  • Summary: decompile & print current function.
  • - +
-
- vds10: a custom microcode instruction optimization rule + vds10: A custom microcode instruction optimization rule
 Installs a custom microcode instruction optimization rule,
 to transform:
+
+    call   !DbgRaiseAssertionFailure .0
+
+into
+
+    call   !DbgRaiseAssertionFailure .0
+
+To see this plugin in action please use arm64_brk.i64
 
  • Category: hexrays
  • -
  • Summary: a custom microcode instruction optimization rule
  • +
  • Summary: A custom microcode instruction optimization rule
  • View on GitHub
  • -
  • Keywords: + plugin +
  • + +
  • APIs used
      @@ -1647,32 +1992,45 @@ to transform:
    • ida_typeinf.tinfo_t.get_stock
  • -
  • Summary: a custom microcode instruction optimization rule
  • - +
-
- vds11: a custom microcode block optimization rule (resolve `goto` chains) + vds11: A custom microcode block optimization rule (resolve `goto` chains)
 Installs a custom microcode block optimization rule,
 to transform:
+
+      goto L1
+      ...
+    L1:
+      goto L2
+
+into
+
+      goto L2
+
+In other words we fix a goto target if it points to a chain of gotos.
+This improves the decompiler output in some cases.
 
  • Category: hexrays
  • -
  • Summary: a custom microcode block optimization rule (resolve `goto` chains)
  • +
  • Summary: A custom microcode block optimization rule (resolve `goto` chains)
  • View on GitHub
  • -
  • Keywords: + plugin +
  • + +
  • APIs used
      @@ -1685,18 +2043,16 @@ to transform:
    • ida_idaapi.plugin_t
  • -
  • Summary: a custom microcode block optimization rule (resolve `goto` chains)
  • - +
-
- vds12: list instruction registers + vds12: List instruction registers
@@ -1707,10 +2063,10 @@ current instruction.
  • Category: hexrays
  • -
  • Summary: list instruction registers
  • +
  • Summary: List instruction registers
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1745,18 +2101,16 @@ current instruction.
    • ida_pro.eavec_t
  • -
  • Summary: list instruction registers
  • - +
-
- vds13: generates microcode for selection + vds13: Generates microcode for selection
@@ -1766,10 +2120,10 @@ Generates microcode for selection and dumps it to the output window.
  • Category: hexrays
  • -
  • Summary: generates microcode for selection
  • +
  • Summary: Generates microcode for selection
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -1786,32 +2140,41 @@ Generates microcode for selection and dumps it to the output window.
    • ida_range.range_t
  • -
  • Summary: generates microcode for selection
  • - +
-
- vds17: using the "Select offsets" widget + vds17: Using the "Select offsets" widget
 Registers an action opens the "Select offsets" widget
 (select_udt_by_offset() call).
+
+This effectively repeats the functionality already available
+through Alt+Y.
+
+Place cursor on the union field and press Shift+T
 
  • Category: hexrays
  • -
  • Summary: using the "Select offsets" widget
  • +
  • Summary: Using the "Select offsets" widget
  • View on GitHub
  • -
  • Keywords: + plugin +
  • + +
  • Shortcut: + Shift+T +
  • +
  • APIs used
      @@ -1847,32 +2210,41 @@ Registers an action opens the "Select offsets" widget
    • ida_typeinf.remove_pointer
  • -
  • Summary: using the "Select offsets" widget
  • - +
-
- vds19: a custom microcode instruction optimization rule (`x | ~x => -1`) + vds19: A custom microcode instruction optimization rule (`x | ~x => -1`)
 Installs a custom microcode instruction optimization rule,
 to transform:
+
+    x | ~x
+
+into
+
+    -1
+
+To see this plugin in action please use be_ornot_be.idb
 
  • Category: hexrays
  • -
  • Summary: a custom microcode instruction optimization rule (`x | ~x => -1`)
  • +
  • Summary: A custom microcode instruction optimization rule (`x | ~x => -1`)
  • View on GitHub
  • -
  • Keywords: + plugin +
  • + +
  • APIs used
      @@ -1888,73 +2260,130 @@ to transform:
    • ida_idaapi.plugin_t
  • -
  • Summary: a custom microcode instruction optimization rule (`x | ~x => -1`)
  • - +
-
- vds21: dynamically provide a custom call type + vds21: Dynamically provide a custom call type
 This plugin can greatly improve decompilation of indirect calls:
+
+    call    [eax+4]
+
+For them, the decompiler has to guess the prototype of the called function.
+This has to be done at a very early phase of decompilation because
+the function prototype influences the data flow analysis. On the other
+hand, we do not have global data flow analysis results yet because
+we haven't analyzed all calls in the function. It is a chicked-and-egg
+problem.
+
+The decompiler uses various techniques to guess the called function
+prototype. While it works very well, it may fail in some cases.
+
+To fix, the user can specify the call prototype manually, using
+"Edit, Operand types, Set operand type" at the call instruction.
+
+This plugin illustrates another approach to the problem:
+if you happen to be able to calculate the call prototypes dynamically,
+this is how to inform the decompiler about them.
 
  • Category: hexrays
  • -
  • Summary: dynamically provide a custom call type
  • +
  • Summary: Dynamically provide a custom call type
  • View on GitHub
  • -
  • Keywords: + Hexrays_Hooks + plugin +
  • + +
  • APIs used
    • ida_hexrays.Hexrays_Hooks
    • ida_hexrays.init_hexrays_plugin
    • ida_hexrays.m_call
    • +
    • ida_hexrays.mcallinfo_t
    • ida_idaapi.PLUGIN_HIDE
    • ida_idaapi.PLUGIN_KEEP
    • ida_idaapi.plugin_t
    • ida_kernwin.msg
    • ida_kernwin.warning
    • ida_nalt.get_op_tinfo
    • +
    • ida_typeinf.BT_INT
    • +
    • ida_typeinf.CM_CC_STDCALL
    • +
    • ida_typeinf.CM_N32_F48
    • ida_typeinf.parse_decl
    • ida_typeinf.tinfo_t
  • -
  • Summary: dynamically provide a custom call type
  • - +
-
- vds3: invert if/else blocks + vds3: Invert if/else blocks
 Registers an action that can be used to invert the `if`
 and `else` blocks of a `ida_hexrays.cif_t`.
+
+For example, a statement like
+
+    if ( cond )
+    {
+      statements1;
+    }
+    else
+    {
+      statements2;
+    }
+
+will be displayed as
+
+    if ( !cond )
+    {
+      statements2;
+    }
+    else
+    {
+      statements1;
+    }
+
+The modifications are persistent: the user can quit & restart
+IDA, and the changes will be present.
 
  • Category: hexrays
  • -
  • Summary: invert if/else blocks
  • +
  • Summary: Invert if/else blocks
  • View on GitHub
  • -
  • Keywords: + ctxmenu + Hexrays_Hooks + IDP_Hooks + plugin +
  • + +
  • Shortcut: + I +
  • +
  • APIs used
      @@ -1975,6 +2404,7 @@ and `else` blocks of a `ida_hexrays.cif_t`.
    • ida_idaapi.PLUGIN_HIDE
    • ida_idaapi.PLUGIN_KEEP
    • ida_idaapi.plugin_t
    • +
    • ida_idp.IDP_Hooks
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • ida_kernwin.BWN_PSEUDOCODE
    • @@ -1985,38 +2415,45 @@ and `else` blocks of a `ida_hexrays.cif_t`.
    • ida_netnode.netnode
  • -
  • Summary: invert if/else blocks
  • - + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
-
- vds4: dump user-defined information + vds4: Dump user-defined information
 Prints user-defined information to the "Output" window.
 Namely:
+
+  * user defined label names
+  * user defined indented comments
+  * user defined number formats
+  * user defined local variable names, types, comments
+
+This script loads information from the database without decompiling anything.
 
  • Category: hexrays
  • -
  • Summary: dump user-defined information
  • +
  • Summary: Dump user-defined information
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
    • ida_bytes.get_radix
    • +
    • ida_funcs.get_func
    • ida_hexrays.CIT_COLLAPSED
    • -
    • ida_hexrays.decompile
    • +
    • ida_hexrays.NF_NEGATE
    • ida_hexrays.init_hexrays_plugin
    • ida_hexrays.lvar_uservec_t
    • ida_hexrays.restore_user_cmts
    • @@ -2031,32 +2468,45 @@ Namely:
    • ida_kernwin.get_screen_ea
  • -
  • Summary: dump user-defined information
  • - + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
-
- vds5: show ctree graph + vds5: Show ctree graph
 Registers an action that can be used to show the graph of the ctree.
 The current item will be highlighted in the graph.
+
+The command shortcut is `Ctrl+Shift+G`, and is also added
+to the context menu.
+
+To display the graph, we produce a .gdl file, and
+request that ida displays that using `ida_gdl.display_gdl`.
 
  • Category: hexrays
  • -
  • Summary: show ctree graph
  • +
  • Summary: Show ctree graph
  • View on GitHub
  • -
  • Keywords: + ctxmenu + Hexrays_Hooks + plugin +
  • + +
  • Shortcut: + Ctrl+Shift+G +
  • +
  • APIs used
      @@ -2092,32 +2542,36 @@ The current item will be highlighted in the graph.
    • ida_pro.str2user
  • -
  • Summary: show ctree graph
  • - +
-
- vds6: superficially modify the decompilation output + vds6: Superficially modify the decompilation output
-modifies the decompilation output in a superficial manner,
+Modifies the decompilation output in a superficial manner,
 by removing some white spaces
+
+Note: this is rather crude, not quite "pythonic" code.
 
  • Category: hexrays
  • -
  • Summary: superficially modify the decompilation output
  • +
  • Summary: Superficially modify the decompilation output
  • View on GitHub
  • -
  • Keywords: + Hexrays_Hooks + plugin +
  • + +
  • APIs used
      @@ -2130,18 +2584,16 @@ by removing some white spaces
    • ida_lines.tag_skipcodes
  • -
  • Summary: superficially modify the decompilation output
  • - +
-
- vds7: iterate a cblock_t object + vds7: Iterate a cblock_t object
@@ -2152,10 +2604,13 @@ Using a `ida_hexrays.ctree_visitor_t`, search for
  • Category: hexrays
  • -
  • Summary: iterate a cblock_t object
  • +
  • Summary: Iterate a cblock_t object
  • View on GitHub
  • -
  • Keywords: + Hexrays_Hooks +
  • + +
  • APIs used
      @@ -2167,18 +2622,17 @@ Using a `ida_hexrays.ctree_visitor_t`, search for
    • ida_hexrays.init_hexrays_plugin
  • -
  • Summary: iterate a cblock_t object
  • - + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
-
- vds8: using `ida_hexrays.udc_filter_t` + vds8: Using `ida_hexrays.udc_filter_t`
@@ -2186,14 +2640,26 @@ Using a `ida_hexrays.ctree_visitor_t`, search for Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile `svc 0x900001` and `svc 0x9000F8` as function calls to `svc_exit()` and `svc_exit_group()` respectively. + +You will need to have an ARM + Linux IDB for this script to be usable + +In addition to having a shortcut, the action will be present +in the context menu.
  • Category: hexrays
  • -
  • Summary: using `ida_hexrays.udc_filter_t`
  • +
  • Summary: Using `ida_hexrays.udc_filter_t`
  • View on GitHub
  • -
  • Keywords: + ctxmenu + UI_Hooks +
  • + +
  • Shortcut: + Ctrl+Shift+U +
  • +
  • APIs used
      @@ -2213,32 +2679,41 @@ Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile
    • ida_kernwin.register_action
  • -
  • Summary: using `ida_hexrays.udc_filter_t`
  • - +
-
- vds_create_hint: decompiler hints + vds_create_hint: Decompiler hints
 Handle `ida_hexrays.hxe_create_hint` notification using hooks,
 to return our own.
+
+If the object under the cursor is:
+
+* a function call, prefix the original decompiler hint with `==> `
+* a local variable declaration, replace the hint with our own in
+  the form of `!{varname}` (where `{varname}` is replaced with the
+  variable name)
+* an `if` statement, replace the hint with our own, saying "condition"
 
  • Category: hexrays
  • -
  • Summary: decompiler hints
  • +
  • Summary: Decompiler hints
  • View on GitHub
  • -
  • Keywords: + Hexrays_Hooks +
  • + +
  • APIs used
      @@ -2250,49 +2725,63 @@ to return our own.
    • ida_hexrays.cot_call
  • -
  • Summary: decompiler hints
  • - +
-
- vds_hooks: various decompiler hooks + vds_hooks: Various decompiler hooks
 Shows how to hook to many notifications sent by the decompiler.
+
+This plugin doesn't really accomplish anything: it just prints
+the parameters.
+
+The list of notifications handled below should be exhaustive,
+and is there to hint at what is possible to accomplish by
+subclassing `ida_hexrays.Hexrays_Hooks`
 
  • Category: hexrays
  • -
  • Summary: various decompiler hooks
  • +
  • Summary: Various decompiler hooks
  • View on GitHub
  • -
  • Keywords: + Hexrays_Hooks +
  • + +
  • APIs used
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.cfunc_t
    • +
    • ida_hexrays.lvar_t
    • +
    • ida_hexrays.vdui_t
  • -
  • Summary: various decompiler hooks
  • - +
  • See also: + +
  • +
-
- vds_modify_user_lvars: modifying local variables + vds_modify_user_lvars: Modifying local variables
@@ -2303,10 +2792,10 @@ comments and/or types of local variables.
  • Category: hexrays
  • -
  • Summary: modifying local variables
  • +
  • Summary: Modifying local variables
  • View on GitHub
  • - -
  • Keywords: + +
  • APIs used
      @@ -2317,32 +2806,40 @@ comments and/or types of local variables.
    • idc.here
  • -
  • Summary: modifying local variables
  • - +
-
- vds_xrefs: show decompiler xrefs + vds_xrefs: Show decompiler xrefs
 Show decompiler-style Xref when the `Ctrl+X` key is
 pressed in the Decompiler window.
+
+* supports any global name: functions, strings, integers, ...
+* supports structure member.
 
  • Category: hexrays
  • -
  • Summary: show decompiler xrefs
  • +
  • Summary: Show decompiler xrefs
  • View on GitHub
  • -
  • Keywords: + ctxmenu + Hexrays_Hooks +
  • + +
  • Shortcut: + Ctrl+X +
  • +
  • APIs used
      @@ -2379,23 +2876,54 @@ pressed in the Decompiler window.
    • idautils.XrefsTo
  • -
  • Summary: show decompiler xrefs
  • - + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
-
-

Category: idbhooks

+
+
+ + + log_idb_events: Logging IDB events +
+
+ +
+These hooks will be notified about IDB events, and
+dump their information to the "Output" window
+
+ +
    +
  • Category: idbhooks
  • +
  • Summary: Logging IDB events
  • +
  • View on GitHub
  • +
  • Keywords: + IDB_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_idp.IDB_Hooks
    • +
    +
  • + + +
+
+
- operand_changed: notify the user when an instruction operand changes + operand_changed: Notify the user when an instruction operand changes
@@ -2406,10 +2934,13 @@ an instruction's operand, or a data item.
  • Category: idbhooks
  • -
  • Summary: notify the user when an instruction operand changes
  • +
  • Summary: Notify the user when an instruction operand changes
  • View on GitHub
  • -
  • Keywords: + IDB_Hooks +
  • + +
  • APIs used
      @@ -2437,13 +2968,11 @@ an instruction's operand, or a data item.
    • ida_struct.get_struc_name
  • -
  • Summary: notify the user when an instruction operand changes
  • - +
-
@@ -2472,8 +3001,11 @@ frames, but we'll only record function prototypes changes.
  • Category: idbhooks
  • Summary: Record and replay changes in function prototypes
  • View on GitHub
  • -
  • Keywords: + IDB_Hooks +
  • + +
  • APIs used
      @@ -2486,23 +3018,20 @@ frames, but we'll only record function prototypes changes.
    • ida_typeinf.tinfo_t
  • -
  • Summary: Record and replay changes in function prototypes
  • - +
    -
    -

    Category: idphooks

    - ana_emu_out: override some parts of the processor module + ana_emu_out: Override some parts of the processor module
    @@ -2510,14 +3039,19 @@ frames, but we'll only record function prototypes changes. Implements disassembly of BUG_INSTR used in Linux kernel BUG() macro, which is architecturally undefined and is not disassembled by IDA's ARM module + +See Linux/arch/arm/include/asm/bug.h for more info
    • Category: idphooks
    • -
    • Summary: override some parts of the processor module
    • +
    • Summary: Override some parts of the processor module
    • View on GitHub
    • -
    • Keywords: + IDP_Hooks +
    • + +
    • APIs used
        @@ -2531,31 +3065,35 @@ disassembled by IDA's ARM module
      • ida_segregs.get_sreg
    • -
    • Summary: override some parts of the processor module
    • - +
    -
    - assemble: an `ida_idp.IDP_Hooks.assembly` implementation + assemble: An `ida_idp.IDP_Hooks.assembly` implementation
     We add support for assembling the following pseudo instructions:
    +
    +* "zero eax" -> xor eax, eax
    +* "nothing" -> nop
     
    • Category: idphooks
    • -
    • Summary: an `ida_idp.IDP_Hooks.assembly` implementation
    • +
    • Summary: An `ida_idp.IDP_Hooks.assembly` implementation
    • View on GitHub
    • -
    • Keywords: + IDP_Hooks +
    • + +
    • APIs used
        @@ -2563,37 +3101,47 @@ We add support for assembling the following pseudo instructions:
      • idautils.DecodeInstruction
    • -
    • Summary: an `ida_idp.IDP_Hooks.assembly` implementation
    • - +
    -
    -

    Category: pyqt

    - inject_command: injecting commands is the "Output" window + inject_command: Injecting commands in the "Output" window
     This example illustrates how one can execute commands in the
     "Output" window, from their own widgets.
    +
    +A few notes:
    +
    +* the original, underlying `cli:Execute` action, that has to be
    +  triggered for the code present in the input field to execute
    +  and be placed in the history, requires that the input field
    +  has focus (otherwise it simply won't do anything.)
    +* this, in turn, forces us to do "delayed" execution of that action,
    +  hence the need for a `QTimer`
    +* the IDA/SWiG 'TWidget' type that we retrieve through
    +  `ida_kernwin.find_widget`, is not the same type as a
    +  `QtWidgets.QWidget`. We therefore need to convert it using
    +  `ida_kernwin.PluginForm.TWidgetToPyQtWidget`
     
    • Category: pyqt
    • -
    • Summary: injecting commands is the "Output" window
    • +
    • Summary: Injecting commands in the "Output" window
    • View on GitHub
    • - -
    • Keywords: + +
    • APIs used
        @@ -2603,18 +3151,16 @@ This example illustrates how one can execute commands in the
      • ida_kernwin.process_ui_action
    • -
    • Summary: injecting commands is the "Output" window
    • - +
    -
    - paint_over_navbar: custom painting on top of the navigation band + paint_over_navbar: Custom painting on top of the navigation band
    @@ -2626,10 +3172,10 @@ and then add our own markers on top.
    • Category: pyqt
    • -
    • Summary: custom painting on top of the navigation band
    • +
    • Summary: Custom painting on top of the navigation band
    • View on GitHub
    • - -
    • Keywords: + +
    • APIs used
        @@ -2641,18 +3187,16 @@ and then add our own markers on top.
      • idc.here
    • -
    • Summary: custom painting on top of the navigation band
    • - +
    -
    - populate_pluginform_with_pyqt_widgets: adding PyQt5 widgets into an `ida_kernwin.PluginForm` + populate_pluginform_with_pyqt_widgets: Adding PyQt5 widgets into an `ida_kernwin.PluginForm`
    @@ -2665,47 +3209,47 @@ regular Qt widgets.
    • Category: pyqt
    • -
    • Summary: adding PyQt5 widgets into an `ida_kernwin.PluginForm`
    • +
    • Summary: Adding PyQt5 widgets into an `ida_kernwin.PluginForm`
    • View on GitHub
    • - -
    • Keywords: + +
    • APIs used
      • ida_kernwin.PluginForm
    • -
    • Summary: adding PyQt5 widgets into an `ida_kernwin.PluginForm`
    • - +
    -
    -

    Category: uihooks

    - func_chooser_coloring: using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults + func_chooser_coloring: Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
    -color the function in the Function window according to its size.
    +Color the function in the Function window according to its size.
     The larger the function, the darker the color.
     
    • Category: uihooks
    • -
    • Summary: using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
    • +
    • Summary: Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
    • View on GitHub
    • -
    • Keywords: + UI_Hooks +
    • + +
    • APIs used
        @@ -2714,23 +3258,21 @@ The larger the function, the darker the color.
      • ida_kernwin.enable_chooser_item_attrs
    • -
    • Summary: using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
    • - +
    -
    - lines_rendering: dynamically colorize lines backgrounds (or parts of them) + lines_rendering: Dynamically colorize lines backgrounds (or parts of them)
    -shows how one can dynamically alter the lines background
    +Shows how one can dynamically alter the lines background
     rendering (as opposed to, say, using ida_nalt.set_item_color()),
     and also shows how that rendering can be limited to just a few
     glyphs, not the whole line.
    @@ -2738,10 +3280,13 @@ glyphs, not the whole line.
     
               
    • Category: uihooks
    • -
    • Summary: dynamically colorize lines backgrounds (or parts of them)
    • +
    • Summary: Dynamically colorize lines backgrounds (or parts of them)
    • View on GitHub
    • -
    • Keywords: + UI_Hooks +
    • + +
    • APIs used
        @@ -2772,50 +3317,49 @@ glyphs, not the whole line.
      • ida_kernwin.refresh_idaview_anyway
    • -
    • Summary: dynamically colorize lines backgrounds (or parts of them)
    • - +
    -
    - log_misc_events: being notified, and logging a few UI events + log_misc_events: Being notified, and logging a few UI events
    -hooks to be notified about certain UI events, and
    +Hooks to be notified about certain UI events, and
     dump their information to the "Output" window
     
    • Category: uihooks
    • -
    • Summary: being notified, and logging a few UI events
    • +
    • Summary: Being notified, and logging a few UI events
    • View on GitHub
    • -
    • Keywords: + UI_Hooks +
    • + +
    • APIs used
      • ida_kernwin.UI_Hooks
    • -
    • Summary: being notified, and logging a few UI events
    • - +
    -
    - prevent_jump: taking precedence over actions + prevent_jump: Taking precedence over actions
    @@ -2827,33 +3371,33 @@ otherwise do it.
    • Category: uihooks
    • -
    • Summary: taking precedence over actions
    • +
    • Summary: Taking precedence over actions
    • View on GitHub
    • -
    • Keywords: + UI_Hooks +
    • + +
    • APIs used
      • ida_kernwin.UI_Hooks
    • -
    • Summary: taking precedence over actions
    • - +
    -
    -

    Category: widgets

    - add_menus: adding custom menus to IDA + add_menus: Adding custom menus to IDA
    @@ -2861,17 +3405,22 @@ otherwise do it. It is possible to add custom menus to IDA, either at the toplevel (i.e., into the menubar), or as submenus of existing menus. + +Notes: + + * the same action can be present in more than 1 menu + * this example does not deal with context menus
    • Category: widgets
    • -
    • Summary: adding custom menus to IDA
    • +
    • Summary: Adding custom menus to IDA
    • View on GitHub
    • -
    • Keywords: - actions - +
    • + +
    • APIs used
        @@ -2884,13 +3433,11 @@ menus.
      • ida_kernwin.register_action
    • -
    • Summary: adding custom menus to IDA
    • - +
    -
    @@ -2901,17 +3448,21 @@ menus.
     How to query for complex user input, using IDA's built-in forms.
    +
    +Note: while this example produces full-fledged forms for complex input,
    +simpler types of inputs might can be retrieved by using
    +`ida_kernwin.ask_str` and similar functions.
     
    • Category: widgets
    • Summary: Non-trivial uses of the `ida_kernwin.Form` helper class
    • View on GitHub
    • -
    • Keywords: - forms - +
    • + +
    • APIs used
        @@ -2922,13 +3473,11 @@ How to query for complex user input, using IDA's built-in forms.
      • ida_kernwin.ask_str
    • -
    • Summary: Non-trivial uses of the `ida_kernwin.Form` helper class
    • - +
    -
    @@ -2947,14 +3496,13 @@ In addition, registers a couple actions that can be applied to it.
  • Category: widgets
  • Summary: A widget showing data in a tabular fashion
  • View on GitHub
  • -
  • Keywords: - - chooser - - actions - + chooser + ctxmenu +
  • + +
  • APIs used
      @@ -2976,24 +3524,17 @@ In addition, registers a couple actions that can be applied to it.
    • ida_kernwin.unregister_action
  • -
  • Summary: A widget showing data in a tabular fashion
  • -
  • See also:
  • +
    -
    @@ -3003,21 +3544,19 @@ In addition, registers a couple actions that can be applied to it.
    -Similar to @{choose}, but with multiple selection
    +Similar to choose, but with multiple selection
     
    • Category: widgets
    • Summary: A widget showing data in a tabular fashion, providing multiple selection
    • View on GitHub
    • -
    • Keywords: - - chooser - - actions - + chooser +
    • + +
    • APIs used
        @@ -3028,52 +3567,48 @@ Similar to @{choose}, but with multiple selection
      • Choose.NOTHING_CHANGED
    • -
    • Summary: A widget showing data in a tabular fashion, providing multiple selection
    • -
    • See also:
    • +
    -
    - chooser_with_folders: A widget that can show tabular data either as a simple table, or with a tree-like structure. + chooser_with_folders: A widget that can show tabular data either as a simple table, or with a tree-like structure.
     By adding the necessary bits to a ida_kernwin.Choose subclass,
     IDA can show the otherwise tabular data, in a tree-like fashion.
    +
    +The important bits to enable this are:
    +
    +  * ida_dirtree.dirspec_t (and my_dirspec_t)
    +  * ida_kernwin.CH_HAS_DIRTREE
    +  * ida_kernwin.Choose.OnGetDirTree
    +  * ida_kernwin.Choose.OnIndexToInode
     
    • Category: widgets
    • -
    • Summary: A widget that can show tabular data either as a simple table, or with a tree-like structure.
    • +
    • Summary: A widget that can show tabular data either as a simple table, or with a tree-like structure.
    • View on GitHub
    • -
    • Keywords: - - chooser - - - folders - - actions - + chooser + folders +
    • + +
    • APIs used
        @@ -3099,29 +3634,22 @@ IDA can show the otherwise tabular data, in a tree-like fashion.
      • ida_netnode.netnode
    • -
    • Summary: A widget that can show tabular data either as a simple table, or with a tree-like structure.
    • -
    • See also:
    • +
    -
    - custom_graph_with_actions: drawing custom graphs + custom_graph_with_actions: Drawing custom graphs
    @@ -3132,16 +3660,15 @@ show how to write actions that can be performed on those.
    • Category: widgets
    • -
    • Summary: drawing custom graphs
    • +
    • Summary: Drawing custom graphs
    • View on GitHub
    • -
    • Keywords: - - graph - - actions - + graph + View_Hooks +
    • + +
    • APIs used
        @@ -3161,22 +3688,19 @@ show how to write actions that can be performed on those.
      • ida_ua.decode_insn
      • ida_ua.insn_t
      • ida_xref.XREF_FAR
      • -
      • idautils.FuncItems
      • -
      • idautils.XrefsFrom
      • +
      • ida_xref.xrefblk_t
    • -
    • Summary: drawing custom graphs
    • - +
    -
    - custom_viewer: create custom listings in IDA + custom_viewer: Create custom listings in IDA
    @@ -3184,20 +3708,22 @@ show how to write actions that can be performed on those. How to create simple listings, that will share many of the features as the built-in IDA widgets (highlighting, copy & paste, notifications, ...) + +In addition, creates actions that will be bound to the +freshly-created widget (using `ida_kernwin.attach_action_to_popup`.)
    • Category: widgets
    • -
    • Summary: create custom listings in IDA
    • +
    • Summary: Create custom listings in IDA
    • View on GitHub
    • -
    • Keywords: - - listing - - actions - + ctxmenu + listing +
    • + +
    • APIs used
        @@ -3219,13 +3745,11 @@ notifications, ...)
      • ida_lines.SCOLOR_VOIDOP
    • -
    • Summary: create custom listings in IDA
    • - +
    -
    @@ -3243,14 +3767,12 @@ IDA, with a custom widget.
  • Category: widgets
  • Summary: An alternative view over the list of functions
  • View on GitHub
  • -
  • Keywords: - chooser - - functions - +
  • + +
  • APIs used
      @@ -3264,53 +3786,56 @@ IDA, with a custom widget.
    • idc.jumpto
  • -
  • Summary: An alternative view over the list of functions
  • -
  • See also:
  • +
    -
    - jump_next_comment: implement a "jump to next comment" action within IDA's disassembly view. + jump_next_comment: Implement a "jump to next comment" action within IDA's disassembly view.
     We want our action not only to find the next line containing a comment,
     but to also place the cursor at the right horizontal position.
    +
    +To find that position, we will have to inspect the text that IDA
    +generates, looking for the start of a comment.
    +However, we won't be looking for a comment "prefix" (e.g., "; "),
    +as that would be too fragile.
    +
    +Instead, we will look for special "tags" that IDA injects into textual
    +lines, and that bear semantic information.
    +
    +Those tags are primarily used for rendering (i.e., switching colors),
    +but can also be very handy for spotting tokens of interest (registers,
    +addresses, comments, prefixes, instruction mnemonics, ...)
     
    • Category: widgets
    • -
    • Summary: implement a "jump to next comment" action within IDA's disassembly view.
    • +
    • Summary: Implement a "jump to next comment" action within IDA's disassembly view.
    • View on GitHub
    • -
    • Keywords: - - idaview - - actions - + idaview +
    • + +
    • Shortcut: + Ctrl+Alt+C +
    • +
    • APIs used
        @@ -3336,25 +3861,21 @@ but to also place the cursor at the right horizontal position.
      • ida_moves.lochist_entry_t
    • -
    • Summary: implement a "jump to next comment" action within IDA's disassembly view.
    • -
    • See also:
    • +
    -
    - save_and_restore_listing_pos: save, and then restore, positions in a listing + save_and_restore_listing_pos: Save, and then restore, positions in a listing
    @@ -3362,20 +3883,28 @@ but to also place the cursor at the right horizontal position. Shows how it is possible re-implement IDA's bookmark capability, using 2 custom actions: one action saves the current location, and the other restores it. + +Note that, contrary to actual bookmarks, this example: + + * remembers only 1 saved position + * doesn't save that position in the IDB (and therefore cannot + be restored if IDA is closed & reopened.)
    • Category: widgets
    • -
    • Summary: save, and then restore, positions in a listing
    • +
    • Summary: Save, and then restore, positions in a listing
    • View on GitHub
    • -
    • Keywords: - - listing - - actions - + listing +
    • + +
    • Shortcuts: + Ctrl+Shift+O + Ctrl+Shift+S +
    • +
    • APIs used
        @@ -3396,25 +3925,21 @@ and the other restores it.
      • ida_moves.lochist_entry_t
    • -
    • Summary: save, and then restore, positions in a listing
    • -
    • See also:
    • +
    -
    - show_and_hide_waitbox: showing, updating & hiding the progress dialog + show_and_hide_waitbox: Showing, updating & hiding the progress dialog
    @@ -3424,13 +3949,13 @@ Using the progress dialog (aka 'wait box') primitives.
    • Category: widgets
    • -
    • Summary: showing, updating & hiding the progress dialog
    • +
    • Summary: Showing, updating & hiding the progress dialog
    • View on GitHub
    • -
    • Keywords: - actions - +
    • + +
    • APIs used
        @@ -3444,18 +3969,16 @@ Using the progress dialog (aka 'wait box') primitives.
      • idautils.Functions
    • -
    • Summary: showing, updating & hiding the progress dialog
    • - +
    -
    - show_selected_strings: retrieve the strings that are selected in the "Strings" window. + show_selected_strings: Retrieve the strings that are selected in the "Strings" window.
    @@ -3463,17 +3986,26 @@ Using the progress dialog (aka 'wait box') primitives. In IDA it's possible to write actions that can be applied even to core (i.e., "standard") widgets. The actions in this example use the action "context" to know what the current selection is. + +This example shows how you can either retrieve string literals data +directly from the chooser (`ida_kernwin.get_chooser_data`), or +by querying the IDB (`ida_bytes.get_strlit_contents`)
    • Category: widgets
    • -
    • Summary: retrieve the strings that are selected in the "Strings" window.
    • +
    • Summary: Retrieve the strings that are selected in the "Strings" window.
    • View on GitHub
    • -
    • Keywords: - actions - + ctxmenu +
    • + +
    • Shortcuts: + Ctrl+Shift+K + Ctrl+Shift+S +
    • +
    • APIs used
        @@ -3494,25 +4026,21 @@ action "context" to know what the current selection is.
      • ida_strlist.string_info_t
    • -
    • Summary: retrieve the strings that are selected in the "Strings" window.
    • -
    • See also:
    • +
    -
    - sync_two_graphs: follow the movements of a disassembly graph, in another. + sync_two_graphs: Follow the movements of a disassembly graph, in another.
    @@ -3520,20 +4048,21 @@ action "context" to know what the current selection is. Since it is possible to be notified of movements that happen take place in a widget, it's possible to "replay" those movements in another. + +In this case, "IDA View-B" (will be opened if necessary) will +show the same contents as "IDA View-A", slightly zoomed out.
    • Category: widgets
    • -
    • Summary: follow the movements of a disassembly graph, in another.
    • +
    • Summary: Follow the movements of a disassembly graph, in another.
    • View on GitHub
    • -
    • Keywords: - graph - - idaview - +
    • + +
    • APIs used
        @@ -3555,25 +4084,21 @@ movements in another.
      • ida_moves.graph_location_info_t
    • -
    • Summary: follow the movements of a disassembly graph, in another.
    • -
    • See also:
    • +
    -
    - wrap_idaview: manipulate IDAView and graph + wrap_idaview: Manipulate IDAView and graph
    @@ -3584,16 +4109,14 @@ view (and thus possibly its graph), in Python.
    -
    - diff --git a/examples/index.js b/examples/index.js index 8721ec7..9f8bd2f 100644 --- a/examples/index.js +++ b/examples/index.js @@ -1,18 +1,15 @@ function on_see_also(see_also) { - if ( is_expanded() ) + var idx = see_also.indexOf("#"); + if ( idx > -1 ) + see_also = see_also.substring(idx+1,see_also.length); + var entry = find_entry_el(document.getElementById('DIV_' + see_also)); + if ( entry ) { - // likely it is, since I clicked on "see also"; - // close it - - expand_toggle(name_expanded); + set_entry_state(entry, true); + entry.scrollIntoView(); } - - expand_toggle(see_also); - - document.getElementById('IMG_' + see_also).scrollIntoView(); - return true; } function find_parent_with_class(el, klass) @@ -56,6 +53,8 @@ function handle_click(e) set_entry_state(entry_el, false); else if ( el.classList.contains("expander") ) set_entry_state(entry_el, true); + else if ( el.classList.contains("ex_link") ) // see also + on_see_also(el.href); else return; e.stopPropagation(); diff --git a/examples/index.md b/examples/index.md index 193732e..9cbc352 100644 --- a/examples/index.md +++ b/examples/index.md @@ -6,7 +6,7 @@ #### dump_func_info
    - dump (some) information about the current function. + Dump (some) information about the current function.
    @@ -20,8 +20,6 @@ analysis Dump some of the most interesting bits of information about the function we are currently looking at. -#### Keywords - #### Uses * ida_funcs.FUNC_FRAME * ida_funcs.FUNC_LUMINA @@ -31,8 +29,6 @@ the function we are currently looking at. * ida_funcs.is_func_tail * ida_kernwin.get_screen_ea -#### See also -
    @@ -41,7 +37,7 @@ the function we are currently looking at. #### actions
    - custom actions, with icons & tooltips + Custom actions, with icons & tooltips
    @@ -55,8 +51,19 @@ core How to create user actions, that once created can be inserted in menus, toolbars, context menus, ... +Those actions, when triggered, will be passed a 'context' +that contains some of the most frequently needed bits of +information. + +In addition, custom actions can determine when they want +to be available (through their +`ida_kernwin.action_handler_t.update` callback) + +#### Shortcut +Ctrl+F12 + #### Keywords -actions +actions ctxmenu UI_Hooks #### Uses * ida_kernwin.AST_DISABLE_FOR_WIDGET @@ -83,7 +90,7 @@ actions #### add_hotkey
    - triggering bits of code by pressing a shortcut + Triggering bits of code by pressing a shortcut
    @@ -98,6 +105,11 @@ core alternative to `ida_kernwin.register_action` (though it does use the same mechanism under the hood.) +It's particularly useful during prototyping, but note that the +actions that are created cannot be inserted in menus, toolbars +or cannot provide a custom `ida_kernwin.action_handler_t.update` +callback. + #### Keywords actions @@ -114,7 +126,7 @@ actions #### add_idc_hotkey
    - triggering bits of code by pressing a shortcut (older version) + Triggering bits of code by pressing a shortcut (older version)
    @@ -146,7 +158,7 @@ actions #### auto_instantiate_widget_plugin
    - better integrating custom widgets in the desktop layout + Better integrating custom widgets in the desktop layout
    @@ -160,8 +172,24 @@ core This is an example demonstrating how one can create widgets from a plugin, and have them re-created automatically at IDA startup-time or at desktop load-time. +This example should be placed in the 'plugins' directory of the +IDA installation, for it to work. + +There are 2 ways to use this example: +1) reloading an IDB, where the widget was opened + - open the widget ('View > Open subview > ...') + - save this IDB, and close IDA + - restart IDA with this IDB + => the widget will be visible + +2) reloading a desktop, where the widget was opened + - open the widget ('View > Open subview > ...') + - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto' + - start another IDA instance with some IDB, and load that desktop + => the widget will be visible + #### Keywords -desktop +desktop plugin UI_Hooks #### Uses * ida_idaapi.plugin_t @@ -176,15 +204,13 @@ desktop * ida_kernwin.simplecustviewer_t * ida_kernwin.simplecustviewer_t.Create -#### See also -
    #### bin_search
    - showcasing `ida_bytes.bin_search` + Showcasing `ida_bytes.bin_search`
    @@ -198,7 +224,17 @@ core IDAPython's ida_bytes.bin_search function is pretty powerful, but can be tough to figure out at first. This example introduces -#### Keywords + * `ida_bytes.bin_search`, and + * `ida_bytes.parse_binpat_str` + +in order to implement a simple replacement for the +'Search > Sequence of bytes...' dialog, that lets users +search for sequences of bytes that compose string literals +in the binary file (either in the default 1-byte-per-char +encoding, or as UTF-16.) + +#### Shortcut +Ctrl+Shift+S #### Uses * ida_bytes.BIN_SEARCH_FORWARD @@ -224,7 +260,58 @@ but can be tough to figure out at first. This example introduces * ida_nalt.BPU_2B * ida_nalt.get_default_encoding_idx +
    + +
    + +#### colorize_disassembly_on_the_fly +
    + An easy-to-use way to colorize lines + +
    + +#### Source code +core/colorize_disassembly_on_the_fly.py + +#### Category +core + +#### Description +This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info` +feature, to provide a quick & easy way to colorize disassembly +lines. + +Contrary to @colorize_disassembly, the coloring is not persisted in +the database, and will therefore be lost after the session. + +By triggering the action multiple times, the user can "carousel" +across 4 predefined colors (and return to the "no color" state.) + +#### Shortcut +! + +#### Keywords +coloring UI_Hooks + +#### Uses +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.CK_EXTRA5 +* ida_kernwin.CK_EXTRA6 +* ida_kernwin.CK_EXTRA7 +* ida_kernwin.CK_EXTRA8 +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.get_current_viewer +* ida_kernwin.get_custom_viewer_location +* ida_kernwin.get_custom_viewer_place_xcoord +* ida_kernwin.get_widget_title +* ida_kernwin.line_rendering_output_entry_t +* ida_kernwin.register_action +* ida_moves.lochist_entry_t + #### See also +* [colorize_disassembly](#colorize_disassembly)
    @@ -232,7 +319,7 @@ but can be tough to figure out at first. This example introduces #### create_structure_programmatically
    - programmatically create & populate a structure + Programmatically create & populate a structure
    @@ -246,8 +333,6 @@ core Usage of the API to create & populate a structure with members of different types. -#### Keywords - #### Uses * ida_bytes.FF_BYTE * ida_bytes.FF_DATA @@ -273,7 +358,8 @@ members of different types. * idc.del_struc * idc.set_member_type -#### See also +#### Author +Gergely Erdelyi (gergely.erdelyi@d-dome.net)
    @@ -281,7 +367,7 @@ members of different types. #### custom_cli
    - a custom command-line interpreter + A custom command-line interpreter
    @@ -294,7 +380,9 @@ core #### Description Illustrates how one can add command-line interpreters to IDA -#### Keywords +This custom interpreter doesn't actually run any code; it's +there as a 'getting started'. +It provides an example tab completion support. #### Uses * ida_idaapi.NW_CLOSEIDB @@ -304,15 +392,13 @@ Illustrates how one can add command-line interpreters to IDA * ida_idaapi.notify_when * ida_kernwin.cli_t -#### See also -
    #### custom_data_types_and_formats
    - using custom data types & printers + Using custom data types & printers
    @@ -326,7 +412,10 @@ core IDA can be extended to support certain data types that it does not know about out-of-the-box. -#### Keywords +A 'custom data type' provide information about the type & +size of a piece of data, while a 'custom data format' is in +charge of formatting that data (there can be more than +one format for a specific 'custom data type'.) #### Uses * ida_bytes.data_format_t @@ -350,15 +439,13 @@ does not know about out-of-the-box. * ida_netnode.netnode * ida_struct.is_member_id -#### See also -
    #### dump_extra_comments
    - retrieve extra comments + Retrieve extra comments
    @@ -372,7 +459,14 @@ core Use the `ida_lines.get_extra_cmt` API to retrieve anterior and posterior extra comments. +This script registers two actions, that can be used to dump +the previous and next extra comments. + +#### Shortcuts +Ctrl+Shift+Y Ctrl+Shift+Z + #### Keywords +ctxmenu #### Uses * ida_kernwin.AST_DISABLE_FOR_WIDGET @@ -390,15 +484,13 @@ and posterior extra comments. * ida_lines.get_extra_cmt * ida_view -#### See also -
    #### dump_flowchart
    - dump function flowchart + Dump function flowchart
    @@ -411,7 +503,9 @@ core #### Description Dumps the current function's flowchart, using 2 methods: -#### Keywords + * the low-level `ida_gdl.qflow_chart_t` type + * the somewhat higher-level, and slightly more pythonic + `ida_gdl.FlowChart` type. #### Uses * ida_funcs.get_func @@ -419,15 +513,13 @@ Dumps the current function's flowchart, using 2 methods: * ida_gdl.qflow_chart_t * ida_kernwin.get_screen_ea -#### See also -
    #### dump_selection
    - retrieve & dump current selection + Retrieve & dump current selection
    @@ -443,7 +535,14 @@ widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as two "cursors", and from there retrieve (in fact, generate) the corresponding text. -#### Keywords +After running this script: + + * select some text in one of the listing widgets (i.e., + "IDA View-*", "Enums", "Structures", "Pseudocode-*") + * press Ctrl+Shift+S to dump the selection + +#### Shortcut +Ctrl+Shift+S #### Uses * ida_kernwin.ACF_HAS_SELECTION @@ -462,15 +561,13 @@ the corresponding text. * ida_kernwin.unregister_action * ida_lines.tag_remove -#### See also -
    #### extend_idc
    - add functions to the IDC runtime from IDAPython + Add functions to the IDC runtime from IDAPython
    @@ -484,21 +581,25 @@ core You can add IDC functions to IDA, whose "body" consists of IDAPython statements! -#### Keywords +We'll register a 'pow' function, available to all IDC code, +that when invoked will call back into IDAPython, and execute +the provided function body. + +After running this script, try switching to the IDC interpreter +(using the button on the lower-left corner of IDA) and executing +`pow(3, 7)` #### Uses * ida_expr.VT_LONG * ida_expr.add_idc_func -#### See also -
    #### idapythonrc
    - code to be run right after IDAPython initialization + Code to be run right after IDAPython initialization
    @@ -511,11 +612,11 @@ core #### Description The `idapythonrc.py` file: -#### Keywords + * %APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py (on Windows) + * ~/.idapro/idapythonrc.py (on Linux & Mac) -#### Uses - -#### See also +can contain any IDAPython code that will be run as soon as +IDAPython is done successfully initializing.
    @@ -523,7 +624,7 @@ The `idapythonrc.py` file: #### install_user_defined_prefix
    - inserting information into disassembly prefixes + Inserting information into disassembly prefixes
    @@ -540,6 +641,7 @@ information (e.g., '.text:08047718'), but it is possible to `ida_lines.user_defined_prefix_t` helper type. #### Keywords +plugin #### Uses * ida_idaapi.PLUGIN_KEEP @@ -547,7 +649,58 @@ information (e.g., '.text:08047718'), but it is possible to * ida_lines.SCOLOR_INV * ida_lines.user_defined_prefix_t -#### See also +
    + +
    + +#### list_function_items +
    + Showcases (a few of) the iterators available on a function + +
    + +#### Source code +core/list_function_items.py + +#### Category +core + +#### Description +This demonstrates how to use some of the iterators available on the func_t type. + +This example will focus on: + + * `func_t[.__iter__]`: the default iterator; iterates on instructions + * `func_t.data_items`: iterate on data items contained within a function + * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing + the start of an instruction, or a data item. + * `func_t.addresses`: iterate on all addresses within function (code + and data, beginning of an item or not) + +Type `help(ida_funcs.func_t)` for a full list of iterators. + +In addition, one can use: + + * `func_tail_iterator_t`: iterate on all the chunks (including + the main one) of the function + * `func_parent_iterator_t`: iterate on all the parent functions, + that include this chunk + +#### Keywords +funcs iterator + +#### Uses +* ida_bytes.get_flags +* ida_bytes.is_code +* ida_bytes.is_data +* ida_bytes.is_tail +* ida_bytes.is_unknown +* ida_funcs.func_tail_iterator_t +* ida_funcs.get_fchunk +* ida_funcs.get_func +* ida_funcs.get_func_name +* ida_kernwin.get_screen_ea +* ida_ua.print_insn_mnem
    @@ -555,7 +708,7 @@ information (e.g., '.text:08047718'), but it is possible to #### list_imports
    - enumerate file imports + Enumerate file imports
    @@ -568,22 +721,18 @@ core #### Description Using the API to enumerate file imports. -#### Keywords - #### Uses * ida_nalt.enum_import_names * ida_nalt.get_import_module_name * ida_nalt.get_import_module_qty -#### See also -
    #### list_patched_bytes
    - enumerate patched bytes + Enumerate patched bytes
    @@ -597,21 +746,17 @@ core Using the API to iterate over all the places in the file, that were patched using IDA. -#### Keywords - #### Uses * ida_bytes.visit_patched_bytes * ida_idaapi.BADADDR -#### See also -
    #### list_problems
    - enumerate problems + Enumerate problems
    @@ -625,8 +770,6 @@ core Using the API to list all problem[atic situation]s that IDA encountered during analysis. -#### Keywords - #### Uses * ida_ida.inf_get_min_ea * ida_idaapi.BADADDR @@ -649,15 +792,13 @@ encountered during analysis. * ida_problems.get_problem * ida_problems.get_problem_name -#### See also -
    #### list_segment_functions
    - list all functions (and xrefs) in segment + List all functions (and xrefs) in segment
    @@ -678,11 +819,9 @@ xrefs * ida_funcs.get_func * ida_funcs.get_func_name * ida_funcs.get_next_func -* ida_idaapi.BADADDR * ida_kernwin.get_screen_ea * ida_segment.getseg -* ida_xref.get_first_cref_to -* ida_xref.get_next_cref_to +* ida_xref.xrefblk_t #### See also * [list_segment_functions_using_idautils](#list_segment_functions_using_idautils) @@ -693,7 +832,7 @@ xrefs #### list_segment_functions_using_idautils
    - list all functions (and xrefs) in segment + List all functions (and xrefs) in segment
    @@ -707,6 +846,9 @@ core List all the functions in the current segment, as well as all the cross-references to them. +Contrary to @list_segment_functions, this uses the somewhat +higher-level `idautils` module. + #### Keywords xrefs @@ -727,7 +869,7 @@ xrefs #### list_stkvar_xrefs
    - list all xrefs to a function stack variable + List all xrefs to a function stack variable
    @@ -742,6 +884,9 @@ Contrary to (in-memory) data & code xrefs, retrieving stack variables xrefs requires a bit more work than just using ida_xref's first_to(), next_to() (or higher level utilities such as idautils.XrefsTo) +#### Shortcut +Ctrl+Shift+F7 + #### Keywords xrefs @@ -750,7 +895,6 @@ xrefs * ida_bytes.is_stkvar * ida_frame.calc_stkvar_struc_offset * ida_frame.get_frame -* ida_funcs.func_item_iterator_t * ida_funcs.get_func * ida_ida.UA_MAXOP * ida_kernwin.AST_DISABLE_FOR_WIDGET @@ -767,15 +911,13 @@ xrefs * ida_ua.decode_insn * ida_ua.insn_t -#### See also -
    #### list_strings
    - retrieve the strings that are present in the IDB + Retrieve the strings that are present in the IDB
    @@ -790,8 +932,6 @@ This uses `idautils.Strings` to iterate over the string literals that are present in the IDB. Contrary to @show_selected_strings, this will not require that the "Strings" window is opened & available. -#### Keywords - #### Uses * idautils.Strings @@ -804,7 +944,7 @@ this will not require that the "Strings" window is opened & available. #### produce_c_file
    - decompile entire file + Decompile entire file
    @@ -815,11 +955,19 @@ this will not require that the "Strings" window is opened & available. core #### Description -automate IDA to perform auto-analysis on a file and, +Automate IDA to perform auto-analysis on a file and, once that is done, produce a .c file containing the decompilation of all the functions in that file. -#### Keywords +Run like so: + + ida -A "-S...path/to/produce_c_file.py" + +where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) #### Uses * ida_auto.auto_wait @@ -831,15 +979,13 @@ decompilation of all the functions in that file. * ida_loader.get_path * ida_pro.qexit -#### See also -
    #### produce_lst_file
    - produce listing + Produce listing
    @@ -850,10 +996,18 @@ decompilation of all the functions in that file. core #### Description -automate IDA to perform auto-analysis on a file and, +Automate IDA to perform auto-analysis on a file and, once that is done, produce a .lst file with the disassembly. -#### Keywords +Run like so: + + ida -A "-S...path/to/produce_lst_file.py" + +where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) #### Uses * ida_auto.auto_wait @@ -866,15 +1020,13 @@ once that is done, produce a .lst file with the disassembly. * ida_loader.get_path * ida_pro.qexit -#### See also -
    #### register_timer
    - using timers for delayed execution + Using timers for delayed execution
    @@ -887,20 +1039,16 @@ core #### Description Register (possibly repeating) timers. -#### Keywords - #### Uses * ida_kernwin.register_timer -#### See also -
    #### trigger_actions_programmatically
    - execute existing actions programmatically + Execute existing actions programmatically
    @@ -914,6 +1062,13 @@ core It's possible to invoke any action programmatically, by using either of those two: + * ida_kernwin.execute_ui_requests() + * ida_kernwin.process_ui_action() + +Ideally, this script should be run through the "File > Script file..." +menu, so as to keep focus on "IDA View-A" and have the +'ProcessUiActions' part work as intended. + #### Keywords actions @@ -923,8 +1078,6 @@ actions * ida_kernwin.msg * ida_kernwin.process_ui_action -#### See also -
    @@ -933,7 +1086,7 @@ actions #### automatic_steps
    - programmatically drive a debugging session + Programmatically drive a debugging session
    @@ -949,6 +1102,7 @@ instructions. Each instruction is disassembled after execution. #### Keywords +DBG_Hooks #### Uses * ida_dbg.DBG_Hooks @@ -962,15 +1116,13 @@ execution. * ida_lines.generate_disasm_line * ida_lines.tag_remove -#### See also -
    #### dbg_trace
    - using the low-level tracing hook + Using the low-level tracing hook
    @@ -984,7 +1136,10 @@ debugging This script demonstrates using the low-level tracing hook (ida_dbg.DBG_Hooks.dbg_trace). It can be run like so: + ida[t].exe -B -Sdbg_trace.py -Ltrace.log file.exe + #### Keywords +DBG_Hooks #### Uses * GENDSM_FORCE_CODE @@ -1021,7 +1176,53 @@ This script demonstrates using the low-level tracing hook * ida_ua.insn_t * idc.ARGV -#### See also +
    + +
    + +#### print_call_stack +
    + Print call stack (on Linux) + +
    + +#### Source code +debugging/misc/print_call_stack.py + +#### Category +debugging + +#### Description + Print the return addresses from the call stack at a breakpoint. + (and print also the module and the debug name from debugger) + +To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint where you want to see the call stack + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Shift+C at the breakpoint + +#### Shortcut +Shift+C + +#### Uses +* ida_dbg.collect_stack_trace +* ida_dbg.get_current_thread +* ida_dbg.get_module_info +* ida_idd.call_stack_t +* ida_idd.modinfo_t +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.action_desc_t +* ida_kernwin.register_action +* ida_name.GNCN_NOCOLOR +* ida_name.GNCN_NOLABEL +* ida_name.GNCN_NOSEG +* ida_name.GNCN_PREFDBG +* ida_name.get_nice_colored_name
    @@ -1029,7 +1230,7 @@ This script demonstrates using the low-level tracing hook #### registers_context_menu
    - adding actions to the "registers" widget(s) + Adding actions to the "registers" widget(s)
    @@ -1043,7 +1244,11 @@ debugging It's possible to add actions to the context menu of pretty much all widgets in IDA. +This example shows how to do just that for +registers-displaying widgets (e.g., "General registers") + #### Keywords +ctxmenu UI_Hooks #### Uses * ida_dbg.get_dbg_reg_info @@ -1063,15 +1268,13 @@ pretty much all widgets in IDA. * ida_ua.dt_qword * ida_ua.dt_word -#### See also -
    #### show_debug_names
    - retrieving & dumping debuggee symbols + Retrieving & dumping debuggee symbols
    @@ -1085,8 +1288,6 @@ debugging Queries the debugger (possibly remotely) for the list of symbols that the process being debugged, provides. -#### Keywords - #### Uses * ida_dbg.get_process_state * ida_dbg.is_debugger_on @@ -1094,50 +1295,13 @@ symbols that the process being debugged, provides. * ida_ida.inf_get_min_ea * ida_name.get_debug_names -#### See also - -
    - -
    - -#### simple_appcall_common -
    - - -
    - -#### Source code -debugging/appcall/simple_appcall_common.py - -#### Category -debugging - -#### Description - - -#### Keywords - -#### Uses -* ida_dbg.DBG_Hooks -* ida_dbg.run_to -* ida_idaapi.BADADDR -* ida_idd.Appcall -* ida_idd.Appcall.byref -* ida_idd.Appcall.int64 -* ida_kernwin.get_screen_ea -* ida_name.get_name_ea -* ida_name.set_name -* ida_typeinf.apply_cdecl - -#### See also -
    #### simple_appcall_linux
    - executing code into the application being debugged (on Linux) + Executing code into the application being debugged (on Linux)
    @@ -1151,11 +1315,34 @@ debugging Using the `ida_idd.Appcall` utility to execute code in the process being debugged. -#### Keywords +This example will run the test program and stop wherever +the cursor currently is, and then perform an appcall to +execute the `ref4` and `ref8` functions. + +To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * select the 'linux debugger' (either local, or remote) + * run this script + +Note: the real body of code is in `simple_appcall_common.py`. + +#### Imports +* simple_appcall_common #### Uses - -#### See also +* ida_dbg.DBG_Hooks +* ida_dbg.run_to +* ida_idaapi.BADADDR +* ida_idd.Appcall +* ida_idd.Appcall.byref +* ida_idd.Appcall.int64 +* ida_kernwin.get_screen_ea +* ida_name.get_name_ea +* ida_name.set_name +* ida_typeinf.apply_cdecl
    @@ -1163,7 +1350,7 @@ the process being debugged. #### simple_appcall_win
    - executing code into the application being debugged (on Windows) + Executing code into the application being debugged (on Windows)
    @@ -1177,12 +1364,35 @@ debugging Using the `ida_idd.Appcall` utility to execute code in the process being debugged. -#### Keywords +This example will run the test program and stop wherever +the cursor currently is, and then perform an appcall to +execute the `ref4` and `ref8` functions. + +To use this example: + + * run `ida64` on test program `simple_appcall_win64.exe`, or + `ida` on test program `simple_appcall_win32.exe`, and wait for + auto-analysis to finish + * select the 'windows debugger' (either local, or remote) + * run this script + +Note: the real body of code is in `simple_appcall_common.py`. + +#### Imports +* simple_appcall_common #### Uses +* ida_dbg.DBG_Hooks +* ida_dbg.run_to * ida_ida.inf_is_64bit - -#### See also +* ida_idaapi.BADADDR +* ida_idd.Appcall +* ida_idd.Appcall.byref +* ida_idd.Appcall.int64 +* ida_kernwin.get_screen_ea +* ida_name.get_name_ea +* ida_name.set_name +* ida_typeinf.apply_cdecl
    @@ -1192,7 +1402,7 @@ the process being debugged. #### colorize_disassembly
    - change background colours + Change background colours
    @@ -1206,9 +1416,12 @@ disassembly This illustrates the setting/retrieval of background colours using the IDC wrappers +In order to do so, we'll be assigning colors to specific ranges +(item, function, or segment). Those will be persisted in the +database. + #### Keywords -coloring -idc +coloring idc #### Uses * idc.CIC_FUNC @@ -1219,6 +1432,7 @@ idc * idc.set_color #### See also +* [colorize_disassembly_on_the_fly](#colorize_disassembly_on_the_fly)
    @@ -1228,7 +1442,7 @@ idc #### colorize_pseudocode_lines
    - interactively color certain pseudocode lines + Interactively color certain pseudocode lines
    @@ -1243,8 +1457,15 @@ Provides an action that can be used to dynamically alter the lines background rendering for pseudocode listings (as opposed to using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`) +After running this script, pressing 'M' on a line in a +"Pseudocode-?" widget, will cause that line to be rendered +with a special background color. + +#### Shortcut +M + #### Keywords -colors +colors UI_Hooks #### Uses * ida_hexrays.get_widget_vdui @@ -1261,7 +1482,42 @@ colors * ida_kernwin.register_action * ida_moves.lochist_entry_t +
    + +
    + +#### curpos_details +
    + A focus on the 'curpos' hook, printing additional details about user input + +
    + +#### Source code +hexrays/curpos_details.py + +#### Category +hexrays + +#### Description +Shows how user input information can be retrieved during +processing of a notification triggered by that input + +#### Keywords +Hexrays_Hooks + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_kernwin.get_user_input_event +* ida_kernwin.iek_key_press +* ida_kernwin.iek_key_release +* ida_kernwin.iek_mouse_button_press +* ida_kernwin.iek_mouse_button_release +* ida_kernwin.iek_mouse_wheel +* ida_kernwin.iek_shortcut +* ida_kernwin.input_event_t + #### See also +* [vds_hooks](#vds_hooks)
    @@ -1269,7 +1525,7 @@ colors #### decompile_entry_points
    - automatic decompilation of functions + Automatic decompilation of functions
    @@ -1284,7 +1540,8 @@ Attempts to load a decompiler plugin corresponding to the current architecture (and address size) right after auto-analysis is performed, and then tries to decompile the function at the first entrypoint. -#### Keywords +It is particularly suited for use with the '-S' flag, for example: +idat -Ldecompile.log -Sdecompile_entry_points.py -c file #### Uses * ida_auto.auto_wait @@ -1305,15 +1562,13 @@ and then tries to decompile the function at the first entrypoint. * ida_pro.qexit * idc.get_idb_path -#### See also -
    #### vds1
    - decompile & print current function. + Decompile & print current function.
    @@ -1324,9 +1579,7 @@ and then tries to decompile the function at the first entrypoint. hexrays #### Description - - -#### Keywords +Decompile & print current function. #### Uses * ida_funcs.get_func @@ -1336,15 +1589,13 @@ hexrays * ida_kernwin.get_screen_ea * ida_lines.tag_remove -#### See also -
    #### vds10
    - a custom microcode instruction optimization rule + A custom microcode instruction optimization rule
    @@ -1358,7 +1609,16 @@ hexrays Installs a custom microcode instruction optimization rule, to transform: + call !DbgRaiseAssertionFailure .0 + +into + + call !DbgRaiseAssertionFailure .0 + +To see this plugin in action please use arm64_brk.i64 + #### Keywords +plugin #### Uses * ida_bytes.get_cmt @@ -1371,15 +1631,13 @@ to transform: * ida_typeinf.STI_PCCHAR * ida_typeinf.tinfo_t.get_stock -#### See also -
    #### vds11
    - a custom microcode block optimization rule (resolve `goto` chains) + A custom microcode block optimization rule (resolve `goto` chains)
    @@ -1393,7 +1651,20 @@ hexrays Installs a custom microcode block optimization rule, to transform: + goto L1 + ... + L1: + goto L2 + +into + + goto L2 + +In other words we fix a goto target if it points to a chain of gotos. +This improves the decompiler output in some cases. + #### Keywords +plugin #### Uses * ida_hexrays.getf_reginsn @@ -1404,15 +1675,13 @@ to transform: * ida_idaapi.PLUGIN_KEEP * ida_idaapi.plugin_t -#### See also -
    #### vds12
    - list instruction registers + List instruction registers
    @@ -1426,8 +1695,6 @@ hexrays Shows a list of direct references to a register from the current instruction. -#### Keywords - #### Uses * ida_bytes.get_flags * ida_bytes.is_code @@ -1459,15 +1726,13 @@ current instruction. * ida_lines.generate_disasm_line * ida_pro.eavec_t -#### See also -
    #### vds13
    - generates microcode for selection + Generates microcode for selection
    @@ -1480,8 +1745,6 @@ hexrays #### Description Generates microcode for selection and dumps it to the output window. -#### Keywords - #### Uses * ida_bytes.get_flags * ida_bytes.is_code @@ -1495,15 +1758,13 @@ Generates microcode for selection and dumps it to the output window. * ida_kernwin.warning * ida_range.range_t -#### See also -
    #### vds17
    - using the "Select offsets" widget + Using the "Select offsets" widget
    @@ -1517,7 +1778,16 @@ hexrays Registers an action opens the "Select offsets" widget (select_udt_by_offset() call). +This effectively repeats the functionality already available +through Alt+Y. + +Place cursor on the union field and press Shift+T + +#### Shortcut +Shift+T + #### Keywords +plugin #### Uses * ida_hexrays.USE_KEYBOARD @@ -1551,15 +1821,13 @@ Registers an action opens the "Select offsets" widget * ida_typeinf.print_tinfo * ida_typeinf.remove_pointer -#### See also -
    #### vds19
    - a custom microcode instruction optimization rule (`x | ~x => -1`) + A custom microcode instruction optimization rule (`x | ~x => -1`)
    @@ -1573,7 +1841,16 @@ hexrays Installs a custom microcode instruction optimization rule, to transform: + x | ~x + +into + + -1 + +To see this plugin in action please use be_ornot_be.idb + #### Keywords +plugin #### Uses * ida_hexrays.init_hexrays_plugin @@ -1587,15 +1864,13 @@ to transform: * ida_idaapi.PLUGIN_KEEP * ida_idaapi.plugin_t -#### See also -
    #### vds21
    - dynamically provide a custom call type + Dynamically provide a custom call type
    @@ -1608,30 +1883,52 @@ hexrays #### Description This plugin can greatly improve decompilation of indirect calls: + call [eax+4] + +For them, the decompiler has to guess the prototype of the called function. +This has to be done at a very early phase of decompilation because +the function prototype influences the data flow analysis. On the other +hand, we do not have global data flow analysis results yet because +we haven't analyzed all calls in the function. It is a chicked-and-egg +problem. + +The decompiler uses various techniques to guess the called function +prototype. While it works very well, it may fail in some cases. + +To fix, the user can specify the call prototype manually, using +"Edit, Operand types, Set operand type" at the call instruction. + +This plugin illustrates another approach to the problem: +if you happen to be able to calculate the call prototypes dynamically, +this is how to inform the decompiler about them. + #### Keywords +Hexrays_Hooks plugin #### Uses * ida_hexrays.Hexrays_Hooks * ida_hexrays.init_hexrays_plugin * ida_hexrays.m_call +* ida_hexrays.mcallinfo_t * ida_idaapi.PLUGIN_HIDE * ida_idaapi.PLUGIN_KEEP * ida_idaapi.plugin_t * ida_kernwin.msg * ida_kernwin.warning * ida_nalt.get_op_tinfo +* ida_typeinf.BT_INT +* ida_typeinf.CM_CC_STDCALL +* ida_typeinf.CM_N32_F48 * ida_typeinf.parse_decl * ida_typeinf.tinfo_t -#### See also -
    #### vds3
    - invert if/else blocks + Invert if/else blocks
    @@ -1645,7 +1942,36 @@ hexrays Registers an action that can be used to invert the `if` and `else` blocks of a `ida_hexrays.cif_t`. +For example, a statement like + + if ( cond ) + { + statements1; + } + else + { + statements2; + } + +will be displayed as + + if ( !cond ) + { + statements2; + } + else + { + statements1; + } + +The modifications are persistent: the user can quit & restart +IDA, and the changes will be present. + +#### Shortcut +I + #### Keywords +ctxmenu Hexrays_Hooks IDP_Hooks plugin #### Uses * ida_hexrays.CMAT_FINAL @@ -1665,6 +1991,7 @@ and `else` blocks of a `ida_hexrays.cif_t`. * ida_idaapi.PLUGIN_HIDE * ida_idaapi.PLUGIN_KEEP * ida_idaapi.plugin_t +* ida_idp.IDP_Hooks * ida_kernwin.AST_DISABLE_FOR_WIDGET * ida_kernwin.AST_ENABLE_FOR_WIDGET * ida_kernwin.BWN_PSEUDOCODE @@ -1674,7 +2001,8 @@ and `else` blocks of a `ida_hexrays.cif_t`. * ida_kernwin.register_action * ida_netnode.netnode -#### See also +#### Author +EiNSTeiN_ (einstein@g3nius.org)
    @@ -1682,7 +2010,7 @@ and `else` blocks of a `ida_hexrays.cif_t`. #### vds4
    - dump user-defined information + Dump user-defined information
    @@ -1696,12 +2024,18 @@ hexrays Prints user-defined information to the "Output" window. Namely: -#### Keywords + * user defined label names + * user defined indented comments + * user defined number formats + * user defined local variable names, types, comments + +This script loads information from the database without decompiling anything. #### Uses * ida_bytes.get_radix +* ida_funcs.get_func * ida_hexrays.CIT_COLLAPSED -* ida_hexrays.decompile +* ida_hexrays.NF_NEGATE * ida_hexrays.init_hexrays_plugin * ida_hexrays.lvar_uservec_t * ida_hexrays.restore_user_cmts @@ -1715,7 +2049,8 @@ Namely: * ida_hexrays.user_numforms_free * ida_kernwin.get_screen_ea -#### See also +#### Author +EiNSTeiN_ (einstein@g3nius.org)
    @@ -1723,7 +2058,7 @@ Namely: #### vds5
    - show ctree graph + Show ctree graph
    @@ -1737,7 +2072,17 @@ hexrays Registers an action that can be used to show the graph of the ctree. The current item will be highlighted in the graph. +The command shortcut is `Ctrl+Shift+G`, and is also added +to the context menu. + +To display the graph, we produce a .gdl file, and +request that ida displays that using `ida_gdl.display_gdl`. + +#### Shortcut +Ctrl+Shift+G + #### Keywords +ctxmenu Hexrays_Hooks plugin #### Uses * ida_gdl.display_gdl @@ -1771,15 +2116,13 @@ The current item will be highlighted in the graph. * ida_lines.tag_remove * ida_pro.str2user -#### See also -
    #### vds6
    - superficially modify the decompilation output + Superficially modify the decompilation output
    @@ -1790,10 +2133,13 @@ The current item will be highlighted in the graph. hexrays #### Description -modifies the decompilation output in a superficial manner, +Modifies the decompilation output in a superficial manner, by removing some white spaces +Note: this is rather crude, not quite "pythonic" code. + #### Keywords +Hexrays_Hooks plugin #### Uses * ida_hexrays.Hexrays_Hooks @@ -1804,15 +2150,13 @@ by removing some white spaces * ida_lines.tag_advance * ida_lines.tag_skipcodes -#### See also -
    #### vds7
    - iterate a cblock_t object + Iterate a cblock_t object
    @@ -1827,6 +2171,7 @@ Using a `ida_hexrays.ctree_visitor_t`, search for `ida_hexrays.cit_block` instances and dump them. #### Keywords +Hexrays_Hooks #### Uses * ida_hexrays.CMAT_BUILT @@ -1836,7 +2181,8 @@ Using a `ida_hexrays.ctree_visitor_t`, search for * ida_hexrays.ctree_visitor_t * ida_hexrays.init_hexrays_plugin -#### See also +#### Author +EiNSTeiN_ (einstein@g3nius.org)
    @@ -1844,7 +2190,7 @@ Using a `ida_hexrays.ctree_visitor_t`, search for #### vds8
    - using `ida_hexrays.udc_filter_t` + Using `ida_hexrays.udc_filter_t`
    @@ -1859,7 +2205,16 @@ Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile `svc 0x900001` and `svc 0x9000F8` as function calls to `svc_exit()` and `svc_exit_group()` respectively. +You will need to have an ARM + Linux IDB for this script to be usable + +In addition to having a shortcut, the action will be present +in the context menu. + +#### Shortcut +Ctrl+Shift+U + #### Keywords +ctxmenu UI_Hooks #### Uses * ida_allins.ARM_svc @@ -1877,15 +2232,13 @@ Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile * ida_kernwin.get_widget_type * ida_kernwin.register_action -#### See also -
    #### vds_create_hint
    - decompiler hints + Decompiler hints
    @@ -1899,7 +2252,16 @@ hexrays Handle `ida_hexrays.hxe_create_hint` notification using hooks, to return our own. +If the object under the cursor is: + +* a function call, prefix the original decompiler hint with `==> ` +* a local variable declaration, replace the hint with our own in + the form of `!{varname}` (where `{varname}` is replaced with the + variable name) +* an `if` statement, replace the hint with our own, saying "condition" + #### Keywords +Hexrays_Hooks #### Uses * ida_hexrays.Hexrays_Hooks @@ -1909,15 +2271,13 @@ to return our own. * ida_hexrays.cit_if * ida_hexrays.cot_call -#### See also -
    #### vds_hooks
    - various decompiler hooks + Various decompiler hooks
    @@ -1930,12 +2290,24 @@ hexrays #### Description Shows how to hook to many notifications sent by the decompiler. +This plugin doesn't really accomplish anything: it just prints +the parameters. + +The list of notifications handled below should be exhaustive, +and is there to hint at what is possible to accomplish by +subclassing `ida_hexrays.Hexrays_Hooks` + #### Keywords +Hexrays_Hooks #### Uses * ida_hexrays.Hexrays_Hooks +* ida_hexrays.cfunc_t +* ida_hexrays.lvar_t +* ida_hexrays.vdui_t #### See also +* [curpos_details](#curpos_details)
    @@ -1943,7 +2315,7 @@ Shows how to hook to many notifications sent by the decompiler. #### vds_modify_user_lvars
    - modifying local variables + Modifying local variables
    @@ -1957,8 +2329,6 @@ hexrays Use a `ida_hexrays.user_lvar_modifier_t` to modify names, comments and/or types of local variables. -#### Keywords - #### Uses * ida_hexrays.modify_user_lvars * ida_hexrays.user_lvar_modifier_t @@ -1966,15 +2336,13 @@ comments and/or types of local variables. * ida_typeinf.tinfo_t * idc.here -#### See also -
    #### vds_xrefs
    - show decompiler xrefs + Show decompiler xrefs
    @@ -1988,7 +2356,14 @@ hexrays Show decompiler-style Xref when the `Ctrl+X` key is pressed in the Decompiler window. +* supports any global name: functions, strings, integers, ... +* supports structure member. + +#### Shortcut +Ctrl+X + #### Keywords +ctxmenu Hexrays_Hooks #### Uses * ida_funcs.get_func_name @@ -2023,7 +2398,8 @@ pressed in the Decompiler window. * idautils.Functions * idautils.XrefsTo -#### See also +#### Author +EiNSTeiN_ (einstein@g3nius.org)
    @@ -2031,9 +2407,35 @@ pressed in the Decompiler window. ## Category: idbhooks +#### log_idb_events +
    + Logging IDB events + +
    + +#### Source code +idbhooks/log_idb_events.py + +#### Category +idbhooks + +#### Description +These hooks will be notified about IDB events, and +dump their information to the "Output" window + +#### Keywords +IDB_Hooks + +#### Uses +* ida_idp.IDB_Hooks + +
    + +
    + #### operand_changed
    - notify the user when an instruction operand changes + Notify the user when an instruction operand changes
    @@ -2048,6 +2450,7 @@ Show notifications whenever the user changes an instruction's operand, or a data item. #### Keywords +IDB_Hooks #### Uses * ida_bytes.ALOPT_IGNCLT @@ -2073,8 +2476,6 @@ an instruction's operand, or a data item. * ida_nalt.opinfo_t * ida_struct.get_struc_name -#### See also -
    @@ -2107,6 +2508,7 @@ Note: 'ti_changed' is also called for changes to the function frames, but we'll only record function prototypes changes. #### Keywords +IDB_Hooks #### Uses * ida_funcs.get_func @@ -2117,8 +2519,6 @@ frames, but we'll only record function prototypes changes. * ida_typeinf.get_idati * ida_typeinf.tinfo_t -#### See also -
    @@ -2127,7 +2527,7 @@ frames, but we'll only record function prototypes changes. #### ana_emu_out
    - override some parts of the processor module + Override some parts of the processor module
    @@ -2142,7 +2542,10 @@ Implements disassembly of BUG_INSTR used in Linux kernel BUG() macro, which is architecturally undefined and is not disassembled by IDA's ARM module +See Linux/arch/arm/include/asm/bug.h for more info + #### Keywords +IDP_Hooks #### Uses * ida_bytes.get_wide_dword @@ -2154,15 +2557,13 @@ disassembled by IDA's ARM module * ida_idp.str2reg * ida_segregs.get_sreg -#### See also -
    #### assemble
    - an `ida_idp.IDP_Hooks.assembly` implementation + An `ida_idp.IDP_Hooks.assembly` implementation
    @@ -2175,14 +2576,16 @@ idphooks #### Description We add support for assembling the following pseudo instructions: +* "zero eax" -> xor eax, eax +* "nothing" -> nop + #### Keywords +IDP_Hooks #### Uses * ida_idp.IDP_Hooks * idautils.DecodeInstruction -#### See also -
    @@ -2191,7 +2594,7 @@ We add support for assembling the following pseudo instructions: #### inject_command
    - injecting commands is the "Output" window + Injecting commands in the "Output" window
    @@ -2205,7 +2608,18 @@ pyqt This example illustrates how one can execute commands in the "Output" window, from their own widgets. -#### Keywords +A few notes: + +* the original, underlying `cli:Execute` action, that has to be + triggered for the code present in the input field to execute + and be placed in the history, requires that the input field + has focus (otherwise it simply won't do anything.) +* this, in turn, forces us to do "delayed" execution of that action, + hence the need for a `QTimer` +* the IDA/SWiG 'TWidget' type that we retrieve through + `ida_kernwin.find_widget`, is not the same type as a + `QtWidgets.QWidget`. We therefore need to convert it using + `ida_kernwin.PluginForm.TWidgetToPyQtWidget` #### Uses * ida_kernwin.PluginForm.TWidgetToPyQtWidget @@ -2213,15 +2627,13 @@ This example illustrates how one can execute commands in the * ida_kernwin.find_widget * ida_kernwin.process_ui_action -#### See also -
    #### paint_over_navbar
    - custom painting on top of the navigation band + Custom painting on top of the navigation band
    @@ -2236,8 +2648,6 @@ Using an "event filter", we'll intercept paint events targeted at the navigation band widget, let it paint itself, and then add our own markers on top. -#### Keywords - #### Uses * ida_kernwin.PluginForm.FormToPyQtWidget * ida_kernwin.get_navband_pixel @@ -2246,15 +2656,13 @@ and then add our own markers on top. * ida_segment.getnseg * idc.here -#### See also -
    #### populate_pluginform_with_pyqt_widgets
    - adding PyQt5 widgets into an `ida_kernwin.PluginForm` + Adding PyQt5 widgets into an `ida_kernwin.PluginForm`
    @@ -2270,13 +2678,9 @@ converts IDA's own dockable widget into a type that is recognized by PyQt5, which then enables populating it with regular Qt widgets. -#### Keywords - #### Uses * ida_kernwin.PluginForm -#### See also -
    @@ -2285,7 +2689,7 @@ regular Qt widgets. #### func_chooser_coloring
    - using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults + Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
    @@ -2296,25 +2700,24 @@ regular Qt widgets. uihooks #### Description -color the function in the Function window according to its size. +Color the function in the Function window according to its size. The larger the function, the darker the color. #### Keywords +UI_Hooks #### Uses * ida_funcs.get_func * ida_kernwin.UI_Hooks * ida_kernwin.enable_chooser_item_attrs -#### See also -
    #### lines_rendering
    - dynamically colorize lines backgrounds (or parts of them) + Dynamically colorize lines backgrounds (or parts of them)
    @@ -2325,12 +2728,13 @@ The larger the function, the darker the color. uihooks #### Description -shows how one can dynamically alter the lines background +Shows how one can dynamically alter the lines background rendering (as opposed to, say, using ida_nalt.set_item_color()), and also shows how that rendering can be limited to just a few glyphs, not the whole line. #### Keywords +UI_Hooks #### Uses * ida_bytes.next_head @@ -2359,15 +2763,13 @@ glyphs, not the whole line. * ida_kernwin.line_rendering_output_entry_t * ida_kernwin.refresh_idaview_anyway -#### See also -
    #### log_misc_events
    - being notified, and logging a few UI events + Being notified, and logging a few UI events
    @@ -2378,23 +2780,22 @@ glyphs, not the whole line. uihooks #### Description -hooks to be notified about certain UI events, and +Hooks to be notified about certain UI events, and dump their information to the "Output" window #### Keywords +UI_Hooks #### Uses * ida_kernwin.UI_Hooks -#### See also -
    #### prevent_jump
    - taking precedence over actions + Taking precedence over actions
    @@ -2410,12 +2811,11 @@ to respond to a command instead of the action that would otherwise do it. #### Keywords +UI_Hooks #### Uses * ida_kernwin.UI_Hooks -#### See also -
    @@ -2424,7 +2824,7 @@ otherwise do it. #### add_menus
    - adding custom menus to IDA + Adding custom menus to IDA
    @@ -2439,6 +2839,11 @@ It is possible to add custom menus to IDA, either at the toplevel (i.e., into the menubar), or as submenus of existing menus. +Notes: + + * the same action can be present in more than 1 menu + * this example does not deal with context menus + #### Keywords actions @@ -2451,8 +2856,6 @@ actions * ida_kernwin.create_menu * ida_kernwin.register_action -#### See also -
    @@ -2472,6 +2875,10 @@ widgets #### Description How to query for complex user input, using IDA's built-in forms. +Note: while this example produces full-fledged forms for complex input, +simpler types of inputs might can be retrieved by using +`ida_kernwin.ask_str` and similar functions. + #### Keywords forms @@ -2482,8 +2889,6 @@ forms * ida_kernwin.PluginForm.FORM_TAB * ida_kernwin.ask_str -#### See also -
    @@ -2506,8 +2911,7 @@ show data organized in a simple table. In addition, registers a couple actions that can be applied to it. #### Keywords -chooser -actions +actions chooser ctxmenu #### Uses * Choose @@ -2548,11 +2952,10 @@ actions widgets #### Description -Similar to @{choose}, but with multiple selection +Similar to choose, but with multiple selection #### Keywords -chooser -actions +actions chooser #### Uses * Choose @@ -2571,7 +2974,7 @@ actions #### chooser_with_folders
    - A widget that can show tabular data either as a simple table, or with a tree-like structure. + A widget that can show tabular data either as a simple table, or with a tree-like structure.
    @@ -2585,10 +2988,15 @@ widgets By adding the necessary bits to a ida_kernwin.Choose subclass, IDA can show the otherwise tabular data, in a tree-like fashion. +The important bits to enable this are: + + * ida_dirtree.dirspec_t (and my_dirspec_t) + * ida_kernwin.CH_HAS_DIRTREE + * ida_kernwin.Choose.OnGetDirTree + * ida_kernwin.Choose.OnIndexToInode + #### Keywords -chooser -folders -actions +actions chooser folders #### Uses * ida_dirtree.DTE_OK @@ -2622,7 +3030,7 @@ actions #### custom_graph_with_actions
    - drawing custom graphs + Drawing custom graphs
    @@ -2637,8 +3045,7 @@ Showing custom graphs, using `ida_graph.GraphViewer`. In addition, show how to write actions that can be performed on those. #### Keywords -graph -actions +actions graph View_Hooks #### Uses * ida_funcs.get_func @@ -2657,10 +3064,7 @@ actions * ida_ua.decode_insn * ida_ua.insn_t * ida_xref.XREF_FAR -* idautils.FuncItems -* idautils.XrefsFrom - -#### See also +* ida_xref.xrefblk_t
    @@ -2668,7 +3072,7 @@ actions #### custom_viewer
    - create custom listings in IDA + Create custom listings in IDA
    @@ -2683,9 +3087,11 @@ How to create simple listings, that will share many of the features as the built-in IDA widgets (highlighting, copy & paste, notifications, ...) +In addition, creates actions that will be bound to the +freshly-created widget (using `ida_kernwin.attach_action_to_popup`.) + #### Keywords -listing -actions +actions ctxmenu listing #### Uses * ida_kernwin.AST_ENABLE_ALWAYS @@ -2705,8 +3111,6 @@ actions * ida_lines.SCOLOR_PREFIX * ida_lines.SCOLOR_VOIDOP -#### See also -
    @@ -2728,8 +3132,7 @@ Partially re-implements the "Functions" widget present in IDA, with a custom widget. #### Keywords -chooser -functions +chooser functions #### Uses * Choose @@ -2752,7 +3155,7 @@ functions #### jump_next_comment
    - implement a "jump to next comment" action within IDA's disassembly view. + Implement a "jump to next comment" action within IDA's disassembly view.
    @@ -2766,9 +3169,23 @@ widgets We want our action not only to find the next line containing a comment, but to also place the cursor at the right horizontal position. +To find that position, we will have to inspect the text that IDA +generates, looking for the start of a comment. +However, we won't be looking for a comment "prefix" (e.g., "; "), +as that would be too fragile. + +Instead, we will look for special "tags" that IDA injects into textual +lines, and that bear semantic information. + +Those tags are primarily used for rendering (i.e., switching colors), +but can also be very handy for spotting tokens of interest (registers, +addresses, comments, prefixes, instruction mnemonics, ...) + +#### Shortcut +Ctrl+Alt+C + #### Keywords -idaview -actions +actions idaview #### Uses * ida_bytes.next_head @@ -2801,7 +3218,7 @@ actions #### save_and_restore_listing_pos
    - save, and then restore, positions in a listing + Save, and then restore, positions in a listing
    @@ -2816,9 +3233,17 @@ Shows how it is possible re-implement IDA's bookmark capability, using 2 custom actions: one action saves the current location, and the other restores it. +Note that, contrary to actual bookmarks, this example: + + * remembers only 1 saved position + * doesn't save that position in the IDB (and therefore cannot + be restored if IDA is closed & reopened.) + +#### Shortcuts +Ctrl+Shift+O Ctrl+Shift+S + #### Keywords -listing -actions +actions listing #### Uses * ida_kernwin.AST_DISABLE_FOR_WIDGET @@ -2846,7 +3271,7 @@ actions #### show_and_hide_waitbox
    - showing, updating & hiding the progress dialog + Showing, updating & hiding the progress dialog
    @@ -2872,15 +3297,13 @@ actions * ida_kernwin.user_cancelled * idautils.Functions -#### See also -
    #### show_selected_strings
    - retrieve the strings that are selected in the "Strings" window. + Retrieve the strings that are selected in the "Strings" window.
    @@ -2895,8 +3318,15 @@ In IDA it's possible to write actions that can be applied even to core (i.e., "standard") widgets. The actions in this example use the action "context" to know what the current selection is. +This example shows how you can either retrieve string literals data +directly from the chooser (`ida_kernwin.get_chooser_data`), or +by querying the IDB (`ida_bytes.get_strlit_contents`) + +#### Shortcuts +Ctrl+Shift+K Ctrl+Shift+S + #### Keywords -actions +actions ctxmenu #### Uses * ida_bytes.get_strlit_contents @@ -2924,7 +3354,7 @@ actions #### sync_two_graphs
    - follow the movements of a disassembly graph, in another. + Follow the movements of a disassembly graph, in another.
    @@ -2939,9 +3369,11 @@ Since it is possible to be notified of movements that happen take place in a widget, it's possible to "replay" those movements in another. +In this case, "IDA View-B" (will be opened if necessary) will +show the same contents as "IDA View-A", slightly zoomed out. + #### Keywords -graph -idaview +graph idaview #### Uses * ida_graph.GLICTL_CENTER @@ -2970,7 +3402,7 @@ idaview #### wrap_idaview
    - manipulate IDAView and graph + Manipulate IDAView and graph
    @@ -2985,8 +3417,7 @@ This is an example illustrating how to manipulate an existing IDA-provided view (and thus possibly its graph), in Python. #### Keywords -idaview -graph +graph idaview #### Uses * ida_graph.NIF_BG_COLOR diff --git a/examples/pyqt/inject_command.py b/examples/pyqt/inject_command.py index aff5278..43447f1 100644 --- a/examples/pyqt/inject_command.py +++ b/examples/pyqt/inject_command.py @@ -1,5 +1,5 @@ """ -summary: injecting commands is the "Output" window +summary: injecting commands in the "Output" window description: This example illustrates how one can execute commands in the diff --git a/examples/uihooks/log_misc_events.py b/examples/uihooks/log_misc_events.py index b7ce6a7..6f489b5 100644 --- a/examples/uihooks/log_misc_events.py +++ b/examples/uihooks/log_misc_events.py @@ -8,15 +8,33 @@ description: from __future__ import print_function +import inspect + import ida_kernwin class MyUiHook(ida_kernwin.UI_Hooks): def __init__(self): ida_kernwin.UI_Hooks.__init__(self) self.cmdname = "" + self.inhibit_log = 0; - def _log(self, msg): - print(">>> MyUiHook: %s" % msg) + def _format_value(self, v): + return str(v) + + def _log(self, msg=None): + if self.inhibit_log <= 0: + if msg: + print(">>> MyUiHook: %s" % msg) + else: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print(">>> MyUiHook.%s: %s" % (method_name, ", ".join(argstrs))) + return 0 def preprocess_action(self, name): self._log("IDA preprocessing command: %s" % name) @@ -75,6 +93,90 @@ class MyUiHook(ida_kernwin.UI_Hooks): """ self._log("finish_populating_widget_popup; title: %s" % (ctx.widget_title,)) + def range(self): + self._log() + + def idcstart(self): + self._log() + + def idcstop(self): + self._log() + + def suspend(self): + self._log() + + def resume(self): + self._log() + + def debugger_menu_change(self, enable): + self._log() + + def widget_visible(self, widget): + self._log() + + def widget_closing(self, widget): + self._log() + + def widget_invisible(self, widget): + self._log() + + def get_item_hint(self, ea, max_lines): + self._log() + + def get_custom_viewer_hint(self, viewer, place): + self._log() + + def database_inited(self, is_new_database, idc_script): + self._log() + + def ready_to_run(self): + self._log() + + def get_chooser_item_attrs(self, chooser, n, attrs): + self._log() + + def updating_actions(self, ctx): + self._log() + + def updated_actions(self): + self._log() + + def plugin_loaded(self, plugin_info): + self._log() + + def plugin_unloading(self, plugin_info): + self._log() + + def current_widget_changed(self, widget, prev_widget): + self._log() + + def screen_ea_changed(self, ea, prev_ea): + self._log() + + def create_desktop_widget(self, title, cfg): + self._log() + + def get_lines_rendering_info(self, out, widget, info): + self._log() + + def get_widget_config(self, widget, cfg): + self._log() + + def set_widget_config(self, widget, cfg): + self._log() + + def initing_database(self): + self._log() + + def destroying_procmod(self, procmod): + self._log() + + def destroying_plugmod(self, plugmod, entry): + self._log() + + def desktop_applied(self, name, from_idb, type): + self._log() + #--------------------------------------------------------------------- # Remove an existing hook on second run diff --git a/examples/widgets/graphs/custom_graph_with_actions.py b/examples/widgets/graphs/custom_graph_with_actions.py index ca044f8..f5222e7 100644 --- a/examples/widgets/graphs/custom_graph_with_actions.py +++ b/examples/widgets/graphs/custom_graph_with_actions.py @@ -137,8 +137,9 @@ def show_graph(): # Iterate through all function instructions and take only call instructions result = [] tmp = ida_ua.insn_t() - for x in [x for x in idautils.FuncItems(f.start_ea) if (ida_ua.decode_insn(tmp, x) and ida_idp.is_call_insn(tmp))]: - for xref in idautils.XrefsFrom(x, ida_xref.XREF_FAR): + for x in [x for x in f if (ida_ua.decode_insn(tmp, x) and ida_idp.is_call_insn(tmp))]: + xb = ida_xref.xrefblk_t() + for xref in xb.refs_from(x, ida_xref.XREF_FAR): if not xref.iscode: continue t = ida_funcs.get_func_name(xref.to) if not t: diff --git a/examples/widgets/tabular_views/custom/chooser_with_folders.py b/examples/widgets/tabular_views/custom/chooser_with_folders.py index f4f0c9f..4c4b615 100644 --- a/examples/widgets/tabular_views/custom/chooser_with_folders.py +++ b/examples/widgets/tabular_views/custom/chooser_with_folders.py @@ -37,14 +37,14 @@ class my_dirspec_t(ida_dirtree.dirspec_t): args, _, _, values = inspect.getargvalues(frame) print(">>> %s: args=%s" % (inspect.getframeinfo(frame)[2], [(i, values[i]) for i in args[1:]])) - def get_name(self, inode): + def get_name(self, inode, flags): self.log_frame() def find_inode(index, ordinal, _inode): if inode == _inode: return "inode #%d" % inode return self.chooser._for_each_item(find_inode) - def get_inode(self, diridx, name): + def get_inode(self, dirpath, name): self.log_frame() if not name.startswith("inode #"): return ida_dirtree.direntry_t.BADIDX diff --git a/extapi.cpp b/extapi.cpp index 33a2e9c..05d353f 100644 --- a/extapi.cpp +++ b/extapi.cpp @@ -42,12 +42,12 @@ bool ext_api_t::load(qstring *errbuf) if ( lib_handle == nullptr ) return false; -#define BIND_SYMBOL(Name) \ +#define BIND_SYMBOL_x(Name, fail) \ do \ { \ * (FARPROC *) &Name ## _ptr = GetProcAddress( \ (HMODULE) lib_handle, TEXT(#Name)); \ - if ( Name ## _ptr == nullptr ) \ + if ( Name ## _ptr == nullptr && fail ) \ { \ errbuf->sprnt("GetProcAddress(\"%s\") failed: %s", \ #Name, qstrerror(-1)); \ @@ -55,6 +55,9 @@ bool ext_api_t::load(qstring *errbuf) } \ } while ( 0 ) +#define BIND_SYMBOL(Name) BIND_SYMBOL_x(Name, true) +#define BIND_SYMBOL_WEAK(Name) BIND_SYMBOL_x(Name, false) + BIND_SYMBOL(PyEval_SetTrace); BIND_SYMBOL(PyRun_SimpleStringFlags); BIND_SYMBOL(PyRun_StringFlags); @@ -66,6 +69,8 @@ bool ext_api_t::load(qstring *errbuf) BIND_SYMBOL(PyFunction_New); BIND_SYMBOL(PyFunction_GetCode); BIND_SYMBOL(_PyLong_AsByteArray); + BIND_SYMBOL_WEAK(PyEval_ThreadsInitialized); + BIND_SYMBOL_WEAK(PyEval_InitThreads); #undef BIND_SYMBOL diff --git a/extapi.hpp b/extapi.hpp index 90def66..82c4359 100644 --- a/extapi.hpp +++ b/extapi.hpp @@ -29,6 +29,9 @@ typedef PyObject *PyFunction_GetCode_t(PyObject *); typedef int _PyLong_AsByteArray_t(PyObject *, unsigned char *, size_t, int, int); +typedef int PyEval_ThreadsInitialized_t(void); +typedef void PyEval_InitThreads_t(void); + struct ext_api_t { qstring lib_path; @@ -46,6 +49,8 @@ struct ext_api_t PyFunction_New_t *PyFunction_New_ptr; PyFunction_GetCode_t *PyFunction_GetCode_ptr; _PyLong_AsByteArray_t *_PyLong_AsByteArray_ptr; + PyEval_ThreadsInitialized_t *PyEval_ThreadsInitialized_ptr; + PyEval_InitThreads_t *PyEval_InitThreads_ptr; ext_api_t() { memset(this, 0, sizeof(*this)); } ~ext_api_t() { clear(); } diff --git a/idapy.hpp b/idapy.hpp index b8bee0c..e48da1c 100644 --- a/idapy.hpp +++ b/idapy.hpp @@ -44,10 +44,10 @@ inline int IDAPyStr_Check(PyObject *obj) inline bool IDAPyStr_AsUTF8(qstring *out, PyObject *obj) { PyObject *utf8 = PyUnicode_AsUTF8String(obj); - bool ok = utf8 != NULL; + bool ok = utf8 != nullptr; if ( ok ) { - char *buffer = NULL; + char *buffer = nullptr; Py_ssize_t length = 0; ok = PyBytes_AsStringAndSize(utf8, &buffer, &length) >= 0; if ( ok ) @@ -139,7 +139,7 @@ inline int IDAPyStr_Check(PyObject *obj) inline bool IDAPyStr_AsUTF8(qstring *out, PyObject *obj) { - char *buffer = NULL; + char *buffer = nullptr; Py_ssize_t length = 0; bool ok = PyString_AsStringAndSize(obj, &buffer, &length) >= 0; if ( ok ) @@ -199,7 +199,7 @@ inline char *IDAPyBytes_AsString(PyObject *o) inline bool IDAPyBytes_AsBytes(bytevec_t *out, PyObject *obj) { - char *buffer = NULL; + char *buffer = nullptr; Py_ssize_t length = 0; bool ok = IDAPyBytes_AsMemAndSize(obj, &buffer, &length) >= 0; if ( ok ) @@ -222,5 +222,10 @@ inline bool IDAPyBytes_as_qtype(qtype *out, PyObject *obj) return ok; } +inline PyObject *IDAPyStr_FromUTF8(const qstring &s) +{ + return IDAPyStr_FromUTF8AndSize(s.c_str(), s.length()); +} + #endif // IDAPY_HPP diff --git a/idapython.cfg b/idapython.cfg index 91f3f55..c10b706 100644 --- a/idapython.cfg +++ b/idapython.cfg @@ -13,9 +13,6 @@ SCRIPT_TIMEOUT = 3 // 'idaapi' wrapper module? AUTOIMPORT_COMPAT_IDAAPI = YES -// Should the plugin automatically load a 6.95 bw-compatibility layer? -AUTOIMPORT_COMPAT_IDA695 = NO - // Is IDAPython namespace-aware? // If yes, then plugins, loaders & processor modules will each be loaded // within their own namespace, preventing namespace pollution. @@ -23,3 +20,6 @@ NAMESPACE_AWARE = YES // Should results be printed by 'sys.displayhook'? REPL_USE_SYS_DISPLAYHOOK = YES + +// Should directories derived from $IDAUSR (e.g., ~/.idapro/python/3) be added to sys.path? +IDAPYTHON_IDAUSR_SYSPATH = YES diff --git a/idapython.cpp b/idapython.cpp index e543381..f3e21e8 100644 --- a/idapython.cpp +++ b/idapython.cpp @@ -78,12 +78,6 @@ idapython_plugin_t *ida_export get_plugin_instance() return idapython_plugin_t::get_instance(); } -//------------------------------------------------------------------------- -bool ida_export is_api695_compat_enabled() -{ - return get_plugin_instance()->config.autoimport_compat_ida695; -} - //------------------------------------------------------------------------- // Allowing the user to interrupt a script is not entirely trivial. // Imagine the following script, that is run in an IDB that uses @@ -114,7 +108,7 @@ struct exec_entry_t { time_t etime; exec_entry_t() { reset_start_time(); } - void reset_start_time() { etime = time(NULL); } + void reset_start_time() { etime = time(nullptr); } }; DECLARE_TYPE_AS_MOVABLE(exec_entry_t); typedef qvector exec_entries_t; @@ -217,7 +211,7 @@ void execution_t::reset_steps() void execution_t::push() { if ( entries.empty() ) - extapi.PyEval_SetTrace_ptr((Py_tracefunc) execution_t::on_trace, NULL); //lint !e611 cast between pointer to function type '' and pointer to object type 'void *' + extapi.PyEval_SetTrace_ptr((Py_tracefunc) execution_t::on_trace, nullptr); //lint !e611 cast between pointer to function type '' and pointer to object type 'void *' entries.push_back(); LEXEC("push() (now: %d entries)\n", int(entries.size())); } @@ -234,14 +228,14 @@ void execution_t::pop() //------------------------------------------------------------------------- void execution_t::stop_tracking() { - extapi.PyEval_SetTrace_ptr(NULL, NULL); + extapi.PyEval_SetTrace_ptr(nullptr, nullptr); maybe_hide_wait_box(); } //------------------------------------------------------------------------- void execution_t::sync_to_present_time() { - time_t now = time(NULL); + time_t now = time(nullptr); LEXEC("execution_t (%p)::sync_to_present_time() now=%d\n", this, int(now)); for ( size_t i = 0, n = entries.size(); i < n; ++i ) entries[i].etime = now; @@ -306,7 +300,7 @@ int execution_t::on_trace(PyObject *, PyFrameObject *, int, PyObject *) return 0; } - if ( get_active_modal_widget() != NULL ) + if ( get_active_modal_widget() != nullptr ) { LEXEC("on_trace()::a modal widget is active. Not showing our 'interrupt dialog'.\n"); @@ -328,7 +322,7 @@ int execution_t::on_trace(PyObject *, PyFrameObject *, int, PyObject *) return 0; } - time_t now = time(NULL); + time_t now = time(nullptr); LEXEC("on_trace()::now: %d\n", int(now)); if ( execution.can_interrupt_current(now) ) { @@ -340,7 +334,7 @@ int execution_t::on_trace(PyObject *, PyFrameObject *, int, PyObject *) { if ( user_clicked_cancel ) { - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) { LEXEC("on_trace()::INTERRUPTING (setting 'User interrupted' exception)\n"); PyErr_SetString(PyExc_KeyboardInterrupt, "User interrupted"); @@ -430,7 +424,7 @@ static void handle_python_error( qstring *errbuf, bool clear_error = true) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->clear(); // No exception? @@ -475,7 +469,7 @@ static const ext_idcfunc_t idc_runpythonstatement_desc = S_IDC_EXEC_PYTHON, idc_runpythonstatement, idc_runpythonstatement_args, - NULL, + nullptr, 0, 0 }; @@ -500,7 +494,7 @@ static const ext_idcfunc_t idc_eval_python_desc = S_IDC_EVAL_PYTHON, idc_eval_python, idc_eval_python_args, - NULL, + nullptr, 0, 0 }; @@ -512,7 +506,7 @@ static const cfgopt_t opts[] = CFGOPT_B("ALERT_AUTO_SCRIPTS", idapython_plugin_config_t, alert_auto_scripts, true), CFGOPT_B("REMOVE_CWD_SYS_PATH", idapython_plugin_config_t, remove_cwd_sys_path, true), CFGOPT_B("AUTOIMPORT_COMPAT_IDAAPI", idapython_plugin_config_t, autoimport_compat_idaapi, true), - CFGOPT_B("AUTOIMPORT_COMPAT_IDA695", idapython_plugin_config_t, autoimport_compat_ida695, true), + CFGOPT_B("IDAPYTHON_IDAUSR_SYSPATH", idapython_plugin_config_t, idausr_syspath, true), CFGOPT_B("NAMESPACE_AWARE", idapython_plugin_config_t, namespace_aware, true), CFGOPT_B("REPL_USE_SYS_DISPLAYHOOK", idapython_plugin_config_t, repl_use_sys_displayhook, true), }; @@ -525,21 +519,21 @@ static bool return_python_result( const ref_t &py_result, qstring *errbuf) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->clear(); - if ( py_result == NULL ) + if ( py_result == nullptr ) { handle_python_error(errbuf); return false; } int cvt = CIP_OK; - if ( idc_result != NULL ) + if ( idc_result != nullptr ) { idc_result->clear(); cvt = pyvar_to_idcvar(py_result, idc_result); - if ( cvt < CIP_OK && errbuf != NULL ) + if ( cvt < CIP_OK && errbuf != nullptr ) *errbuf = "ERROR: bad return value"; } @@ -559,7 +553,7 @@ static bool parse_py_modname( const char *defmod = S_IDA_IDAAPI_MODNAME) { const char *p = strrchr(full_name, '.'); - if ( p == NULL ) + if ( p == nullptr ) { qstrncpy(modname, defmod, sz); qstrncpy(attrname, full_name, sz); @@ -569,7 +563,7 @@ static bool parse_py_modname( qstrncpy(modname, full_name, p - full_name + 1); qstrncpy(attrname, p + 1, sz); } - return p != NULL; + return p != nullptr; } //------------------------------------------------------------------------- @@ -584,8 +578,8 @@ static void wrap_in_function(qstring *out, const qstring &body, const char *name char *ctx; for ( char *p = qstrtok(buf.begin(), "\n", &ctx); - p != NULL; - p = qstrtok(NULL, "\n", &ctx) ) + p != nullptr; + p = qstrtok(nullptr, "\n", &ctx) ) { static const char FROM_FUTURE_IMPORT_STMT[] = "from __future__ import"; if ( strneq(p, FROM_FUTURE_IMPORT_STMT, sizeof(FROM_FUTURE_IMPORT_STMT)-1) ) @@ -668,7 +662,7 @@ idaman void ida_export enable_extlang_python(bool enable) if ( enable ) select_extlang(&extlang_python); else - select_extlang(NULL); + select_extlang(nullptr); } //------------------------------------------------------------------------- @@ -680,8 +674,8 @@ static const cli_t cli_python = "Python - IDAPython plugin", "Enter any Python expression", idapython_plugin_t::cli_execute_line, - NULL, - NULL, + nullptr, + nullptr, idapython_plugin_t::cli_find_completions, }; @@ -704,7 +698,7 @@ void convert_idc_args() newref_t py_args(PyList_New(0)); idc_value_t *idc_args = find_idc_gvar(S_IDC_ARGS_VARNAME); - if ( idc_args != NULL ) + if ( idc_args != nullptr ) { idc_value_t attr; char attr_name[20] = { "0" }; @@ -717,7 +711,7 @@ void convert_idc_args() // Get reference to the IDC module (it is imported by init.py) ref_t py_mod(PyW_TryImportModule(S_IDC_MODNAME)); - if ( py_mod != NULL ) + if ( py_mod != nullptr ) PyObject_SetAttrString(py_mod.o, S_IDC_ARGS_VARNAME, py_args.o); } @@ -854,7 +848,7 @@ AS_PRINTF(1, 2) static void lerror(const char *format, ...) qvsnprintf(buf, sizeof(buf), format, va); // use MB_SERVICE_NOTIFICATION to prevent UI message loop from running since ida.exe is mostly shut down at this point // and can crash if messages get processed - MessageBox(NULL, buf, "IDA", MB_ICONERROR|MB_SERVICE_NOTIFICATION); + MessageBox(nullptr, buf, "IDA", MB_ICONERROR|MB_SERVICE_NOTIFICATION); #else qveprintf(format, va); //qgetchar(); @@ -947,7 +941,7 @@ bool idapython_plugin_t::init() char utf8_pyhomepath[MAXSTR]; qstrncpy(utf8_pyhomepath, extapi.lib_path.c_str(), sizeof(utf8_pyhomepath)); char *lastslash = strrchr(utf8_pyhomepath, '/'); - if ( lastslash != NULL ) + if ( lastslash != nullptr ) { *lastslash = 0; # ifdef PY3 @@ -997,9 +991,13 @@ bool idapython_plugin_t::init() // remove current directory _prepare_sys_path(); - // Enable multi-threading support - if ( !PyEval_ThreadsInitialized() ) - PyEval_InitThreads(); + if ( extapi.PyEval_ThreadsInitialized_ptr != nullptr + && extapi.PyEval_InitThreads_ptr != nullptr ) + { + // Enable multi-threading support (before 3.9 + if ( !extapi.PyEval_ThreadsInitialized_ptr() ) + extapi.PyEval_InitThreads_ptr(); + } #ifdef Py_DEBUG msg("HexraysPython: Python compiled with DEBUG enabled.\n"); @@ -1013,17 +1011,13 @@ bool idapython_plugin_t::init() "IDAPYTHON_DYNLOAD_BASE = r\"%s\"\n" "IDAPYTHON_DYNLOAD_RELPATH = \"ida_%" FMT_Z "\"\n" "IDAPYTHON_COMPAT_AUTOIMPORT_MODULES = %s\n" - "IDAPYTHON_COMPAT_695_API = %s\n", + "IDAPYTHON_IDAUSR_SYSPATH = %s\n", VER_MAJOR, VER_MINOR, VER_PATCH, VER_STATUS, VER_SERIAL, config.remove_cwd_sys_path ? "True" : "False", - idadir(NULL), + idadir(nullptr), sizeof(ea_t)*8, config.autoimport_compat_idaapi ? "True" : "False", -#ifdef BC695 - config.autoimport_compat_ida695 ? "True" : "False" -#else - "False" -#endif + config.idausr_syspath ? "True" : "False" ); if ( extapi.PyRun_SimpleStringFlags_ptr(init_code.c_str(), nullptr) != 0 ) @@ -1093,17 +1087,17 @@ void idapython_plugin_t::parse_plugin_options() { // Get options from IDA const char *options = get_plugin_options(S_IDAPYTHON); - if ( options == NULL || options[0] == '\0' ) + if ( options == nullptr || options[0] == '\0' ) return; qstring obuf(options); char *ctx; for ( char *p = qstrtok(obuf.begin(), ";", &ctx); - p != NULL; - p = qstrtok(NULL, ";", &ctx) ) + p != nullptr; + p = qstrtok(nullptr, ";", &ctx) ) { qstring opt(p); char *sep = qstrchr(opt.begin(), '='); - bool ok = sep != NULL; + bool ok = sep != nullptr; if ( ok ) { *sep++ = '\0'; @@ -1127,15 +1121,15 @@ void idapython_plugin_t::parse_plugin_options() "Valid values are: 'db_open', 'ui_ready' and 'init'", when.c_str()); } - else if ( opt == "AUTOIMPORT_COMPAT_IDA695" ) + else if ( opt == "IDAPYTHON_IDAUSR_SYSPATH" ) { qstring imp(sep); if ( imp == "YES" ) - config.autoimport_compat_ida695 = true; + config.idausr_syspath = true; else if ( imp == "NO" ) - config.autoimport_compat_ida695 = false; + config.idausr_syspath = false; else - warning("Unknown 'AUTOIMPORT_COMPAT_IDA695' directive: '%s'. " + warning("Unknown 'IDAPYTHON_IDAUSR_SYSPATH' directive: '%s'. " " Expected 'YES' or 'NO'", imp.c_str()); } else @@ -1153,7 +1147,7 @@ ref_t idapython_plugin_t::get_sys_displayhook() if ( config.repl_use_sys_displayhook ) { ref_t py_sys(PyW_TryImportModule("sys")); - if ( py_sys != NULL ) + if ( py_sys != nullptr ) h = PyW_TryGetAttrString(py_sys.o, "displayhook"); } return h; @@ -1325,7 +1319,7 @@ bool idapython_plugin_t::_extlang_compile_expr( qstring qstr(expr); PyObject *code = my_CompileString(insert_encoding_cookie(&qstr), "", Py_eval_input); - if ( code == NULL ) + if ( code == nullptr ) { // try compiling as a list of statements // wrap them into a function @@ -1334,7 +1328,7 @@ bool idapython_plugin_t::_extlang_compile_expr( wrap_in_function(&func, expr, name); insert_encoding_cookie(&func); code = my_CompileString(func.c_str(), "", Py_file_input); - if ( code == NULL ) + if ( code == nullptr ) { handle_python_error(errbuf); return false; @@ -1345,7 +1339,7 @@ bool idapython_plugin_t::_extlang_compile_expr( // Create a function out of code PyObject *func = extapi.PyFunction_New_ptr(code, globals); - if ( func == NULL ) + if ( func == nullptr ) { ERR: handle_python_error(errbuf); @@ -1362,7 +1356,7 @@ ERR: if ( isfunc ) { idc_value_t result; - return _extlang_call_func(&result, name, NULL, 0, errbuf); + return _extlang_call_func(&result, name, nullptr, 0, errbuf); } return true; @@ -1379,7 +1373,7 @@ bool idapython_plugin_t::_extlang_eval_expr( { PYW_GIL_GET; PyObject *globals = _get_module_globals(); - bool ok = globals != NULL; + bool ok = globals != nullptr; ref_t result; if ( ok ) { @@ -1448,7 +1442,7 @@ bool idapython_plugin_t::_extlang_create_object( // Get a reference to the module ref_t py_mod(PyW_TryImportModule(modname)); - if ( py_mod == NULL ) + if ( py_mod == nullptr ) { errbuf->sprnt("Could not import module '%s'!", modname); break; @@ -1458,7 +1452,7 @@ bool idapython_plugin_t::_extlang_create_object( ref_t py_res; if ( nargs == 1 && args[0].vtype == VT_PVOID ) py_res = try_create_swig_wrapper(py_mod, clsname, args[0].pvoid); - if ( py_res != NULL ) + if ( py_res != nullptr ) { #ifdef PY3 PyObject_SetAttrString(py_res.o, S_PY_IDCCVT_ID_ATTR, PyLong_FromLong(PY_ICID_OPAQUE)); @@ -1470,7 +1464,7 @@ bool idapython_plugin_t::_extlang_create_object( { // Get the class reference ref_t py_cls(PyW_TryGetAttrString(py_mod.o, clsname)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) { errbuf->sprnt("Could not find class type '%s'!", clsname); break; @@ -1482,7 +1476,7 @@ bool idapython_plugin_t::_extlang_create_object( break; // Call the constructor - py_res = newref_t(PyObject_CallObject(py_cls.o, pargs.empty() ? NULL : pargs[0].o)); + py_res = newref_t(PyObject_CallObject(py_cls.o, pargs.empty() ? nullptr : pargs[0].o)); } ok = return_python_result(result, py_res, errbuf); } while ( false ); @@ -1499,7 +1493,7 @@ bool idapython_plugin_t::_extlang_eval_snippet( PYW_GIL_GET; PyObject *globals = _get_module_globals(); bool ok; - if ( globals == NULL ) + if ( globals == nullptr ) { ok = false; } @@ -1515,7 +1509,7 @@ bool idapython_plugin_t::_extlang_eval_snippet( globals, globals, nullptr)); - ok = result != NULL && !PyErr_Occurred(); + ok = result != nullptr && !PyErr_Occurred(); if ( !ok ) handle_python_error(errbuf); } @@ -1541,7 +1535,7 @@ bool idapython_plugin_t::_extlang_call_func( bool imported_module = parse_py_modname(name, modname, funcname, MAXSTR); bool ok = true; - PyObject *module = NULL; + PyObject *module = nullptr; ref_vec_t pargs; do { @@ -1552,21 +1546,21 @@ bool idapython_plugin_t::_extlang_call_func( const char *final_modname = imported_module ? modname : S_MAIN; module = PyImport_ImportModule(final_modname); - if ( module == NULL ) + if ( module == nullptr ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->sprnt("couldn't import module %s", final_modname); ok = false; break; } PyObject *globals = PyModule_GetDict(module); - QASSERT(30157, globals != NULL); + QASSERT(30157, globals != nullptr); PyObject *func = PyDict_GetItemString(globals, funcname); - if ( func == NULL ) + if ( func == nullptr ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->sprnt("undefined function %s", name); ok = false; break; @@ -1578,17 +1572,17 @@ bool idapython_plugin_t::_extlang_call_func( #ifdef PY3 newref_t py_res(PyEval_EvalCodeEx( PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), - globals, NULL, + globals, nullptr, pargs_ptrs.begin(), nargs, - NULL, 0, NULL, 0, NULL, NULL)); + nullptr, 0, nullptr, 0, nullptr, nullptr)); #else newref_t py_res(PyEval_EvalCodeEx( PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), - globals, NULL, + globals, nullptr, pargs_ptrs.begin(), nargs, - NULL, 0, NULL, 0, NULL)); + nullptr, 0, nullptr, 0, nullptr)); #endif ok = return_python_result(result, py_res, errbuf); } while ( false ); @@ -1602,7 +1596,7 @@ bool idapython_plugin_t::_extlang_call_func( static bool is_instance_of(PyObject *obj, PyObject *mod, const char *cls_name) { ref_t py_plugin_t_cls(PyW_TryGetAttrString(mod, cls_name)); - return py_plugin_t_cls != NULL && PyObject_IsInstance(obj, py_plugin_t_cls.o); + return py_plugin_t_cls != nullptr && PyObject_IsInstance(obj, py_plugin_t_cls.o); } //------------------------------------------------------------------------- @@ -1617,13 +1611,13 @@ bool idapython_plugin_t::_extlang_call_method( PYW_GIL_GET; // Check for unsupported usage of call_method. // Mainly a method call requires an object and a method. - if ( method_name == NULL ) + if ( method_name == nullptr ) { *errbuf = "call_method does not support this operation"; return false; } // Behave like run() - else if ( idc_obj == NULL ) + else if ( idc_obj == nullptr ) { new_execution_t exec; return _extlang_call_func(result, method_name, args, nargs, errbuf); @@ -1645,7 +1639,7 @@ bool idapython_plugin_t::_extlang_call_method( } ref_t py_method(PyW_TryGetAttrString(py_obj.o, method_name)); - if ( py_method == NULL || !PyCallable_Check(py_method.o) ) + if ( py_method == nullptr || !PyCallable_Check(py_method.o) ) { errbuf->sprnt("The input object does not have a callable method called '%s'", method_name); break; @@ -1658,7 +1652,7 @@ bool idapython_plugin_t::_extlang_call_method( if ( streq(method_name, "run") ) { ref_t py_ida_idaapi_mod(PyW_TryImportModule(S_IDA_IDAAPI_MODNAME)); - if ( py_ida_idaapi_mod != NULL ) + if ( py_ida_idaapi_mod != nullptr ) { if ( is_instance_of(py_obj.o, py_ida_idaapi_mod.o, "plugin_t") || is_instance_of(py_obj.o, py_ida_idaapi_mod.o, "plugmod_t") ) @@ -1673,7 +1667,7 @@ bool idapython_plugin_t::_extlang_call_method( { new_execution_t exec; - newref_t py_res(PyObject_CallObject(py_method.o, pargs.empty() ? NULL : pargs[0].o)); + newref_t py_res(PyObject_CallObject(py_method.o, pargs.empty() ? nullptr : pargs[0].o)); ok = return_python_result(result, py_res, errbuf); } } while ( false ); @@ -1685,7 +1679,7 @@ bool idapython_plugin_t::_extlang_call_method( // Returns the attribute value of a given object from the global scope bool idapython_plugin_t::_extlang_get_attr( idc_value_t *result, // out: result - const idc_value_t *obj, // in: object (may be NULL) + const idc_value_t *obj, // in: object (may be nullptr) const char *attr) // in: attribute name { PYW_GIL_GET; @@ -1694,14 +1688,14 @@ bool idapython_plugin_t::_extlang_get_attr( { // Get a reference to the module ref_t py_mod(PyW_TryImportModule(S_MAIN)); - if ( py_mod == NULL ) + if ( py_mod == nullptr ) break; // Object specified: // - (1) string contain attribute name in the main module // - (2) opaque object (we use it as is) ref_t py_obj; - if ( obj != NULL ) + if ( obj != nullptr ) { // (1) Get attribute from main module if ( obj->vtype == VT_STR ) @@ -1721,7 +1715,7 @@ bool idapython_plugin_t::_extlang_get_attr( } } // Get the attribute reference - if ( py_obj == NULL ) + if ( py_obj == nullptr ) break; } // No object specified: @@ -1732,22 +1726,22 @@ bool idapython_plugin_t::_extlang_get_attr( } // Special case: if attribute not passed then retrieve the class // name associated associated with the passed object - if ( attr == NULL || attr[0] == '\0' ) + if ( attr == nullptr || attr[0] == '\0' ) { cvt = CIP_FAILED; // Get the class newref_t cls(PyObject_GetAttrString(py_obj.o, "__class__")); - if ( cls == NULL ) + if ( cls == nullptr ) break; // Get its name newref_t name(PyObject_GetAttrString(cls.o, "__name__")); - if ( name == NULL ) + if ( name == nullptr ) break; // Convert name object to string object newref_t string(PyObject_Str(name.o)); - if ( string == NULL ) + if ( string == nullptr ) break; // Convert name python string to a C string @@ -1755,20 +1749,20 @@ bool idapython_plugin_t::_extlang_get_attr( if ( !IDAPyStr_AsUTF8(&clsname, string.o) ) break; - result->set_string(clsname); + result->set_string(clsname); //-V595 'result' was utilized before it was verified against nullptr cvt = CIP_OK; //lint !e838 break; } ref_t py_attr(PyW_TryGetAttrString(py_obj.o, attr)); // No attribute? - if ( py_attr == NULL ) + if ( py_attr == nullptr ) { cvt = CIP_FAILED; break; } // Don't store result - if ( result == NULL ) + if ( result == nullptr ) { cvt = CIP_OK; // Decrement attribute (because of GetAttrString) @@ -1796,7 +1790,7 @@ bool idapython_plugin_t::_extlang_get_attr( // Returns the attribute value of a given object from the global scope //lint -e{818} bool idapython_plugin_t::_extlang_set_attr( - idc_value_t *obj, // in: object name (may be NULL) + idc_value_t *obj, // in: object name (may be nullptr) const char *attr, // in: attribute name const idc_value_t &value) { @@ -1806,10 +1800,10 @@ bool idapython_plugin_t::_extlang_set_attr( { // Get a reference to the module ref_t py_mod(PyW_TryImportModule(S_MAIN)); - if ( py_mod == NULL ) + if ( py_mod == nullptr ) break; ref_t py_obj; - if ( obj != NULL ) + if ( obj != nullptr ) { // Get the attribute reference (from just a name) if ( obj->vtype == VT_STR ) @@ -1823,7 +1817,7 @@ bool idapython_plugin_t::_extlang_set_attr( py_obj = ref_t(); } // No object to set_attr on? - if ( py_obj == NULL ) + if ( py_obj == nullptr ) break; } else @@ -1855,7 +1849,7 @@ bool idapython_plugin_t::_cli_execute_line(const char *line) return true; const char *last_line = strrchr(line, '\n'); - if ( last_line == NULL ) + if ( last_line == nullptr ) last_line = line; else last_line += 1; @@ -1893,7 +1887,7 @@ bool idapython_plugin_t::_cli_execute_line(const char *line) // Compile as an expression qstring qstr(line); newref_t py_code(my_CompileString(insert_encoding_cookie(&qstr), "", Py_eval_input)); - if ( py_code == NULL || PyErr_Occurred() ) + if ( py_code == nullptr || PyErr_Occurred() ) { // Not an expression? PyErr_Clear(); @@ -1910,17 +1904,17 @@ bool idapython_plugin_t::_cli_execute_line(const char *line) py_globals, py_globals)); - if ( py_result == NULL || PyErr_Occurred() ) //-V560 is always false: PyErr_Occurred() + if ( py_result == nullptr || PyErr_Occurred() ) //-V560 is always false: PyErr_Occurred() { PyErr_Print(); } else { ref_t sys_displayhook(idapython_plugin_t::get_instance()->get_sys_displayhook()); - if ( sys_displayhook != NULL ) + if ( sys_displayhook != nullptr ) { //lint -esym(1788, res) is referenced only by its constructor or destructor - newref_t res(PyObject_CallFunctionObjArgs(sys_displayhook.o, py_result.o, NULL)); + newref_t res(PyObject_CallFunctionObjArgs(sys_displayhook.o, py_result.o, nullptr)); } else if ( py_result.o != Py_None ) { @@ -1932,7 +1926,7 @@ bool idapython_plugin_t::_cli_execute_line(const char *line) IDAPyStr_AsUTF8(&utf8, py_result.o); #else newref_t py_result_utf8(PyUnicode_AsUTF8String(py_result.o)); - ok = py_result_utf8 != NULL; + ok = py_result_utf8 != nullptr; if ( ok ) IDAPyStr_AsUTF8(&utf8, py_result_utf8.o); #endif @@ -1967,11 +1961,11 @@ bool idapython_plugin_t::_cli_find_completions( PYW_GIL_GET; ref_t py_fc(get_idaapi_attr(S_IDAAPI_FINDCOMPLETIONS)); - if ( py_fc == NULL ) + if ( py_fc == nullptr ) return false; newref_t py_res(PyObject_CallFunction(py_fc.o, "si", line, x)); //lint !e605 !e1776 - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return false; return idapython_convert_cli_completions( out_completions, @@ -1996,7 +1990,7 @@ bool idapython_plugin_t::_handle_file( { PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_executor_func(get_idaapi_attr(idaapi_executor_func_name)); - if ( py_executor_func == NULL ) + if ( py_executor_func == nullptr ) { errbuf->sprnt("Could not find %s.%s ?!", S_IDA_IDAAPI_MODNAME, idaapi_executor_func_name); return false; @@ -2007,7 +2001,7 @@ bool idapython_plugin_t::_handle_file( strrpl(script, '\\', '/'); newref_t py_script(IDAPyStr_FromUTF8(script)); - if ( globals == NULL ) + if ( globals == nullptr ) globals = _get_module_globals(); if ( globals != _get_module_globals() ) { @@ -2025,11 +2019,11 @@ bool idapython_plugin_t::_handle_file( py_script.o, globals, py_false.o, - NULL)); + nullptr)); // Failure at this point means the script was interrupted bool interrupted = false; - if ( PyW_GetError(errbuf) || py_ret == NULL ) + if ( PyW_GetError(errbuf) || py_ret == nullptr ) { PyErr_Clear(); if ( errbuf->empty() ) @@ -2043,7 +2037,7 @@ bool idapython_plugin_t::_handle_file( PyObject *ret_o; if ( want_tuple ) { - if ( second_res != NULL + if ( second_res != nullptr && PyTuple_Check(py_ret.o) && PyTuple_Size(py_ret.o) == 2 ) { @@ -2092,7 +2086,7 @@ bool idapython_plugin_t::_run_user_script() bool ok; { new_execution_t exec; - ok = _handle_file(path, /*globals*/ NULL, &errbuf); + ok = _handle_file(path, /*globals*/ nullptr, &errbuf); } if ( !ok ) warning("IDAPython: error executing '%s':\n%s", path, errbuf.c_str()); @@ -2114,7 +2108,7 @@ bool idapython_plugin_t::_check_python_dir() char filepath[QMAXPATH]; for ( size_t i=0; i < qnumber(script_files); i++ ) { - qmakepath(filepath, sizeof(filepath), idapython_dir.c_str(), script_files[i], NULL); + qmakepath(filepath, sizeof(filepath), idapython_dir.c_str(), script_files[i], nullptr); if ( !qfileexist(filepath) ) { warning("IDAPython: Missing required file: '%s'", script_files[i]); @@ -2172,7 +2166,7 @@ void idapython_plugin_t::_prepare_sys_path() bool idapython_plugin_t::_run_init_py() { char path[QMAXPATH]; - qmakepath(path, MAXSTR, idapython_dir.c_str(), S_INIT_PY, NULL); + qmakepath(path, MAXSTR, idapython_dir.c_str(), S_INIT_PY, nullptr); #ifdef __NT__ // if the current disk has no space (sic, the current directory, not the one @@ -2195,7 +2189,7 @@ bool idapython_plugin_t::_run_init_py() //lint -esym(429, fp) custodial pointer not freed or returned FILE *fp = qfopen(path, "rt"); - if ( fp == NULL ) + if ( fp == nullptr ) return false; file_janitor_t fpj(fp); qstring contents; @@ -2203,27 +2197,30 @@ bool idapython_plugin_t::_run_init_py() if ( fpsz == 0 ) return false; contents.resize(fpsz); - qfread(fp, contents.begin(), fpsz); + ssize_t effsz = qfread(fp, contents.begin(), fpsz); + if ( effsz <= 0 ) + return false; + contents.resize(effsz); newref_t code(my_CompileString(contents.c_str(), path, Py_file_input)); - if ( code == NULL ) + if ( code == nullptr ) return false; newref_t result(PyEval_EvalCode( PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), __main__globals, __main__globals)); - return result != NULL && !PyErr_Occurred(); + return result != nullptr && !PyErr_Occurred(); } //------------------------------------------------------------------------ // Note: The references are borrowed. No need to free them. PyObject *idapython_plugin_t::_get_module_globals(const char *modname) { - if ( modname == NULL || modname[0] == '\0' ) + if ( modname == nullptr || modname[0] == '\0' ) modname = S_MAIN; PyObject *module = PyImport_AddModule(modname); - return module == NULL ? NULL : PyModule_GetDict(module); + return module == nullptr ? nullptr : PyModule_GetDict(module); } //------------------------------------------------------------------------- @@ -2232,10 +2229,10 @@ PyObject *idapython_plugin_t::_get_module_globals_from_path_with_kind( const char *kind) { const char *fname = qbasename(path); - if ( fname != NULL ) + if ( fname != nullptr ) { const char *ext = get_file_ext(fname); - if ( ext == NULL ) + if ( ext == nullptr ) ext = tail(fname); else --ext; @@ -2247,7 +2244,7 @@ PyObject *idapython_plugin_t::_get_module_globals_from_path_with_kind( return _get_module_globals(modname.begin()); } } - return NULL; + return nullptr; } //------------------------------------------------------------------------- @@ -2271,7 +2268,7 @@ PyObject *idapython_plugin_t::_get_module_globals_from_path( } } } - return NULL; + return nullptr; } //------------------------------------------------------------------------- @@ -2293,7 +2290,7 @@ plugin_t PLUGIN = IDP_INTERFACE_VERSION, PLUGIN_FIX | PLUGIN_HIDE | PLUGIN_MULTI, // plugin flags init, // initialize - nullptr, // terminate. this pointer may be NULL. + nullptr, // terminate. this pointer may be nullptr. nullptr, // invoke plugin S_IDAPYTHON, // long comment about the plugin // it could appear in the status line @@ -2303,5 +2300,5 @@ plugin_t PLUGIN = // the preferred short name of the plugin S_IDAPYTHON, // the preferred hotkey to run the plugin - NULL + nullptr }; diff --git a/idapython.script b/idapython.script index c54abd5..26c9f38 100644 --- a/idapython.script +++ b/idapython.script @@ -28,7 +28,6 @@ global: idapython_show_wait_box; idapython_hide_wait_box; idcvar_to_pyvar; - is_api695_compat_enabled; get_plugin_instance; lookup_info_t_commit; lookup_info_t_del_by_py_view; diff --git a/idapython_implib.def b/idapython_implib.def index 2e149e8..50cb1d0 100644 --- a/idapython_implib.def +++ b/idapython_implib.def @@ -21,7 +21,6 @@ EXPORTS disable_script_timeout enable_extlang_python enable_python_cli - is_api695_compat_enabled get_plugin_instance idcvar_to_pyvar lookup_info_t_commit diff --git a/makefile b/makefile index 3559d69..4974555 100644 --- a/makefile +++ b/makefile @@ -43,15 +43,6 @@ endif BINS += $(IDAPYSWITCH_DEP) bins: $(BINS) -#---------------------------------------------------------------------- -# configurable variables for this makefile -BC695 = 1 -ifdef BC695 - BC695_CC_DEF = BC695 - BC695_SWIGFLAGS = -DBC695 - BC695_DEPLOYFLAGS = --bc695 -endif - #---------------------------------------------------------------------- # Build system hacks @@ -176,7 +167,6 @@ ifdef DO_IDAMAKE_SIMPLIFY QGENHOOKS = @echo $(call qcolor,genhooks) $< && # QGENIDAAPI = @echo $(call qcolor,genidaapi) $< && # QGENSWIGHEADER = @echo $(call qcolor,genswigheader) $< && # - QGEN_IDC_BC695 = @echo $(call qcolor,gen_idc_bc695) $< && # QINJECT_PYDOC = @echo $(call qcolor,inject_pydoc) $$< && # QINJECT_BASE_HOOKS_FLAGS = @echo $(call qcolor,inject_base_hooks_flags) $< && # QPATCH_CODEGEN = @echo $(call qcolor,patch_codegen) $$< && # @@ -204,7 +194,6 @@ DEPLOY_PYDIR=$(R)python/$(PYTHON_VERSION_MAJOR) DEPLOY_INIT_PY=$(DEPLOY_PYDIR)/init.py DEPLOY_IDC_PY=$(DEPLOY_PYDIR)/idc.py DEPLOY_IDAUTILS_PY=$(DEPLOY_PYDIR)/idautils.py -DEPLOY_IDC_BC695_PY=$(DEPLOY_PYDIR)/idc_bc695.py DEPLOY_IDAAPI_PY=$(DEPLOY_PYDIR)/idaapi.py DEPLOY_IDADEX_PY=$(DEPLOY_PYDIR)/idadex.py ifdef TESTABLE_BUILD @@ -212,23 +201,19 @@ ifdef TESTABLE_BUILD endif ifeq ($(OUT_OF_TREE_BUILD),) TEST_IDC=test_idc - IDC_BC695_IDC_SOURCE?=$(DEPLOY_PYDIR)/../../idc/idc.idc IDAT_PATH?=$(R)/idat else - IDC_BC695_IDC_SOURCE?=$(IDA_INSTALL)/idc/idc.idc IDAT_PATH?=$(IDA_INSTALL)/idat endif IDAT_CMD=TVHEADLESS=1 $(IDAT_PATH)$(SUFF64) -ifneq ($(OUT_OF_TREE_BUILD),) - # envvar HAS_HEXRAYS must have been set by build.py if needed -else - ifeq ($(BUILD_VD),1) - HAS_HEXRAYS=1 # force hexrays bindings - endif +# envvar HAS_HEXRAYS must have been set by build.py if needed +ifeq ($(OUT_OF_TREE_BUILD),) + HAS_HEXRAYS=1 # force hexrays bindings endif -# + +# determine SDK_SOURCES ifeq ($(OUT_OF_TREE_BUILD),) include ../../etc/sdk/sdk_files.mak SDK_SOURCES=$(sort $(foreach v,$(SDK_FILES),$(if $(findstring include/,$(v)),$(addprefix $(IDA_INCLUDE)/,$(notdir $(v)))))) @@ -236,7 +221,6 @@ ifeq ($(OUT_OF_TREE_BUILD),) SDK_SOURCES+=$(IDA_INCLUDE)/hexrays.hpp endif SDK_SOURCES+=$(IDA_INCLUDE)/lumina.hpp - SDK_SOURCES+=$(IDA_INCLUDE)/srclang.hpp else SDK_SOURCES=$(wildcard $(IDA_INCLUDE)/*.h) $(wildcard $(IDA_INCLUDE)/*.hpp) endif @@ -264,9 +248,7 @@ ifneq ($(HAS_HEXRAYS),) WITH_HEXRAYS_DEF = WITH_HEXRAYS WITH_HEXRAYS_CHKAPI=--with-hexrays HEXRAYS_MODNAME=hexrays - ifdef BC695 - CMP_API = 1 - endif + CMP_API = 1 # Warning: adding an empty HEXRAYS_MODNAME will lead to idaapy trying to load # a module called ida_. MODULES_NAMES += $(HEXRAYS_MODNAME) @@ -317,9 +299,7 @@ MODULES_NAMES += registry MODULES_NAMES += search MODULES_NAMES += segment MODULES_NAMES += segregs -ifdef TESTABLE_BUILD - MODULES_NAMES += srclang -endif +MODULES_NAMES += srclang MODULES_NAMES += strlist MODULES_NAMES += struct MODULES_NAMES += tryblks @@ -364,11 +344,10 @@ endif # three modules will share type information. But any other project's # types will not interfere or clash with the types in your module. DEF_TYPE_TABLE = SWIG_TYPE_TABLE=idaapi -SWIGFLAGS=$(_SWIGFLAGS) -Itools/typemaps-supplement $(SWIG_INCLUDES) $(addprefix -D,$(DEF_TYPE_TABLE)) $(BC695_SWIGFLAGS) +SWIGFLAGS=$(_SWIGFLAGS) -Itools/typemaps-supplement $(SWIG_INCLUDES) $(addprefix -D,$(DEF_TYPE_TABLE)) -DMISSED_BC695 pyfiles: $(DEPLOY_IDAUTILS_PY) \ $(DEPLOY_IDC_PY) \ - $(DEPLOY_IDC_BC695_PY) \ $(DEPLOY_INIT_PY) \ $(DEPLOY_IDAAPI_PY) \ $(DEPLOY_IDADEX_PY) \ @@ -487,9 +466,6 @@ $(DEPLOY_IDC_PY): python/idc.py $(DEPLOY_IDAUTILS_PY): python/idautils.py $(CP) $? $@ -$(DEPLOY_IDC_BC695_PY): $(IDC_BC695_IDC_SOURCE) python/idc.py tools/gen_idc_bc695.py - $(QGEN_IDC_BC695)$(PYTHON) tools/gen_idc_bc695.py --idc $(IDC_BC695_IDC_SOURCE) --output $@ - $(DEPLOY_IDAAPI_PY): python/idaapi.py tools/genidaapi.py $(IDAPYTHON_MODULES) $(QGENIDAAPI)$(PYTHON) tools/genidaapi.py -i $< -o $@ -m $(subst $(space),$(comma),$(MODULES_NAMES)) @@ -608,7 +584,7 @@ $(ST_PYW)/py_kernwin.hpp: pywraps/py_kernwin.hpp \ $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c UI_Hooks \ -x $(ST_PARSED_HEADERS) \ - -q "ui_notification_t::" \ + -q "ui_notification_t::" \ -m hookgenUI $(ST_PYW)/py_kernwin_viewhooks.hpp: pywraps/py_kernwin_viewhooks.hpp \ $(I)kernwin.hpp \ @@ -632,7 +608,7 @@ $(ST_PYW)/py_hexrays_hooks.hpp: pywraps/py_hexrays_hooks.hpp \ #---------------------------------------------------------------------- CFLAGS += $(PYTHON_CFLAGS) -CC_DEFS += $(BC695_CC_DEF) +CC_DEFS += MISSED_BC695 CC_DEFS += $(DEF_TYPE_TABLE) CC_DEFS += $(WITH_HEXRAYS_DEF) CC_DEFS += USE_STANDARD_FILE_FUNCTIONS @@ -727,16 +703,17 @@ define make-module-rules # files. # ../../bin/x86_linux_gcc/python/ida_$(1).py (note: dep. on .cpp. See note above.) - $(DEPLOY_PYDIR)/ida_$(1).py: $(ST_WRAP)/$(1).cpp $(PARSED_HEADERS_MARKER) $(call find-pydoc-patches-deps,$(1)) $(call find-patch-codegen-deps,$(1)) | tools/inject_pydoc.py tools/wrapper_utils.py + $(DEPLOY_PYDIR)/ida_$(1).py: $(ST_WRAP)/$(1).cpp tools/inject_pydoc.py $(PARSED_HEADERS_MARKER) $(call find-pydoc-patches-deps,$(1)) $(call find-patch-codegen-deps,$(1)) $(QINJECT_PYDOC)$(PYTHON) tools/inject_pydoc.py \ --xml-doc-directory $(ST_PARSED_HEADERS) \ --module $(1) \ --input $(ST_WRAP)/ida_$(1).py \ --interface $(ST_SWIG)/$(1).i \ --cpp-wrapper $(ST_WRAP)/$(1).cpp \ + --traces tools/collected_traces.txt \ + --cases tools/inject_pydoc_cases.txt \ --output $$@ \ - --epydoc-injections $(ST_WRAP)/ida_$(1).epydoc_injection \ - --verbose > $(ST_WRAP)/ida_$(1).pydoc_injection 2>&1 + --verbose > $(ST_WRAP)/ida_$(1).pydoc_injection # obj/x86_linux_gcc/swig/X.i $(ST_SWIG)/$(1).i: $(addprefix $(F),$(call find-pywraps-deps,$(1))) $(ADDITIONAL_PYWRAP_DEP_$(1)) swig/$(1).i $(ST_SWIG_HEADER) $(SWIG_IFACE_$(1):%=$(ST_SWIG)/%.i) $(ST_SWIG_HEADER) tools/deploy.py $(PARSED_HEADERS_MARKER) @@ -746,7 +723,6 @@ define make-module-rules --output $$@ \ --module $$(subst .i,,$$(notdir $$@)) \ $(MODULE_LIFECYCLE_$(1)) \ - $(BC695_DEPLOYFLAGS) \ --interface-dependencies=$(subst $(space),$(comma),$(SWIG_IFACE_$(1))) \ --xml-doc-directory $(ST_PARSED_HEADERS) @@ -877,7 +853,7 @@ else DUMPDOC_IS_64:=False endif -PYDOC_INJECTIONS_IDAT_CMD=$(USE_PYTHON2_ENVVAR) $(IDAT_CMD) $(BATCH_SWITCH) "-OIDAPython:AUTOIMPORT_COMPAT_IDA695=NO" -S"$< $@ $(ST_WRAP) $(DUMPDOC_IS_64)" -t -L$(F)dumpdoc.log >/dev/null +PYDOC_INJECTIONS_IDAT_CMD=$(USE_PYTHON2_ENVVAR) $(IDAT_CMD) $(BATCH_SWITCH) -S"$< $@ $(ST_WRAP) $(DUMPDOC_IS_64)" -t -L$(F)dumpdoc.log >/dev/null pydoc_injections: $(ST_PYDOC_INJECTIONS) $(ST_PYDOC_INJECTIONS): tools/dumpdoc.py $(IDAPYTHON_MODULES) $(PYTHON_BINARY_MODULES) ifeq ($(or $(__CODE_CHECKER__),$(NO_CMP_API),$(__ASAN__),$(IDAHOME),$(DEMO_OR_FREE)),) @@ -893,13 +869,11 @@ endif #---------------------------------------------------------------------- DOCS_MODULES=$(foreach mod,$(MODULES_NAMES),ida_$(mod)) -tools/docs/hrdoc.cfg: tools/docs/hrdoc.cfg.in - sed s/%IDA_MODULES%/"$(DOCS_MODULES)"/ < $^ > $@ - -# the html files are produced in docs\hr-html directory -docs: tools/docs/hrdoc.py tools/docs/hrdoc.cfg tools/docs/hrdoc.css +SORTED_DOCS_MODULES=$(sort $(DOCS_MODULES)) +docs: tools/docs/hrdoc.py tools/docs/hrdoc.css ifndef __NT__ - $(IDAT_CMD) -Stools/docs/hrdoc.py -t > /dev/null + $(IDAT_CMD) $(BATCH_SWITCH) -S"tools/docs/hrdoc.py -o docs/hr-html -m $(subst $(space),$(comma),$(SORTED_DOCS_MODULES)),idc,idautils -s idc,idautils -x ida_allins" -t > /dev/null +# $(IDAT_CMD) $(BATCH_SWITCH) -S"tools/docs/hrdoc.py -o docs/hr-html -m ida_pro,ida_kernwin -s idc,idautils -x ida_allins" -t > /dev/null # use this one for testing (faster) else $(R)ida -Stools/docs/hrdoc.py -t endif @@ -980,6 +954,7 @@ ifdef __CODE_CHECKER__ else EXAMPLES := $(wildcard examples/**/*.py) GEN_EXAMPLES_TOOL := tools/gen_examples_index.py + GEN_EXAMPLES_CFG := tools/gen_examples_index.cfg ST_EXAMPLES_INDEX_HTML := $(F)examples/index.html ST_EXAMPLES_INDEX_MD := $(F)examples/index.md @@ -992,13 +967,14 @@ else .PRECIOUS: $(ST_EXAMPLES_INDEX) - $(eval EXAMPLES_INDEX_CMD := $(PYTHON) $(GEN_EXAMPLES_TOOL) \ + $(eval EXAMPLES_INDEX_CMD := $(PYTHON) $(GEN_EXAMPLES_TOOL) write \ -t $(EXAMPLES_TEMPLATE) \ -e examples \ -o $(ST_EXAMPLES_INDEX) \ ) - $(ST_EXAMPLES_INDEX): $(GEN_EXAMPLES_TOOL) $(EXAMPLES_TEMPLATE) $(EXAMPLES) + $(ST_EXAMPLES_INDEX): $(GEN_EXAMPLES_TOOL) $(GEN_EXAMPLES_CFG) \ + $(EXAMPLES_TEMPLATE) $(EXAMPLES) -$(Q)if [ ! -d "$(F)examples" ] ; then mkdir -p 2>/dev/null $(F)examples ; fi $(QGEN_EXAMPLES_INDEX)$(EXAMPLES_INDEX_CMD) \ || echo FAILED: $(EXAMPLES_INDEX_CMD) diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index 79eebe0..e632929 100644 Binary files a/out_of_tree/parsed_notifications.zip and b/out_of_tree/parsed_notifications.zip differ diff --git a/pydoc_injections2.txt b/pydoc_injections2.txt index bbecc29..9a667bf 100644 --- a/pydoc_injections2.txt +++ b/pydoc_injections2.txt @@ -1,34 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) + auto_apply_tail(tail_ea, parent_ea) Plan to apply the tail_ea chunk to the parent - auto_apply_tail(tail_ea, parent_ea) - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) + auto_apply_type(caller, callee) Plan to apply the callee's type to the calling point. - auto_apply_type(caller, callee) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - auto_cancel(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -52,16 +72,16 @@ class auto_display_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -72,250 +92,255 @@ class auto_display_t(__builtin__.object) Help on function auto_get in module ida_auto: auto_get(*args) - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - auto_get(type, lowEA, highEA) -> ea_t - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) + auto_is_ok() -> bool Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) + auto_make_code(ea) Plan to make code. - auto_make_code(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) + auto_make_proc(ea) Plan to make code&function. - auto_make_proc(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_step in module ida_auto: auto_make_step(*args) + auto_make_step(ea1, ea2) -> bool Analyze one address in the specified range and return true. - auto_make_step(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: if processed anything. false means that there is nothing to - process in the specified range. + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) + auto_mark(ea, type) Put single address into a queue. Queues keep addresses sorted. - auto_mark(ea, type) - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) + auto_recreate_insn(ea) -> int Try to create instruction - auto_recreate_insn(ea) -> int - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) + auto_wait_range(ea1, ea2) -> ssize_t Process everything in the specified range and return true. - auto_wait_range(ea1, ea2) -> ssize_t - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - enable_auto(enable) -> bool - @param enable (C++: bool) - @return: old state + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state Help on function get_auto_display in module ida_auto: get_auto_display(*args) + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - get_auto_display(auto_display) -> bool - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) + is_auto_enabled() -> bool Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - peek_auto_queue(low_ea, type) -> ea_t - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - plan_and_wait(ea1, ea2, final_pass=True) -> int - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - @retval: 1 - ok - @retval: 0 - Ctrl-Break was pressed + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) + plan_ea(ea) Plan to perform reanalysis. - plan_ea(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) + plan_range(sEA, eEA) Plan to perform reanalysis. - plan_range(sEA, eEA) - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - reanalyze_callers(ea, noret) - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) + revert_ida_decisions(ea1, ea2) Delete all analysis info that IDA generated for for the given range. - revert_ida_decisions(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) + set_auto_state(new_state) -> atype_t Set current state of autoanalyzer. - set_auto_state(new_state) -> atype_t - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - show_addr(ea) - @param ea: - linear address to display (C++: ea_t) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) + show_auto(ea, type=AU_NONE) Change autoanalysis indicator value. - show_auto(ea, type=AU_NONE) - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" Help on class bitrange_t in module ida_bitrange: @@ -326,32 +351,39 @@ class bitrange_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __init__(self, *args) | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t - | bit_ofs: uint16 - | size_in_bits: uint16 + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __repr__ = _swig_repr(self) | @@ -359,91 +391,99 @@ class bitrange_t(__builtin__.object) | __str__(self) -> qstring | | apply_mask(self, *args) + | apply_mask(self, subrange) -> bool | Apply mask to a bitrange | - | apply_mask(self, subrange) -> bool - | @param subrange: range inside the main bitrange to keep After this - | operation the main bitrange will be truncated to have - | only the bits that are specified by subrange. - | Example: [off=8,nbits=4], subrange[off=1,nbits=2] => - | [off=9,nbits=2] (C++: const bitrange_t &) - | @return: success + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success | | bitoff(self, *args) + | bitoff(self) -> uint | Get offset of 1st bit. | | bitsize(self, *args) + | bitsize(self) -> uint | Get size of the value in bits. | | bytesize(self, *args) + | bytesize(self) -> uint | Size of the value in bytes. | | compare(self, *args) | compare(self, r) -> int - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | create_union(self, *args) + | create_union(self, r) | Create union of 2 ranges including the hole between them. | - | create_union(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | empty(self, *args) + | empty(self) -> bool | Is the bitrange empty? | | extract(self, *args) | extract(self, src, is_mf) -> bool - | src: void const * - | is_mf: bool + | + | @param src: void const * + | @param is_mf: bool | | has_common(self, *args) + | has_common(self, r) -> bool | Does have common bits with another bitrange? | - | has_common(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | init(self, *args) + | init(self, bit_ofs, size_in_bits) | Initialize offset and size to given values. | - | init(self, bit_ofs, size_in_bits) - | @param bit_ofs (C++: uint16) - | @param size_in_bits (C++: uint16) + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) | | inject(self, *args) | inject(self, dst, src, is_mf) -> bool - | dst: void * - | src: bytevec_t const & - | is_mf: bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool | | intersect(self, *args) + | intersect(self, r) | Intersect two ranges. | - | intersect(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | mask64(self, *args) + | mask64(self) -> uint64 | Convert to mask of 64 bits. | | reset(self, *args) + | reset(self) | Make the bitrange empty. | | shift_down(self, *args) + | shift_down(self, cnt) | Shift range down (left) | - | shift_down(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | shift_up(self, *args) + | shift_up(self, cnt) | Shift range up (right) | - | shift_up(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | sub(self, *args) + | sub(self, r) -> bool | Subtract a bitrange. | - | sub(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -463,6 +503,19 @@ class bitrange_t(__builtin__.object) | __swig_destroy__ = | delete_bitrange_t(self) +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + Help on function __walk_types_and_formats in module ida_bytes: __walk_types_and_formats(formats, type_action, format_action, installing) @@ -471,115 +524,115 @@ __walk_types_and_formats(formats, type_action, format_action, installing) Help on function add_byte in module ida_bytes: add_byte(*args) - Add a value to one byte of the program. This function works for wide - byte processors too. - add_byte(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - add_dword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - add_mapping(_from, to, size) -> bool - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success Help on function add_qword in module ida_bytes: add_qword(*args) - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - add_qword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - add_word(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: align_flag(*args) + align_flag() -> flags_t Get a flags_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - append_cmt(ea, str, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) + attach_custom_data_format(dtid, dfid) -> bool Attach the data format to the data type. - attach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - has already been attached to the data type + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: bin_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + bin_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: @@ -592,149 +645,182 @@ bin_search(*args) @param data: the prepared data to search for (see parse_binpat_str()) @param flags: combination of BIN_SEARCH_* flags @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: byte_flag(*args) + byte_flag() -> flags_t Get a flags_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) + bytesize(ea) -> int Get number of bytes required to store a byte at the given address. - bytesize(ea) -> int - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) + calc_def_align(ea, mina, maxa) -> int Calculate the default alignment exponent. - calc_def_align(ea, mina, maxa) -> int - @param ea: linear address (C++: ea_t) - @param mina: minimal possible alignment exponent. (C++: int) - @param maxa: minimal possible alignment exponent. (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: calc_dflags(*args) calc_dflags(f, force) -> flags_t - @param f (C++: flags_t) - @param force (C++: bool) + + @param f: flags_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) + calc_max_align(endea) -> int Calculate the maximal possible alignment exponent. - calc_max_align(endea) -> int - @param endea: end address of the alignment item. (C++: ea_t) - @return: a value in the 0..32 range + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - calc_max_item_end(ea, how=15) -> ea_t - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) + calc_min_align(length) -> int Calculate the minimal possible alignment exponent. - calc_min_align(length) -> int - @param length: size of the item in bytes. (C++: asize_t) - @return: a value in the 1..32 range + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - can_define_item(ea, length, flags) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @param length: (C++: asize_t) + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function char_flag in module ida_bytes: char_flag(*args) - see 'Bits: instruction operand types' + char_flag() -> flags_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) + chunk_size(ea) -> asize_t Get size of the contiguous address block containing 'ea'. - chunk_size(ea) -> asize_t - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) + chunk_start(ea) -> ea_t Get start of the contiguous address block containing 'ea'. - chunk_start(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) + clr_lzero(ea, n) -> bool Clear lzero bit. - clr_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function clr_op_type in module ida_bytes: clr_op_type(*args) - Remove operand representation information. (set operand representation - to be 'undefined') - clr_op_type(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function code_flag in module ida_bytes: code_flag(*args) - 'FF_CODE' + code_flag() -> flags_t + FF_CODE Help on class compiled_binpat_t in module ida_bytes: @@ -745,14 +831,16 @@ class compiled_binpat_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __init__(self, *args) | __init__(self) -> compiled_binpat_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __repr__ = _swig_repr(self) | @@ -772,16 +860,16 @@ class compiled_binpat_t(__builtin__.object) | list of weak references to the object (if defined) | | bytes - | compiled_binpat_t_bytes_get(self) -> bytevec_t * + | bytes | | encidx - | compiled_binpat_t_encidx_get(self) -> int + | encidx | | mask - | compiled_binpat_t_mask_get(self) -> bytevec_t * + | mask | | strlits - | compiled_binpat_t_strlits_get(self) -> rangevec_t + | strlits | | thisown | The membership flag @@ -801,15 +889,19 @@ class compiled_binpat_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> compiled_binpat_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> compiled_binpat_vec_t - | x: qvector< compiled_binpat_t > const & + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -819,33 +911,39 @@ class compiled_binpat_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: compiled_binpat_t const & + | + | @param i: size_t + | @param v: compiled_binpat_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: compiled_binpat_t const & + | + | Parameters + | ---------- + | x: compiled_binpat_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | at(self, *args) | at(self, _idx) -> compiled_binpat_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> compiled_binpat_t - | begin(self) -> compiled_binpat_t | | capacity(self, *args) | capacity(self) -> size_t @@ -858,78 +956,85 @@ class compiled_binpat_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> compiled_binpat_t - | end(self) -> compiled_binpat_t | | erase(self, *args) | erase(self, it) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator | + | @param it: qvector< compiled_binpat_t >::iterator | | erase(self, first, last) -> compiled_binpat_t - | first: qvector< compiled_binpat_t >::iterator - | last: qvector< compiled_binpat_t >::iterator + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator | | extract(self, *args) | extract(self) -> compiled_binpat_t | | find(self, *args) | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & | - | - | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & + | @param x: compiled_binpat_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=compiled_binpat_t()) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | has(self, *args) | has(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | inject(self, *args) | inject(self, s, len) - | s: compiled_binpat_t * - | len: size_t + | + | @param s: compiled_binpat_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator - | x: compiled_binpat_t const & + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: compiled_binpat_t const & | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< compiled_binpat_t > & + | + | @param r: qvector< compiled_binpat_t > & | | truncate(self, *args) | truncate(self) @@ -955,210 +1060,207 @@ class compiled_binpat_vec_t(__builtin__.object) Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) + create_16bit_data(ea, length) -> bool Convert to 16-bit quantity (take the byte size into account) - create_16bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) + create_32bit_data(ea, length) -> bool Convert to 32-bit quantity (take the byte size into account) - create_32bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) + create_byte(ea, length, force=False) -> bool Convert to byte. - create_byte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module ida_bytes: create_double(*args) + create_double(ea, length, force=False) -> bool Convert to double. - create_double(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) + create_dword(ea, length, force=False) -> bool Convert to dword. - create_dword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) + create_float(ea, length, force=False) -> bool Convert to float. - create_float(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) + create_oword(ea, length, force=False) -> bool Convert to octaword/xmm word. - create_oword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) + create_packed_real(ea, length, force=False) -> bool Convert to packed decimal real. - create_packed_real(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) + create_qword(ea, length, force=False) -> bool Convert to quadword. - create_qword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - create_strlit(start, len, strtype) -> bool - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success Help on function create_struct in module ida_bytes: create_struct(*args) + create_struct(ea, length, tid, force=False) -> bool Convert to struct. - create_struct(ea, length, tid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) + create_tbyte(ea, length, force=False) -> bool Convert to tbyte. - create_tbyte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) + create_word(ea, length, force=False) -> bool Convert to word. - create_word(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) + create_yword(ea, length, force=False) -> bool Convert to ymm word. - create_yword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) + create_zword(ea, length, force=False) -> bool Convert to zmm word. - create_zword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: cust_flag(*args) + cust_flag() -> flags_t Get a flags_t representing custom type data. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) - see 'Bits: instruction operand types' + custfmt_flag() -> flags_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -1171,13 +1273,14 @@ class data_format_t(__builtin__.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | props: int - | hotkey: char const * - | text_width: int32 + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -1185,7 +1288,10 @@ class data_format_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) + | is_present_in_menus(self) -> bool | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1197,28 +1303,28 @@ class data_format_t(__builtin__.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -1237,13 +1343,14 @@ class data_type_t(__builtin__.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | hotkey: char const * - | asm_keyword: char const * - | props: int + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1251,7 +1358,10 @@ class data_type_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) + | is_present_in_menus(self) -> bool | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1263,28 +1373,28 @@ class data_type_t(__builtin__.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -1295,473 +1405,480 @@ class data_type_t(__builtin__.object) Help on function dec_flag in module ida_bytes: dec_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + dec_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_items in module ida_bytes: del_items(*args) - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) + del_mapping(ea) Delete memory mapping range. - del_mapping(ea) - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) - Delete byte value from flags. The corresponding byte becomes - uninitialized. - del_value(ea) - @param ea (C++: ea_t) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - detach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - was not attached to the data type + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - disable_flags(start_ea, end_ea) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: double_flag(*args) + double_flag() -> flags_t Get a flags_t representing a double. Help on function dword_flag in module ida_bytes: dword_flag(*args) + dword_flag() -> flags_t Get a flags_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - enable_flags(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: enum_flag(*args) - see 'Bits: instruction operand types' + enum_flag() -> flags_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - equal_bytes(ea, image, mask, len, sense_case) -> bool - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == nullptr, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - @retval: 1 - equal - @retval: 0 - not equal + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) f_has_cmt(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) - Does the current byte have dummy (auto-generated, with special prefix) - name? - f_has_dummy_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) f_has_extra_cmts(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) + f_has_name(f, arg2) -> bool Does the current byte have non-trivial (non-dummy) name? - f_has_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) + f_has_user_name(F, arg2) -> bool Does the current byte have user-specified name? - f_has_user_name(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) + f_has_xref(f, arg2) -> bool Does the current byte have cross-references to it? - f_has_xref(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) - See 'is_align()' - f_is_align(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_align() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) - See 'is_byte()' - f_is_byte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_byte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) + f_is_code(F, arg2) -> bool Does flag denote start of an instruction? - f_is_code(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) - See 'is_custom()' - f_is_custom(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_custom() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) + f_is_data(F, arg2) -> bool Does flag denote start of data? - f_is_data(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) - See 'is_double()' - f_is_double(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_double() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) - See 'is_dword()' - f_is_dword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_dword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) - See 'is_float()' - f_is_float(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_float() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) + f_is_head(F, arg2) -> bool Does flag denote start of instruction OR data? - f_is_head(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) + f_is_not_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_not_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) - See 'is_oword()' - f_is_oword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_oword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) - See 'is_pack_real()' - f_is_pack_real(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_pack_real() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) - See 'is_qword()' - f_is_qword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_qword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) - See 'is_strlit()' - f_is_strlit(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_strlit() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) - See 'is_struct()' - f_is_struct(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_struct() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) + f_is_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) - See 'is_tbyte()' - f_is_tbyte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_tbyte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) - See 'is_word()' - f_is_word(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_word() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) - See 'is_yword()' - f_is_yword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_yword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - find_byte(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - find_byter(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) + find_custom_data_format(name) -> int Get id of a custom data format. - find_custom_data_format(name) -> int - @param name: name of the custom data format (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data format + @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) + find_custom_data_type(name) -> int Get id of a custom data type. - find_custom_data_type(name) -> int - @param name: name of the custom data type (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data type + @return: id or -1 Help on function float_flag in module ida_bytes: float_flag(*args) + float_flag() -> flags_t Get a flags_t representing a float. Help on function flt_flag in module ida_bytes: flt_flag(*args) - see 'Bits: instruction operand types' + flt_flag() -> flags_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) + free_chunk(bottom, size, step) -> ea_t Search for a hole in the addressing space of the program. - free_chunk(bottom, size, step) -> ea_t - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: (C++: ea_t) address to start searching + @param size: (C++: asize_t) size of desired block + @param step: (C++: int32) bit mask for the start of hole (0xF would align hole to a + paragraph). if 'step' is negative, the bottom address with be + aligned. otherwise the kernel will try to use it as is and align it + only when the hole is too small. + @return: start of the hole or BADADDR Help on function get_16bit in module ida_bytes: get_16bit(*args) + get_16bit(ea) -> uint32 Get 16bits of the program at 'ea'. - get_16bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) + get_32bit(ea) -> uint32 Get not more than 32bits of the program at 'ea'. - get_32bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) + get_64bit(ea) -> uint64 Get not more than 64bits of the program at 'ea'. - get_64bit(ea) -> uint64 - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) get_8bit(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint32 *) - @param nbit (C++: int *) + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - get_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: @@ -1770,455 +1887,454 @@ get_bytes_and_mask(*args) get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. Help on function get_cmt in module ida_bytes: get_cmt(*args) + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) + get_custom_data_format(dfid) -> data_format_t Get definition of a registered custom data format. - get_custom_data_format(dfid) -> data_format_t - @param dfid: data format id (C++: int) - @return: data format definition or nullptr + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) + get_custom_data_formats(out, dtid) -> int Get list of attached custom data formats for the specified data type. - get_custom_data_formats(out, dtid) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) + get_custom_data_type(dtid) -> data_type_t Get definition of a registered custom data type. - get_custom_data_type(dtid) -> data_type_t - @param dtid: data type id (C++: int) - @return: data type definition or nullptr + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int Get list of registered custom data type ids. - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) + get_data_elsize(ea, F, ti=None) -> asize_t Get size of data type specified in flags 'F'. - get_data_elsize(ea, F, ti=None) -> asize_t - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - get_data_value(v, ea, size) -> bool - @param v: pointer to the result. may be nullptr (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) + get_default_radix() -> int Get default base of number for the current processor. + + @return: 2, 8, 10, 16 Help on function get_dword in module ida_bytes: get_dword(*args) - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_dword(ea) -> uint32 - @param ea (C++: ea_t) + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) + get_enum_id(ea, n) -> enum_t Get enum id of 'enum' operand. - get_enum_id(ea, n) -> enum_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) + get_first_hidden_range() -> hidden_range_t Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: get_flags(*args) - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - get_flags(ea) -> flags_t - @param ea (C++: ea_t) + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: get_flags_by_size(*args) - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - get_flags_by_size(size) -> flags_t - @param size (C++: size_t) + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: get_flags_ex(*args) + get_flags_ex(ea, how) -> flags_t Get flags for the specified address, extended form. - get_flags_ex(ea, how) -> flags_t - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - get_full_data_elsize(ea, F, ti=None) -> asize_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: get_full_flags(*args) + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) + get_hidden_range(ea) -> hidden_range_t Get pointer to hidden range structure, in: linear address. - get_hidden_range(ea) -> hidden_range_t - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) + get_hidden_range_num(ea) -> int Get number of a hidden range. - get_hidden_range_num(ea) -> int - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) + get_hidden_range_qty() -> int Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: get_item_flag(*args) - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - get_item_flag(_from, n, ea, appzero) -> flags_t - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - get_item_size(ea) -> asize_t - @param ea (C++: ea_t) + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) + get_last_hidden_range() -> hidden_range_t Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) + get_mapping(n) -> bool Get memory mapping range by its number. - get_mapping(n) -> bool - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) + get_mappings_qty() -> size_t Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) - Determine maximum length of string literal.If the string literal has a - length prefix (e.g., STRTYPE_LEN2 has a two-byte length prefix), the - length of that prefix (i.e., 2) will be part of the returned value. - get_max_strlit_length(ea, strtype, options=0) -> size_t - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) + get_next_hidden_range(ea) -> hidden_range_t Get pointer to next hidden range. - get_next_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - + get_octet(ea, v, nbit) -> (int, int, int, int) + Get 8 bits of the program at 'ea'. The main usage of this function is to iterate + range of bytes. Here is an example: uint64 v; int nbit = 0; for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... + uchar byte = get_octet(&ea, &v, &nbit); + ... } + 'ea' is incremented each time when a new byte is read. In the above example, it + will be incremented in the first loop iteration. - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - get_octet(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ea: (C++: ea_t *) ea_t + @param v: (C++: uint64 *) uint64 + @param nbit: (C++: int *) int Help on function get_opinfo in module ida_bytes: get_opinfo(*args) + get_opinfo(buf, ea, n, flags) -> opinfo_t Get additional information about an operand representation. - get_opinfo(buf, ea, n, flags) -> opinfo_t - @param buf: buffer to receive the result. may not be nullptr (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: nullptr if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: get_optype_flags0(*args) + get_optype_flags0(F) -> flags_t Get flags for first operand. - get_optype_flags0(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) + get_optype_flags1(F) -> flags_t Get flags for second operand. - get_optype_flags1(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - get_original_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - get_original_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - get_original_word(ea) -> uint64 - @param ea (C++: ea_t) + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) + get_predef_insn_cmt(ins) -> str Get predefined comment. - get_predef_insn_cmt(ins) -> str - @param ins: current instruction information - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @return: size of comment or -1 + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) + get_prev_hidden_range(ea) -> hidden_range_t Get pointer to previous hidden range. - get_prev_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if previous hidden range - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - get_radix(F, n) -> int - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will always return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, and the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2227,169 +2343,166 @@ get_strlit_contents(*args) Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) + get_stroff_path(path, delta, ea, n) -> int Get struct path of operand. - get_stroff_path(path, delta, ea, n) -> int - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - get_word(ea) -> ushort - @param ea (C++: ea_t) + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - get_zero_ranges(zranges, range) -> bool - @param zranges: pointer to the return value. cannot be nullptr (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be nullptr - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) + getn_hidden_range(n) -> hidden_range_t Get pointer to hidden range structure, in: number of hidden range. - getn_hidden_range(n) -> hidden_range_t - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) + has_any_name(F) -> bool Does the current byte have any name? - has_any_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) + has_auto_name(F) -> bool Does the current byte have auto-generated (no special prefix) name? - has_auto_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) + has_cmt(F) -> bool Does the current byte have an indented comment? - has_cmt(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) - Does the current byte have dummy (auto-generated, with special prefix) - name? - has_dummy_name(F) -> bool - @param F (C++: flags_t) + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) + has_extra_cmts(F) -> bool Does the current byte have additional anterior or posterior lines? - has_extra_cmts(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_immd in module ida_bytes: has_immd(*args) + has_immd(F) -> bool Has immediate value? - has_immd(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_name in module ida_bytes: has_name(*args) + has_name(F) -> bool Does the current byte have non-trivial (non-dummy) name? - has_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) + has_user_name(F) -> bool Does the current byte have user-specified name? - has_user_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_value in module ida_bytes: has_value(*args) + has_value(F) -> bool Do flags contain byte value? - has_value(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_xref in module ida_bytes: has_xref(*args) + has_xref(F) -> bool Does the current byte have cross-references to it? - has_xref(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function hex_flag in module ida_bytes: hex_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + hex_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2412,22 +2525,22 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -2440,66 +2553,72 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2513,1119 +2632,1096 @@ class hidden_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function is_align in module ida_bytes: is_align(*args) - 'FF_ALIGN' - is_align(F) -> bool - @param F (C++: flags_t) + FF_ALIGN + + @param F: (C++: flags_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) + is_attached_custom_data_format(dtid, dfid) -> bool Is the custom data format attached to the custom data type? - is_attached_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id (C++: int) - @param dfid: data format id (C++: int) - @return: true or false + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - is_bnot(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) - 'FF_BYTE' - is_byte(F) -> bool - @param F (C++: flags_t) + FF_BYTE + + @param F: (C++: flags_t) Help on function is_char in module ida_bytes: is_char(*args) + is_char(F, n) -> bool is character constant? - is_char(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) + is_char0(F) -> bool Is the first operand character constant? (example: push 'a') - is_char0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_char1 in module ida_bytes: is_char1(*args) + is_char1(F) -> bool Is the second operand character constant? (example: mov al, 'a') - is_char1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_code in module ida_bytes: is_code(*args) + is_code(F) -> bool Does flag denote start of an instruction? - is_code(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) + is_custfmt(F, n) -> bool is custom data format? - is_custfmt(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) + is_custfmt0(F) -> bool Does the first operand use a custom data representation? - is_custfmt0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) + is_custfmt1(F) -> bool Does the second operand use a custom data representation? - is_custfmt1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) - 'FF_CUSTOM' - is_custom(F) -> bool - @param F (C++: flags_t) + FF_CUSTOM + + @param F: (C++: flags_t) Help on function is_data in module ida_bytes: is_data(*args) + is_data(F) -> bool Does flag denote start of data? - is_data(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) + is_defarg(F, n) -> bool is defined? - is_defarg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) - Is the first operand defined? Initially operand has no defined - representation. - is_defarg0(F) -> bool - @param F (C++: flags_t) + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) - Is the second operand defined? Initially operand has no defined - representation. - is_defarg1(F) -> bool - @param F (C++: flags_t) + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) - 'FF_DOUBLE' - is_double(F) -> bool - @param F (C++: flags_t) + FF_DOUBLE + + @param F: (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) - 'FF_DWORD' - is_dword(F) -> bool - @param F (C++: flags_t) + FF_DWORD + + @param F: (C++: flags_t) Help on function is_enum in module ida_bytes: is_enum(*args) + is_enum(F, n) -> bool is enum? - is_enum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) + is_enum0(F) -> bool Is the first operand a symbolic constant (enum member)? - is_enum0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) + is_enum1(F) -> bool Is the second operand a symbolic constant (enum member)? - is_enum1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) - 'FF_FLOAT' - is_float(F) -> bool - @param F (C++: flags_t) + FF_FLOAT + + @param F: (C++: flags_t) Help on function is_float0 in module ida_bytes: is_float0(*args) + is_float0(F) -> bool Is the first operand a floating point number? - is_float0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float1 in module ida_bytes: is_float1(*args) + is_float1(F) -> bool Is the second operand a floating point number? - is_float1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_flow in module ida_bytes: is_flow(*args) - Does the previous instruction exist and pass execution flow to the - current byte? - is_flow(F) -> bool - @param F (C++: flags_t) + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) + is_fltnum(F, n) -> bool is floating point number? - is_fltnum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) + is_forced_operand(ea, n) -> bool Is operand manually defined?. - is_forced_operand(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) + is_func(F) -> bool Is function start? - is_func(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_head in module ida_bytes: is_head(*args) + is_head(F) -> bool Does flag denote start of instruction OR data? - is_head(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - is_invsign(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) + is_loaded(ea) -> bool Does the specified address have a byte value (is initialized?) - is_loaded(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - is_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Display leading zeroes in operands. The global switch for the leading zeroes is + in idainfo::s_genflags The leading zeroes doesn't work if the octal numbers + start with 0 Display leading zeroes? (takes into account idainfo::s_genflags) + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function is_manual in module ida_bytes: is_manual(*args) - is forced operand? (use 'is_forced_operand()' ) - is_manual(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) + is_manual_insn(ea) -> bool Is the instruction overridden? - is_manual_insn(ea) -> bool - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) + is_mapped(ea) -> bool Is the specified address 'ea' present in the program? - is_mapped(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) + is_not_tail(F) -> bool Does flag denote tail byte? - is_not_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop in module ida_bytes: is_numop(*args) + is_numop(F, n) -> bool is number (bin, oct, dec, hex)? - is_numop(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) + is_numop0(F) -> bool Is the first operand a number (i.e. binary, octal, decimal or hex?) - is_numop0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) + is_numop1(F) -> bool Is the second operand a number (i.e. binary, octal, decimal or hex?) - is_numop1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off in module ida_bytes: is_off(*args) + is_off(F, n) -> bool is offset? - is_off(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) + is_off0(F) -> bool Is the first operand offset? (example: push offset xxx) - is_off0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off1 in module ida_bytes: is_off1(*args) + is_off1(F) -> bool Is the second operand offset? (example: mov ax, offset xxx) - is_off1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) - 'FF_OWORD' - is_oword(F) -> bool - @param F (C++: flags_t) + FF_OWORD + + @param F: (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) - 'FF_PACKREAL' - is_pack_real(F) -> bool - @param F (C++: flags_t) + FF_PACKREAL + + @param F: (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) - 'FF_QWORD' - is_qword(F) -> bool - @param F (C++: flags_t) + FF_QWORD + + @param F: (C++: flags_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) + is_same_data_type(F1, F2) -> bool Do the given flags specify the same data type? - is_same_data_type(F1, F2) -> bool - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags_t) + @param F2: (C++: flags_t) Help on function is_seg in module ida_bytes: is_seg(*args) + is_seg(F, n) -> bool is segment? - is_seg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) + is_seg0(F) -> bool Is the first operand segment selector? (example: push seg seg001) - is_seg0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) + is_seg1(F) -> bool Is the second operand segment selector? (example: mov dx, seg dseg) - is_seg1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) + is_stkvar(F, n) -> bool is stack variable? - is_stkvar(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) + is_stkvar0(F) -> bool Is the first operand a stack variable? - is_stkvar0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) + is_stkvar1(F) -> bool Is the second operand a stack variable? - is_stkvar1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) - 'FF_STRLIT' - is_strlit(F) -> bool - @param F (C++: flags_t) + FF_STRLIT + + @param F: (C++: flags_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) + is_stroff(F, n) -> bool is struct offset? - is_stroff(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) + is_stroff0(F) -> bool Is the first operand an offset within a struct? - is_stroff0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) + is_stroff1(F) -> bool Is the second operand an offset within a struct? - is_stroff1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) - 'FF_STRUCT' - is_struct(F) -> bool - @param F (C++: flags_t) + FF_STRUCT + + @param F: (C++: flags_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) + is_suspop(ea, F, n) -> bool is suspicious operand? - is_suspop(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) + is_tail(F) -> bool Does flag denote tail byte? - is_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) - 'FF_TBYTE' - is_tbyte(F) -> bool - @param F (C++: flags_t) + FF_TBYTE + + @param F: (C++: flags_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) + is_unknown(F) -> bool Does flag denote unexplored byte? - is_unknown(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int Is the item at 'ea' variable size?. - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @param itemsize: if not nullptr and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - @retval: 1 - varsize item - @retval: 0 - fixed item - @retval: -1 - error (bad data definition) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) - 'FF_WORD' - is_word(F) -> bool - @param F (C++: flags_t) + FF_WORD + + @param F: (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) - 'FF_YWORD' - is_yword(F) -> bool - @param F (C++: flags_t) + FF_YWORD + + @param F: (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) - 'FF_ZWORD' - is_zword(F) -> bool - @param F (C++: flags_t) + FF_ZWORD + + @param F: (C++: flags_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) + leading_zero_important(ea, n) -> bool Check if leading zeroes are important. - leading_zero_important(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) + nbits(ea) -> int Get number of bits in a byte at the given address. - nbits(ea) -> int - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) + next_chunk(ea) -> ea_t Get the first address of next contiguous chunk in the program. - next_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) + next_head(ea, maxea) -> ea_t Get start of next defined item. - next_head(ea, maxea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) + next_inited(ea, maxea) -> ea_t Find the next initialized address. - next_inited(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) - next_that(ea, maxea, callable) -> ea_t + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) - Similar to 'next_that()' , but will find the next address that is - unexplored. - next_unknown(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_visea in module ida_bytes: next_visea(*args) + next_visea(ea) -> ea_t Get next visible address. - next_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: num_flag(*args) + num_flag() -> flags_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: oct_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + oct_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function off_flag in module ida_bytes: off_flag(*args) - see 'Bits: instruction operand types' + off_flag() -> flags_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - op_adds_xrefs(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) + op_custfmt(ea, n, fid) -> bool Set custom data format for operand (fid-custom data format id) - op_custfmt(ea, n, fid) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - op_stroff(insn, n, path, path_len, delta) -> bool - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success Help on function oword_flag in module ida_bytes: oword_flag(*args) + oword_flag() -> flags_t Get a flags_t representing a octaword. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) + packreal_flag() -> flags_t Get a flags_t representing a packed decimal real. Help on function parse_binpat_str in module ida_bytes: parse_binpat_str(*args) - Convert user-specified binary string to internal representation. The - 'in' parameter contains space-separated tokens: - + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: - numbers (numeric base is determined by 'radix') - - if value of number fits a byte, it is considered as a byte - - if value of number fits a word, it is considered as 2 bytes - - if value of number fits a dword,it is considered as 4 bytes + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes - "..." string constants - 'x' single-character constants - ? variable bytes - Note that string constants are surrounded with double quotes.Here are - a few examples (assuming base 16): + Note that string constants are surrounded with double quotes. + Here are a few examples (assuming base 16): CD 21 - bytes 0xCD, 0x21 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) "Hello", 0 - the null terminated string "Hello" L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 - parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str - @param out: a vector of compiled binary patterns, for use with - bin_search2() (C++: compiled_binpat_vec_t *) - @param ea: linear address to convert for (the conversion depends on - the address, because the number of bits in a byte depend on - the segment type) (C++: ea_t) - in: char const * - @param radix: numeric base of numbers (8,10,16) (C++: int) - @param strlits_encoding: the target encoding into which the string - literals present in 'in', should be encoded. - Can be any from [1, get_encoding_qty() ), or - the special values PBSENC_* (C++: int) - @return: false either in case of parsing error, or if at least one - requested target encoding couldn't encode the string literals - present in "in". + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - patch_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) + prev_chunk(ea) -> ea_t Get the last address of previous contiguous chunk in the program. - prev_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) + prev_head(ea, minea) -> ea_t Get start of previous defined item. - prev_head(ea, minea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) + prev_inited(ea, minea) -> ea_t Find the previous initialized address. - prev_inited(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - prev_that(ea, minea, callable) -> ea_t - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - callable: PyObject * - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - prev_unknown(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_visea in module ida_bytes: prev_visea(*args) + prev_visea(ea) -> ea_t Get previous visible address. - prev_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - print_strlit_type(strtype, flags=0) -> PyObject * - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - put_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - put_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - put_dword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - put_qword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - put_word(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint64) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: qword_flag(*args) + qword_flag() -> flags_t Get a flags_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: @@ -3633,9 +3729,9 @@ Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) register_custom_data_format(py_df) -> int Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: @@ -3643,9 +3739,9 @@ Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) register_custom_data_type(py_dt) -> int Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3675,154 +3771,165 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) - Revert patched byte - revert_byte(ea) -> bool - @param ea (C++: ea_t) - @retval: true - byte was patched before and reverted now + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: seg_flag(*args) - see 'Bits: instruction operand types' + seg_flag() -> flags_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function set_immd in module ida_bytes: set_immd(*args) - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - set_immd(ea) -> bool - @param ea (C++: ea_t) + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) + set_lzero(ea, n) -> bool Set toggle lzero bit. - set_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) + set_op_type(ea, type, n) -> bool (internal function) change representation of operand(s). - set_op_type(ea, type, n) -> bool - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @retval: 1 - ok - @retval: 0 - failed (applied to a tail byte) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: stkvar_flag(*args) - see 'Bits: instruction operand types' + stkvar_flag() -> flags_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: strlit_flag(*args) + strlit_flag() -> flags_t Get a flags_t representing a string literal. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) - see 'Bits: instruction operand types' + stroff_flag() -> flags_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: stru_flag(*args) + stru_flag() -> flags_t Get a flags_t representing a struct. Help on function tbyte_flag in module ida_bytes: tbyte_flag(*args) + tbyte_flag() -> flags_t Get a flags_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) - Toggle binary negation of operand. also see 'is_bnot()' - toggle_bnot(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) toggle_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function toggle_sign in module ida_bytes: toggle_sign(*args) - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) unregister_custom_data_format(dfid) -> bool Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -3831,6 +3938,7 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) unregister_custom_data_type(dtid) -> bool Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -3843,30 +3951,31 @@ unregister_data_types_and_formats(formats) Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) - Update hidden range information in the database. You cannot use this - function to change the range boundaries - update_hidden_range(ha) -> bool - @param ha: range to update (C++: const hidden_range_t *) - @return: success + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) + use_mapping(ea) -> ea_t Translate address according to current mappings. - use_mapping(ea) -> ea_t - @param ea: address to translate (C++: ea_t) - @return: translated address + @param ea: (C++: ea_t) address to translate + @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) visit_patched_bytes(ea1, ea2, py_callable) -> int Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -3877,570 +3986,30 @@ visit_patched_bytes(*args) Help on function word_flag in module ida_bytes: word_flag(*args) + word_flag() -> flags_t Get a flags_t representing a word. Help on function yword_flag in module ida_bytes: yword_flag(*args) + yword_flag() -> flags_t Get a flags_t representing a ymm word. Help on function zword_flag in module ida_bytes: zword_flag(*args) + zword_flag() -> flags_t Get a flags_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings' window) -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(__builtin__.object) @@ -4452,117 +4021,128 @@ class DBG_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | dbg_bpt(self, *args) + | dbg_bpt(self, tid, bptea) -> int | A user defined breakpoint was reached. | - | dbg_bpt(self, tid, bptea) -> int - | @param tid (C++: thid_t) - | @param bptea (C++: ea_t) + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) + | dbg_bpt_changed(self, bptev_code, bpt) | Breakpoint has been changed. | - | dbg_bpt_changed(self, bptev_code, bpt) - | @param bptev_code: Breakpoint modification events (C++: int) - | @param bpt (C++: bpt_t *) + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exc_code: int - | exc_can_cont: bool - | exc_ea: ea_t - | exc_info: char const * + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) + | dbg_finished_loading_bpts(self) | Finished loading breakpoint info from idb. | | dbg_information(self, *args) | dbg_information(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) | dbg_library_unload(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_detach(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) + | dbg_request_error(self, failed_command, failed_dbg_notification) | An error occurred during the processing of a request. | - | dbg_request_error(self, failed_command, failed_dbg_notification) - | @param failed_command (C++: ui_notification_t) - | @param failed_dbg_notification (C++: dbg_notification_t) + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) | dbg_run_to(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) + | dbg_started_loading_bpts(self) | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) @@ -4575,35 +4155,39 @@ class DBG_Hooks(__builtin__.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) - | The process is now suspended.This event notification is also an - | asynchronous function result notification for 'suspend_process()' ! + | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) | dbg_thread_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) | dbg_thread_start(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) - | A step occurred (one instruction was executed). This event - | notification is only generated if step tracing is enabled. - | | dbg_trace(self, tid, ip) -> int - | @param tid: thread ID (C++: thid_t) - | @param ip: current instruction pointer. usually points after the - | executed instruction (C++: ea_t) - | @retval: 1 - do not log this trace event - | @retval: 0 - log it + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -4632,64 +4216,52 @@ class DBG_Hooks(__builtin__.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) add_path_mapping(src, dst) - @param src (C++: const char *) - @param dst (C++: const char *) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) add_virt_module(mod) -> bool - @param mod (C++: const modinfo_t *) + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4700,89 +4272,101 @@ class bpt_location_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) - | Lexically compare two breakpoint locations. Bpt locations are first - | compared based on type (i.e. 'BPLT_ABS' < 'BPLT_REL' ). 'BPLT_ABS' - | locations are compared based on their ea values. For all other - | location types, locations are first compared based on their string - | (path/filename/symbol), then their offset/lineno. - | | compare(self, r) -> int - | @param r (C++: const bpt_location_t &) + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) - | Get address ( 'BPLT_ABS' ) + | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) - | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) - | Get line number ( 'BPLT_SRC' ) + | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) - | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) - | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) + | set_abs_bpt(self, a) | Specify an absolute address location. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) + | set_rel_bpt(self, mod, _offset) | Specify a relative address location. | - | set_rel_bpt(self, mod, _offset) - | @param mod (C++: const char *) - | @param _offset (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) + | set_src_bpt(self, fn, _lineno) | Specify a source level location. | - | set_src_bpt(self, fn, _lineno) - | @param fn (C++: const char *) - | @param _lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) + | set_sym_bpt(self, _symbol, _offset=0) | Specify a symbolic location. | - | set_sym_bpt(self, _symbol, _offset=0) - | @param _symbol (C++: const char *) - | @param _offset (C++: uval_t) + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) - | Get symbol name ( 'BPLT_SYM' ) + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) + | type(self) -> bpt_loctype_t | Get bpt type. | | ---------------------------------------------------------------------- @@ -4795,13 +4379,13 @@ class bpt_location_t(__builtin__.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4825,95 +4409,113 @@ class bpt_t(__builtin__.object) | __repr__ = _swig_repr(self) | | badbpt(self, *args) + | badbpt(self) -> bool | Failed to write bpt to process memory? | | enabled(self, *args) + | enabled(self) -> bool | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) + | get_size(self) -> int | Get bpt size. | | is_absbpt(self, *args) + | is_absbpt(self) -> bool | Is absolute address breakpoint? | | is_active(self, *args) + | is_active(self) -> bool | Written completely to process? | | is_compiled(self, *args) + | is_compiled(self) -> bool | Condition has been compiled? | | is_hwbpt(self, *args) + | is_hwbpt(self) -> bool | Is hardware breakpoint? | | is_inactive(self, *args) + | is_inactive(self) -> bool | Not written to process at all? | | is_low_level(self, *args) + | is_low_level(self) -> bool | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) + | is_page_bpt(self) -> bool | Page breakpoint? | | is_partially_active(self, *args) + | is_partially_active(self) -> bool | Written partially to process? | | is_relbpt(self, *args) + | is_relbpt(self) -> bool | Is relative address breakpoint? | | is_srcbpt(self, *args) + | is_srcbpt(self) -> bool | Is source level breakpoint? | | is_symbpt(self, *args) + | is_symbpt(self) -> bool | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) + | is_tracemodebpt(self) -> bool | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) + | is_traceoffbpt(self) -> bool | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) + | is_traceonbpt(self) -> bool | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) + | listbpt(self) -> bool | Include in the bpt list? | | set_abs_bpt(self, *args) + | set_abs_bpt(self, a) | Set bpt location to an absolute address. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) + | set_rel_bpt(self, mod, o) | Set bpt location to a relative address. | - | set_rel_bpt(self, mod, o) - | @param mod (C++: const char *) - | @param o (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) + | set_src_bpt(self, fn, lineno) | Set bpt location to a source line. | - | set_src_bpt(self, fn, lineno) - | @param fn (C++: const char *) - | @param lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) + | set_sym_bpt(self, sym, o) | Set bpt location to a symbol. | - | set_sym_bpt(self, sym, o) - | @param sym (C++: const char *) - | @param o (C++: uval_t) + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) + | set_trace_action(self, enable, trace_types) -> bool | Configure tracing options. | - | set_trace_action(self, enable, trace_types) -> bool - | @param enable (C++: bool) - | @param trace_types (C++: int) + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4924,47 +4526,50 @@ class bpt_t(__builtin__.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -4981,11 +4586,14 @@ class bpt_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> bpt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | x: qvector< bpt_t > const & + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -4997,19 +4605,20 @@ class bpt_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bpt_t const & + | + | @param i: size_t + | @param v: bpt_t const & | | at(self, *args) | at(self, _idx) -> bpt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) | capacity(self) -> size_t @@ -5022,16 +4631,16 @@ class bpt_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) | erase(self, it) -> bpt_t - | it: qvector< bpt_t >::iterator | + | @param it: qvector< bpt_t >::iterator | | erase(self, first, last) -> bpt_t - | first: qvector< bpt_t >::iterator - | last: qvector< bpt_t >::iterator + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) | extract(self) -> bpt_t @@ -5041,47 +4650,56 @@ class bpt_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=bpt_t()) - | x: bpt_t const & + | + | @param x: bpt_t const & | | inject(self, *args) | inject(self, s, len) - | s: bpt_t * - | len: size_t + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> bpt_t - | it: qvector< bpt_t >::iterator - | x: bpt_t const & + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bpt_t const & + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bpt_t const & | + | @param _newsize: size_t + | @param x: bpt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bpt_t > & + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) | truncate(self) @@ -5104,6 +4722,39 @@ class bpt_vec_t(__builtin__.object) | __swig_destroy__ = | delete_bpt_vec_t(self) +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(__builtin__.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_bptaddrs_t(self) + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) @@ -5112,158 +4763,163 @@ bring_debugger_to_front(*args) Help on function check_bpt in module ida_dbg: check_bpt(*args) + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) + choose_trace_file() -> str Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) + clear_requests_queue() Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) collect_stack_trace(tid, trace) -> bool - @param tid (C++: thid_t) - @param trace (C++: call_stack_t *) + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * Create a source code view. - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_bpt_tev(tid, ea, bp) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_call_tev(tid, caller, callee) - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_debug_event(event) - @param event (C++: debug_event_t *) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_many_tevs(new_tevs) -> bool - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_ret_tev(tid, ret_insn, return_to) - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_tev(type, tid, address) - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - dbg_add_thread(tid) - @param tid (C++: thid_t) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - @param start_ea (C++: ea_t) - @param end_ea (C++: ea_t) - @param data (C++: const compiled_binpat_vec_t &) - @param srch_flags (C++: int) + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: @@ -5275,77 +4931,82 @@ dbg_can_query(*args) - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_del_thread(tid) - @param tid (C++: thid_t) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) dbg_is_loaded() -> bool Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) del_bptgrp(name) -> bool - @param name (C++: const char *) + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) del_virt_module(base) -> bool - @param base (C++: const ea_t) + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5356,11 +5017,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5386,43 +5048,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) enable_manual_regions(enable) - @param enable (C++: bool) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5433,7 +5112,8 @@ class eval_ctx_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t - | _ea: ea_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5447,7 +5127,7 @@ class eval_ctx_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5461,92 +5141,97 @@ class eval_ctx_t(__builtin__.object) Help on function exist_bpt in module ida_dbg: exist_bpt(*args) + exist_bpt(ea) -> bool Does a breakpoint exist at the given location? - exist_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - find_bpt(bptloc, bpt) -> bool - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_bpt(ea, bpt) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) get_bpt_group(bptloc) -> str - @param bptloc (C++: const bpt_location_t &) + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) - Helper function for 'bpt_location_t' . - get_bptloc_string(i) -> char const * - @param i (C++: int) + + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: @@ -5561,38 +5246,42 @@ get_current_source_line(*args) Help on function get_current_thread in module ida_dbg: get_current_thread(*args) - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: get_dbg_byte(*args) + get_dbg_byte(x, ea) -> bool Get one byte of the debugged process memory. - get_dbg_byte(x, ea) -> bool - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success + @param x: (C++: uint32 *) pointer to byte value + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) get_dbg_memory_info(ranges) -> int - @param ranges (C++: meminfo_vec_t *) + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - get_dbg_reg_info(regname, ri) -> bool - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) + get_debug_event() -> debug_event_t Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5604,263 +5293,281 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) get_first_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) get_global_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) get_grp_bpts(bpts, grp_name) -> ssize_t - @param bpts (C++: bpt_vec_t *) - @param grp_name (C++: const char *) + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param output: bpts : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_mem(n, memmap) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_result(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - get_insn_tev_reg_val(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) get_local_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) get_local_vars(prov, ea, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param out (C++: source_items_t *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) get_manual_regions(ranges) Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) get_module_info(ea, modinfo) -> bool - @param ea (C++: ea_t) - @param modinfo (C++: modinfo_t *) + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) get_next_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: get_process_options(*args) - Get process options. Any of the arguments may be NULL + get_process_options() + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) get_reg_vals(tid, clsmask, values) -> int - @param tid (C++: thid_t) - @param clsmask (C++: int) - @param values (C++: regval_t *) + + @param tid: thid_t + @param clsmask: int + @param values: regval_t * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request Help on function get_running_request in module ida_dbg: get_running_request(*args) - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request Help on function get_sp_val in module ida_dbg: get_sp_val(*args) - Get value of the SP register for the current thread. Requires a - suspended debugger. + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) get_srcinfo_provider(name) -> srcinfo_provider_t * - @param name (C++: const char *) + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - get_tev_event(n, d) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_tev_info(n, tev_info) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) + get_tev_memory_info(n, mi) -> bool Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - get_tev_memory_info(n, mi) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -5882,92 +5589,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace Help on function get_trace_dynamic_register_set in module ida_dbg: get_trace_dynamic_register_set(*args) + get_trace_dynamic_register_set(idaregs) Get dynamic register set of current trace. - get_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t *) + @param idaregs: (C++: dynamic_register_set_t *) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) + get_trace_platform() -> char const * Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - getn_bpt(n, bpt) -> bool - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) + graph_trace() -> bool Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) handle_debug_event(ev, rqflags) -> int - @param ev (C++: const debug_event_t *) - @param rqflags (C++: int) + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -5980,45 +5694,48 @@ internal_get_sreg_base(*args) internal_get_sreg_base(tid, sreg_value) -> ea_t Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) internal_ioctl(fn, buf, poutbuf, poutsize) -> int - @param fn (C++: int) - @param buf (C++: const void *) - @param poutbuf (C++: void **) - @param poutsize (C++: ssize_t *) + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - invalidate_dbg_state(dbginv) -> int - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - invalidate_dbgmem_contents(ea, size) - @param ea (C++: ea_t) - @param size (C++: asize_t) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6028,105 +5745,117 @@ is_bblk_trace_enabled(*args) Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) + is_debugger_memory(ea) -> bool Is the address mapped to debugger memory? - is_debugger_memory(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) + is_debugger_on() -> bool Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) - Get current state of instruction tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - is_reg_custom(regname) -> bool - @param regname (C++: const char *) + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_float(regname) -> bool - @param regname (C++: const char *) + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_integer(regname) -> bool - @param regname (C++: const char *) + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) + is_request_running() -> bool Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) list_bptgrps(bptgrps) -> size_t - @param bptgrps (C++: qstrvec_t *) + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param output: bptgrps list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6156,7 +5885,7 @@ class memreg_info_t(__builtin__.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6176,11 +5905,14 @@ class memreg_infos_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> memreg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | x: qvector< memreg_info_t > const & + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6192,19 +5924,20 @@ class memreg_infos_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: memreg_info_t const & + | + | @param i: size_t + | @param v: memreg_info_t const & | | at(self, *args) | at(self, _idx) -> memreg_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -6217,16 +5950,16 @@ class memreg_infos_t(__builtin__.object) | | end(self, *args) | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) | erase(self, it) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator | + | @param it: qvector< memreg_info_t >::iterator | | erase(self, first, last) -> memreg_info_t - | first: qvector< memreg_info_t >::iterator - | last: qvector< memreg_info_t >::iterator + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) | extract(self) -> memreg_info_t @@ -6236,47 +5969,56 @@ class memreg_infos_t(__builtin__.object) | | grow(self, *args) | grow(self, x=memreg_info_t()) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: memreg_info_t * - | len: size_t + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator - | x: memreg_info_t const & + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: memreg_info_t const & | + | @param _newsize: size_t + | @param x: memreg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< memreg_info_t > & + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) | truncate(self) @@ -6299,94 +6041,109 @@ class memreg_infos_t(__builtin__.object) | __swig_destroy__ = | delete_memreg_infos_t(self) -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) - move_bpt_to_grp(bpt, grp_name) - Sets new group for the breakpoint +set_bpt_group(*args) + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) read_dbg_memory(ea, buffer, size) -> ssize_t - @param ea (C++: ea_t) - @param buffer (C++: void *) - @param size (C++: size_t) + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) rename_bptgrp(old_name, new_name) -> bool - @param old_name (C++: const char *) - @param new_name (C++: const char *) + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + Post an add_bpt(const bpt_t &) request. + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t request_add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) - Post an 'attach_process()' request. - request_attach_process(pid, event_id) -> int - @param pid (C++: pid_t) - @param event_id (C++: int) + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) - Post a 'clear_trace()' request. + request_clear_trace() + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) - Post a 'del_bpt(ea_t)' request. - request_del_bpt(ea) -> bool - @param ea (C++: ea_t) + Post a del_bpt(const bpt_location_t &) request. + @param ea: ea_t request_del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) - Post a 'detach_process()' request. + request_detach_process() -> bool + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6397,11 +6154,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) request_disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t request_disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6422,223 +6180,233 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) request_enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) request_enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool request_enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) request_enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) request_enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) request_enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) - Post an 'exit_process()' request. + request_exit_process() -> bool + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) - Post a 'resume_thread()' request. - request_resume_thread(tid) -> int - @param tid (C++: thid_t) + Post a resume_thread() request. + + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) - Post a 'run_to()' request. - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) - Post a 'select_thread()' request. - request_select_thread(tid) -> bool - @param tid (C++: thid_t) + Post a select_thread() request. + + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) - Post a 'set_bblk_trace_options()' request. - request_set_bblk_trace_options(options) - @param options (C++: int) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) - Post a 'set_func_trace_options()' request. - request_set_func_trace_options(options) - @param options (C++: int) + Post a set_func_trace_options() request. + + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) - Post a 'set_insn_trace_options()' request. - request_set_insn_trace_options(options) - @param options (C++: int) + Post a set_insn_trace_options() request. + + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) - Post a 'set_reg_val()' request. - request_set_reg_val(regname, o) -> PyObject * - @param regname (C++: const char *) - o: PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) - Post a 'set_resume_mode()' request. - request_set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) - Post a 'set_step_trace_options()' request. - request_set_step_trace_options(options) - @param options (C++: int) + Post a set_step_trace_options() request. + + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) - Post a 'start_process()' request. - request_start_process(path=None, args=None, sdir=None) -> int - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) - Post a 'step_into()' request. + request_step_into() -> bool + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) - Post a 'step_over()' request. + request_step_over() -> bool + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) - Post a 'step_until_ret()' request. + request_step_until_ret() -> bool + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) - Post a 'suspend_process()' request. + request_suspend_process() -> bool + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) - Post a 'suspend_thread()' request. - request_suspend_thread(tid) -> int - @param tid (C++: thid_t) + Post a suspend_thread() request. + + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6654,214 +6422,205 @@ send_dbg_command(command) Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - set_bblk_trace_options(options) - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) - set_bpt_group(bpt, grp_name) - @param bpt (C++: bpt_t &) - @param grp_name (C++: const char *) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) set_bptloc_group(bptloc, grp_name) -> bool - @param bptloc (C++: const bpt_location_t &) - @param grp_name (C++: const char *) + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) - Helper function for 'bpt_location_t' . - set_bptloc_string(s) -> int - @param s (C++: const char *) + + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_func_trace_options(options) - @param options (C++: int) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) + set_highlight_trace_options(hilight, color, diff) Set highlight trace parameters. - set_highlight_trace_options(hilight, color, diff) - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_insn_trace_options(options) - @param options (C++: int) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) set_manual_regions(ranges) - @param ranges (C++: const meminfo_vec_t *) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - set_process_options(path, args, sdir, host, _pass, port) - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - pass: char const * - @param port (C++: int) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - set_process_state(newstate, p_thid, dbginv) -> int - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - set_reg_val(regname, o) -> PyObject - @param regname (C++: const char *) - o: PyObject * + @param regname: char const * + @param o: PyObject * - set_reg_val(tid, regidx, o) -> PyObject * - tid: thid_t - regidx: int - o: PyObject * + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) - How to resume the application. Set resume mode but do not resume - process. - set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - set_trace_base_address(ea) - @param ea (C++: ea_t) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) Help on function set_trace_dynamic_register_set in module ida_dbg: set_trace_dynamic_register_set(*args) + set_trace_dynamic_register_set(idaregs) Set dynamic register set of current trace. - set_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t &) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) + set_trace_platform(platform) Set platform name of current trace. - set_trace_platform(platform) - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - set_trace_size(size) -> bool - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -6896,74 +6655,79 @@ srcdbg_step_until_ret(*args) Help on function start_process in module ida_dbg: start_process(*args) - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -6987,10 +6751,10 @@ class tev_info_reg_t(__builtin__.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -7023,16 +6787,16 @@ class tev_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -7049,8 +6813,9 @@ class tev_reg_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | _reg_idx: int - | _value: uint64 + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7064,13 +6829,13 @@ class tev_reg_value_t(__builtin__.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -7087,11 +6852,14 @@ class tev_reg_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_reg_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | x: qvector< tev_reg_value_t > const & + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7103,19 +6871,20 @@ class tev_reg_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tev_reg_value_t const & + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | at(self, *args) | at(self, _idx) -> tev_reg_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7128,16 +6897,16 @@ class tev_reg_values_t(__builtin__.object) | | end(self, *args) | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) | erase(self, it) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator | + | @param it: qvector< tev_reg_value_t >::iterator | | erase(self, first, last) -> tev_reg_value_t - | first: qvector< tev_reg_value_t >::iterator - | last: qvector< tev_reg_value_t >::iterator + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) | extract(self) -> tev_reg_value_t @@ -7147,47 +6916,56 @@ class tev_reg_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_reg_value_t()) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & | | inject(self, *args) | inject(self, s, len) - | s: tev_reg_value_t * - | len: size_t + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator - | x: tev_reg_value_t const & + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_reg_value_t const & | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tev_reg_value_t > & + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) | truncate(self) @@ -7219,11 +6997,14 @@ class tevinforeg_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_info_reg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | x: qvector< tev_info_reg_t > const & + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7235,19 +7016,20 @@ class tevinforeg_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tev_info_reg_t const & + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | at(self, *args) | at(self, _idx) -> tev_info_reg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7260,16 +7042,16 @@ class tevinforeg_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) | erase(self, it) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator | + | @param it: qvector< tev_info_reg_t >::iterator | | erase(self, first, last) -> tev_info_reg_t - | first: qvector< tev_info_reg_t >::iterator - | last: qvector< tev_info_reg_t >::iterator + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) | extract(self) -> tev_info_reg_t @@ -7279,47 +7061,56 @@ class tevinforeg_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_info_reg_t()) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & | | inject(self, *args) | inject(self, s, len) - | s: tev_info_reg_t * - | len: size_t + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator - | x: tev_info_reg_t const & + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_info_reg_t const & | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tev_info_reg_t > & + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) | truncate(self) @@ -7345,417 +7136,74 @@ class tevinforeg_vec_t(__builtin__.object) Help on function update_bpt in module ida_dbg: update_bpt(*args) - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - update_bpt(bpt) -> bool - @param bpt (C++: const bpt_t *) + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - @param ea (C++: ea_t) - py_buf: PyObject * - @param size (C++: size_t) + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -specific options for basic block tracing (see -'set_bblk_trace_options()' ) - -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: +Module "ida_dirtree"s docstring: """ +Types involved in grouping of item into folders. -ida_dbg.DOPT_FAST_STEP -""" -prevent debugger memory refreshes when single-stepping -""" +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -specific options for function tracing (see 'set_func_trace_options()' -) - -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -specific options for instruction tracing (see -'set_insn_trace_options()' ) - -instruction tracing will log new instructions even when IP doesn't -change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions (not previously logged) -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: class direntry_t(__builtin__.object) @@ -7765,20 +7213,24 @@ class direntry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __init__(self, *args) | __init__(self, i=BADIDX, d=False) -> direntry_t - | i: uval_t - | d: bool + | + | @param i: uval_t + | @param d: bool | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __repr__ = _swig_repr(self) | @@ -7795,10 +7247,10 @@ class direntry_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | direntry_t_idx_get(self) -> uval_t + | idx | | isdir - | direntry_t_isdir_get(self) -> bool + | isdir | | thisown | The membership flag @@ -7822,15 +7274,19 @@ class direntry_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> direntry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> direntry_vec_t - | x: qvector< direntry_t > const & + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7840,33 +7296,39 @@ class direntry_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: direntry_t const & + | + | @param i: size_t + | @param v: direntry_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: direntry_t const & + | + | Parameters + | ---------- + | x: direntry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | at(self, *args) | at(self, _idx) -> direntry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> direntry_t - | begin(self) -> direntry_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7879,78 +7341,85 @@ class direntry_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> direntry_t - | end(self) -> direntry_t | | erase(self, *args) | erase(self, it) -> direntry_t - | it: qvector< direntry_t >::iterator | + | @param it: qvector< direntry_t >::iterator | | erase(self, first, last) -> direntry_t - | first: qvector< direntry_t >::iterator - | last: qvector< direntry_t >::iterator + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator | | extract(self, *args) | extract(self) -> direntry_t | | find(self, *args) | find(self, x) -> direntry_t - | x: direntry_t const & | - | - | find(self, x) -> direntry_t - | x: direntry_t const & + | @param x: direntry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=direntry_t()) - | x: direntry_t const & + | + | @param x: direntry_t const & | | has(self, *args) | has(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | inject(self, *args) | inject(self, s, len) - | s: direntry_t * - | len: size_t + | + | @param s: direntry_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> direntry_t - | it: qvector< direntry_t >::iterator - | x: direntry_t const & + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: direntry_t const & + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: direntry_t const & | + | @param _newsize: size_t + | @param x: direntry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< direntry_t > & + | + | @param r: qvector< direntry_t > & | | truncate(self, *args) | truncate(self) @@ -7984,43 +7453,47 @@ class dirspec_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, f=0) -> dirspec_t - | nm: char const * - | f: uint32 + | + | @param nm: char const * + | @param f: uint32 | | __repr__ = _swig_repr(self) | | get_attrs(self, *args) | get_attrs(self, inode) -> qstring - | @param inode (C++: inode_t) + | + | @param inode: inode_t | | get_inode(self, *args) + | get_inode(self, dirpath, name) -> inode_t | get the entry inode in the specified directory | - | get_inode(self, diridx, name) -> inode_t - | @param diridx (C++: diridx_t) - | @param name (C++: const char *) - | @return: the entry inode + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode | | get_name(self, *args) + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool | get the entry name. for example, the structure name | - | get_name(self, inode) -> bool - | @param inode (C++: inode_t) - | @return: false if the entry does not exist. + | @param out: (C++: qstring *) may be nullptr; in this case get_name can be used to validate an + | inode. + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. | | rename_inode(self, *args) + | rename_inode(self, inode, newname) -> bool | rename the entry | - | rename_inode(self, inode, newname) -> bool - | @param inode (C++: inode_t) - | @param newname (C++: const char *) - | @return: success + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success | | unlink_inode(self, *args) - | event: unlinked an inode - | | unlink_inode(self, inode) - | @param inode (C++: inode_t) + | + | @param inode: (C++: inode_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8032,10 +7505,13 @@ class dirspec_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | dirspec_t_flags_get(self) -> uint32 + | flags + | + | id + | id | | nodename - | dirspec_t_nodename_get(self) -> qstring * + | id | | thisown | The membership flag @@ -8059,38 +7535,46 @@ class dirtree_cursor_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __init__(self, *args) | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t - | _parent: diridx_t - | _rank: size_t + | + | @param _parent: diridx_t + | @param _rank: size_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | is_root_cursor(self, *args) | is_root_cursor(self) -> bool @@ -8117,10 +7601,10 @@ class dirtree_cursor_t(__builtin__.object) | list of weak references to the object (if defined) | | parent - | dirtree_cursor_t_parent_get(self) -> diridx_t + | parent | | rank - | dirtree_cursor_t_rank_get(self) -> size_t + | rank | | thisown | The membership flag @@ -8145,15 +7629,19 @@ class dirtree_cursor_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> dirtree_cursor_vec_t - | x: qvector< dirtree_cursor_t > const & + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8163,33 +7651,39 @@ class dirtree_cursor_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) | capacity(self) -> size_t @@ -8202,78 +7696,85 @@ class dirtree_cursor_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) | extract(self) -> dirtree_cursor_t | | find(self, *args) | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) | truncate(self) @@ -8318,10 +7819,10 @@ class dirtree_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | cursor - | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | cursor | | pattern - | dirtree_iterator_t_pattern_get(self) -> qstring * + | pattern | | thisown | The membership flag @@ -8366,11 +7867,13 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8380,31 +7883,37 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) | capacity(self) -> size_t @@ -8417,78 +7926,85 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | end(self, *args) | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) | extract(self) -> dirtree_cursor_t | | find(self, *args) | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) | truncate(self) @@ -8511,208 +8027,241 @@ class dirtree_t(__builtin__.object) | | __init__(self, *args) | __init__(self, ds) -> dirtree_t - | ds: dirspec_t * + | + | @param ds: dirspec_t * | | __repr__ = _swig_repr(self) | | change_rank(self, *args) - | Change ordering rank of an item.All subdirectories go before all file - | entries. - | | change_rank(self, path, rank_delta) -> dterr_t - | @param path: path to the item (C++: const char *) - | @param rank_delta (C++: ssize_t) - | @return: dterr_t error code + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param delta: the amount of the change. positive numbers mean to move down in + | the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. | | chdir(self, *args) + | chdir(self, path) -> dterr_t | Change current directory | - | chdir(self, path) -> dterr_t - | @param path: new current directory (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param directory: entry + | @return: cursor corresponding to the directory entry | | findfirst(self, *args) + | findfirst(self, ff, pattern) -> bool | Start iterating over files in a directory | - | findfirst(self, ff, pattern) -> bool - | @param ff: directory iterator. it will be initialized by the function - | (C++: dirtree_iterator_t *) - | @param pattern: pattern to search for (C++: const char *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success | | findnext(self, *args) + | findnext(self, ff) -> bool | Continue iterating over files in a directory | - | findnext(self, ff) -> bool - | @param ff: directory iterator (C++: dirtree_iterator_t *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success | | get_abspath(self, *args) - | Get absolute path pointed by the cursorsee also 'resolve_cursor()' - | | get_abspath(self, cursor) -> qstring - | @param cursor (C++: const dirtree_cursor_t &) - | @return: path. empty path means wrong directory part of RELPATH + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. | + | @param cursor: dirtree_cursor_t const & | + | @return: path. empty path means wrong directory part of RELPATH | get_abspath(self, relpath) -> qstring - | relpath: char const * - | @return: path. empty path means wrong directory part of RELPATH + | + | @param relpath: char const * | | get_dir_size(self, *args) + | get_dir_size(self, diridx) -> ssize_t | Get dir size | - | get_dir_size(self, diridx) -> ssize_t - | @param diridx: directory index (C++: diridx_t) - | @return: number of entries under this directory; if error, return -1 + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 | | get_entry_attrs(self, *args) + | get_entry_attrs(self, de) -> qstring | Get entry attributes | - | get_entry_attrs(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @return: name | | get_entry_name(self, *args) + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring | Get entry name | - | get_entry_name(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name | - | get_nodename(self, *args) + | get_id(self, *args) + | get_id(self) -> char const * | netnode name | + | get_nodename = get_id(self, *args) + | | get_parent_cursor(self, *args) + | get_parent_cursor(self, cursor) -> dirtree_cursor_t | Get parent cursor. | - | get_parent_cursor(self, cursor) -> dirtree_cursor_t - | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) - | @return: cursor's parent + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent | | get_rank(self, *args) + | get_rank(self, diridx, de) -> ssize_t | Get ordering rank of an item. | - | get_rank(self, diridx, de) -> ssize_t - | @param diridx: index of the parent directory (C++: diridx_t) - | @param de: directory entry (C++: const direntry_t &) - | @return: number in a range of [0..n) where n is the number of entries - | in the parent directory. -1 if error + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error | | getcwd(self, *args) + | getcwd(self) -> qstring | Get current directory + | + | @return: the current working directory | | isdir(self, *args) - | Is a directory? - | | isdir(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a directory | + | @param de: direntry_t const & | | isdir(self, path) -> bool - | path: char const * - | @return: true if the specified path is a directory + | + | @param path: char const * | | isfile(self, *args) - | Is a file? - | | isfile(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a file | + | @param de: direntry_t const & | | isfile(self, path) -> bool - | path: char const * - | @return: true if the specified path is a file + | + | @param path: char const * | | link(self, *args) - | Add a file item into a directory. - | | link(self, path) -> dterr_t - | @param path: path to item to add to a directory (C++: const char *) - | @return: dterr_t error code + | Add an inode into the current directory | + | @param path: char const * | + | @return: dterr_t error code | link(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | load(self, *args) - | Load the tree structure from the netnode. If dirspec_t::nodename is - | empty, the operation will be considered a success. In addition, - | calling 'load()' more than once will not do anything, and will be - | considered a success.dirspec_t::nodename. + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. | | mkdir(self, *args) + | mkdir(self, path) -> dterr_t | Create a directory. | - | mkdir(self, path) -> dterr_t - | @param path: directory to create (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code | | notify_dirtree(self, *args) + | notify_dirtree(self, added, inode) | Notify dirtree about a change of an inode. | - | notify_dirtree(self, added, inode) - | @param added (C++: bool) - | @param inode: inode in question (C++: inode_t) + | @param add: are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question | | rename(self, *args) - | Rename a directory entry.This function can also rename the item - | | rename(self, _from, to) -> dterr_t - | @param _from: source path (C++: const char *) - | @param to: destination path (C++: const char *) - | @return: dterr_t error code + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item | | resolve_cursor(self, *args) - | Resolve cursorsee also 'get_abspath()' - | | resolve_cursor(self, cursor) -> direntry_t - | @param cursor: to analyze (C++: const dirtree_cursor_t &) - | @return: directory entry; if the cursor is bad, the resolved entry - | will be invalid. + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() | | resolve_path(self, *args) + | resolve_path(self, path) -> direntry_t | Resolve path | - | resolve_path(self, path) -> direntry_t - | @param path: to analyze (C++: const char *) - | @return: directory entry + | @param path: (C++: const char *) to analyze + | @return: directory entry | | rmdir(self, *args) + | rmdir(self, path) -> dterr_t | Remove a directory. | - | rmdir(self, path) -> dterr_t - | @param path: directory to delete (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code | | save(self, *args) - | Save the tree structure to the netnode.dirspec_t::nodename. + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. | - | set_nodename(self, *args) - | set_nodename(self, nm) - | @param nm (C++: const char *) + | set_id(self, *args) + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) + | + | traverse(self, *args) + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned | | unlink(self, *args) - | Remove a file item from a directory. - | | unlink(self, path) -> dterr_t - | @param path: path to item remove from a directory (C++: const char *) - | @return: dterr_t error code + | Remove an inode from the current directory | + | @param path: char const * | + | @return: dterr_t error code | unlink(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | ---------------------------------------------------------------------- | Static methods defined here: | | errstr(*args) | errstr(err) -> char const * - | err: enum dterr_t + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8736,21 +8285,76 @@ Help on function dirtree_t_errstr in module ida_dirtree: dirtree_t_errstr(*args) dirtree_t_errstr(err) -> char const * - err: enum dterr_t + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(__builtin__.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | visit(self, *args) + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirtree_visitor_t(self) Help on function get_std_dirtree in module ida_dirtree: get_std_dirtree(*args) get_std_dirtree(id) -> dirtree_t - @param id (C++: dirtree_id_t) + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" Help on function choose_ioport_device2 in module ida_diskio: choose_ioport_device2(*args) choose_ioport_device2(_device, file, parse_params) -> bool - @param _device (C++: qstring *) - @param file (C++: const char *) - @param parse_params (C++: choose_ioport_parser_t *) + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * Help on class choose_ioport_parser_t in module ida_diskio: @@ -8763,17 +8367,19 @@ class choose_ioport_parser_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> choose_ioport_parser_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | parse(self, *args) | parse(self, param, line) -> bool - | @param param (C++: qstring *) - | @param line (C++: const char *) - | @retval: true - and fill PARAM with a displayed string - | @retval: false - and empty PARAM to skip the current device - | @retval: false - and fill PARAM with an error message + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8796,69 +8402,70 @@ class choose_ioport_parser_t(__builtin__.object) Help on function close_linput in module ida_diskio: close_linput(*args) + close_linput(li) Close loader input. - close_linput(li) - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) + create_bytearray_linput(s) -> linput_t * Trivial memory linput. - create_bytearray_linput(s) -> linput_t * - s: qstring const & + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) + create_generic_linput(gl) -> linput_t * Create a generic linput - create_generic_linput(gl) -> linput_t * - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - create_memory_linput(start, size) -> linput_t * - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) eclose(fp) - @param fp (C++: FILE *) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) enumerate_files(path, fname, callback) -> PyObject * Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero Help on function enumerate_files2 in module ida_diskio: enumerate_files2(*args) enumerate_files2(answer, answer_size, path, fname, fv) -> int - @param answer (C++: char *) - @param answer_size (C++: size_t) - @param path (C++: const char *) - @param fname (C++: const char *) - @param fv (C++: file_enumerator_t &) + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & Help on class file_enumerator_t in module ida_diskio: @@ -8871,13 +8478,15 @@ class file_enumerator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> file_enumerator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_file(self, *args) | visit_file(self, file) -> int - | @param file (C++: const char *) + | + | @param file: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8900,58 +8509,58 @@ class file_enumerator_t(__builtin__.object) Help on function fopenA in module ida_diskio: fopenA(*args) + fopenA(file) -> FILE * Open a file for append in text mode, deny none. - fopenA(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) + fopenM(file) -> FILE * Open a file for read/write in binary mode, deny write. - fopenM(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) + fopenRB(file) -> FILE * Open a file for read in binary mode, deny none. - fopenRB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) + fopenRT(file) -> FILE * Open a file for read in text mode, deny none. - fopenRT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - fopenWB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - fopenWT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8966,9 +8575,10 @@ class generic_linput_t(__builtin__.object) | | read(self, *args) | read(self, off, buffer, nbytes) -> ssize_t - | @param off (C++: qoff64_t) - | @param buffer (C++: void *) - | @param nbytes (C++: size_t) + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8980,10 +8590,10 @@ class generic_linput_t(__builtin__.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8997,64 +8607,64 @@ class generic_linput_t(__builtin__.object) Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - get_ida_subdirs(subdir, flags=0) -> int - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) + get_linput_type(li) -> linput_type_t Get linput type. - get_linput_type(li) -> linput_type_t - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - get_special_folder(csidl) -> str - @param csidl (C++: int) + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) + get_user_idadir() -> char const * Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - getsysfile(filename, subdir) -> str - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - idadir(subdir) -> char const * - @param subdir (C++: const char *) + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * Help on class ioports_fallback_t in module ida_diskio: @@ -9067,14 +8677,16 @@ class ioports_fallback_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ioports_fallback_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | handle(self, *args) | handle(self, ports, line) -> bool - | @param ports (C++: const ioports_t &) - | @param line (C++: const char *) + | + | @param ports: ioports_t const & + | @param line: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9097,191 +8709,174 @@ class ioports_fallback_t(__builtin__.object) Help on function open_linput in module ida_diskio: open_linput(*args) + open_linput(file, remote) -> linput_t * Open loader input. - open_linput(file, remote) -> linput_t * - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - qlgetz(li, fpos) -> str - @param li (C++: linput_t *) - @param fpos (C++: int64) + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) Help on function read_ioports2 in module ida_diskio: read_ioports2(*args) read_ioports2(ports, device, file, callback=None) -> ssize_t - @param ports (C++: ioports_t *) - @param device (C++: qstring *) - @param file (C++: const char *) - @param callback (C++: ioports_fallback_t *) + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) + get_entry_forwarder(ord) -> str Get forwarder name for the entry point by its ordinal. - get_entry_forwarder(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) + get_entry_qty() -> size_t Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) + set_entry_forwarder(ord, name, flags=0) -> bool Set forwarder name for ordinal. - set_entry_forwarder(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC +Enums and bitfields are represented as enum_t.""" -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - add_enum(idx, name, flag) -> enum_t - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int Add member to enum type. - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) + del_enum_member(id, value, serial, bmask) -> bool Delete member of enum type. - del_enum_member(id, value, serial, bmask) -> bool - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -9294,17 +8889,18 @@ class enum_member_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_enum_member(self, *args) + | visit_enum_member(self, cid, value) -> int | Implements action to take when enum member is visited. | - | visit_enum_member(self, cid, value) -> int - | @param cid (C++: const_t) - | @param value (C++: uval_t) - | @return: nonzero to stop the iteration + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9327,489 +8923,472 @@ class enum_member_visitor_t(__builtin__.object) Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) + for_all_enum_members(id, cv) -> int Visit all members of a given enum. - for_all_enum_members(id, cv) -> int - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) get_bmask_cmt(id, bmask, repeatable) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) get_bmask_name(id, bmask) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - get_enum_member(id, value, serial, mask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) + get_enum_member_cmt(id, repeatable) -> str Get enum member's comment. - get_enum_member_cmt(id, repeatable) -> str - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) + get_enum_member_name(id) -> str Get name of an enum member by const_t. - get_enum_member_name(id) -> str - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) + get_enum_member_serial(cid) -> uchar Get serial number of an enum member. - get_enum_member_serial(cid) -> uchar - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) + get_enum_name2(id, flags=0) -> str Get name of enum - get_enum_name2(id, flags=0) -> str - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) + get_enum_type_ordinal(id) -> int32 Get corresponding type ordinal number. - get_enum_type_ordinal(id) -> int32 - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) get_first_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) get_last_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) + is_enum_fromtil(id) -> bool Does enum come from type library? - is_enum_fromtil(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) + is_enum_hidden(id) -> bool Is enum collapsed? - is_enum_hidden(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) + is_ghost_enum(id) -> bool Is a ghost copy of a local type? - is_ghost_enum(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) + is_one_bit_mask(mask) -> bool Is bitmask one bit? - is_one_bit_mask(mask) -> bool - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) set_bmask_name(id, bmask, name) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param name (C++: const char *) + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) + set_enum_fromtil(id, fromtil) -> bool Specify that enum comes from a type library. - set_enum_fromtil(id, fromtil) -> bool - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) + set_enum_ghost(id, ghost) -> bool Specify that enum is a ghost copy of a local type. - set_enum_ghost(id, ghost) -> bool - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) + set_enum_hidden(id, hidden) -> bool Collapse enum. - set_enum_hidden(id, hidden) -> bool - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) + set_enum_type_ordinal(id, ord) Set corresponding type ordinal number. - set_enum_type_ordinal(id, ord) - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(__builtin__.object) @@ -9835,284 +9414,283 @@ class _IdcFunction(__builtin__.object) Help on function add_idc_class in module ida_expr: add_idc_class(*args) + add_idc_class(name, super=None) -> idc_class_t * Create a new IDC class. - add_idc_class(name, super=None) -> idc_class_t * - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: add_idc_func(name, fp, args, defvals=(), flags=0) Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param defvals: default argument values (optional) - @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) + add_idc_gvar(name) -> idc_value_t Add global IDC variable. - add_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) compile_idc_file(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str Compile text with IDC statements. - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - @retval: true - ok - @retval: false - error, see errbuf + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) compile_idc_text(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) + copy_idcv(dst, src) -> error_t Copy 'src' to 'dst'. For idc objects only a reference is copied. - copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) - Create a variable reference. Currently only references to global - variables can be created. - create_idcv_ref(ref, v) -> bool - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - deep_copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean + Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) + del_idcv_attr(obj, attr) -> error_t Delete an object attribute. - del_idcv_attr(obj, attr) -> error_t - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) - Dereference a 'VT_REF' variable. - deref_idcv(v, vref_flags) -> idc_value_t - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) + eval_expr(rv, where, line) -> str Compile and calculate an expression. - eval_expr(rv, where, line) -> str - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - @retval: true - ok - @retval: false - error, see errbuf + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - eval_idc_expr(rv, where, line) -> str - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - line: char const * + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) + exec_idc_script(result, path, func, args, argsnum) -> str Compile and execute IDC function(s) from file. - exec_idc_script(result, path, func, args, argsnum) -> str - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - @retval: true - ok - @retval: false - error, see errbuf + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) + exec_system_script(file, complain_if_no_file=True) -> bool Compile and execute "main" function from system file. - exec_system_script(file, complain_if_no_file=True) -> bool - @param file: file name with IDC function(s). The file will be searched - using get_idc_filename() . (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - @retval: 1 - ok, file is compiled and executed - @retval: 0 - failure, compilation or execution error, warning is - displayed + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) + find_idc_class(name) -> idc_class_t * Find an existing IDC class by its name. - find_idc_class(name) -> idc_class_t * - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) find_idc_func(prefix, n=0) -> str - @param prefix (C++: const char *) - @param n (C++: int) + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) + find_idc_gvar(name) -> idc_value_t Find an existing global IDC variable by its name. - find_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) first_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - free_idcv(v) - @param v (C++: idc_value_t *) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and system directories. - get_idc_filename(file) -> str - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t Get an object attribute. - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) + get_idcv_class_name(obj) -> str Retrieves the IDC object class name. - get_idcv_class_name(obj) -> str - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t Get slice. - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -10125,7 +9703,8 @@ class highlighter_cbs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -10137,13 +9716,15 @@ class highlighter_cbs_t(__builtin__.object) | | set_block_state(self, *args) | set_block_state(self, arg0) - | arg0: int32 + | + | @param arg0: int32 | | set_style(self, *args) | set_style(self, arg0, arg1, arg2) - | arg0: int32 - | arg1: int32 - | arg2: enum syntax_highlight_style + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10172,7 +9753,9 @@ class idc_global_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | n: char const * + | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -10186,13 +9769,13 @@ class idc_global_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -10209,15 +9792,16 @@ class idc_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t - | n: sval_t | + | @param n: sval_t | | __init__(self, r) -> idc_value_t - | r: idc_value_t const & | + | @param r: idc_value_t const & | | __init__(self, _str) -> idc_value_t - | _str: char const * + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -10225,60 +9809,72 @@ class idc_value_t(__builtin__.object) | _create_empty_string(self) | | c_str(self, *args) - | 'VT_STR' + | c_str(self) -> char const * + | VT_STR | | clear(self, *args) - | See 'free_idcv()' + | clear(self) + | See free_idcv() | | create_empty_string(self, *args) | create_empty_string(self) | | is_convertible(self, *args) - | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and - | 'VT_STR' . + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) + | is_integral(self) -> bool | Does value represent a whole number? | | is_zero(self, *args) + | is_zero(self) -> bool | Does value represent the integer 0? | | qstr(self, *args) - | 'VT_STR' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & | | set_float(self, *args) | set_float(self, f) - | f: fpvalue_t const & + | + | @param f: fpvalue_t const & | | set_int64(self, *args) | set_int64(self, v) - | v: int64 + | + | @param v: int64 | | set_long(self, *args) | set_long(self, v) - | v: sval_t + | + | @param v: sval_t | | set_pvoid(self, *args) | set_pvoid(self, p) - | p: void * + | + | @param p: void * | | set_string(self, *args) | set_string(self, _str, len) - | _str: char const * - | len: size_t | + | @param _str: char const * + | @param len: size_t | | set_string(self, _str) - | _str: char const * + | + | @param _str: char const * | | swap(self, *args) + | swap(self, v) | Set this = r and v = this. | - | swap(self, v) - | @param v (C++: idc_value_t &) + | @param v: (C++: idc_value_t &) | | u_str(self, *args) - | 'VT_STR' + | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10290,25 +9886,25 @@ class idc_value_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | idc_value_t_e_get(self) -> fpvalue_t + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -10316,7 +9912,7 @@ class idc_value_t(__builtin__.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -10333,11 +9929,14 @@ class idc_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> idc_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | x: qvector< idc_value_t > const & + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -10349,19 +9948,20 @@ class idc_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: idc_value_t const & + | + | @param i: size_t + | @param v: idc_value_t const & | | at(self, *args) | at(self, _idx) -> idc_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) | capacity(self) -> size_t @@ -10374,16 +9974,16 @@ class idc_values_t(__builtin__.object) | | end(self, *args) | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) | erase(self, it) -> idc_value_t - | it: qvector< idc_value_t >::iterator | + | @param it: qvector< idc_value_t >::iterator | | erase(self, first, last) -> idc_value_t - | first: qvector< idc_value_t >::iterator - | last: qvector< idc_value_t >::iterator + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) | extract(self) -> idc_value_t @@ -10393,47 +9993,56 @@ class idc_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=idc_value_t()) - | x: idc_value_t const & + | + | @param x: idc_value_t const & | | inject(self, *args) | inject(self, s, len) - | s: idc_value_t * - | len: size_t + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> idc_value_t - | it: qvector< idc_value_t >::iterator - | x: idc_value_t const & + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: idc_value_t const & + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: idc_value_t const & | + | @param _newsize: size_t + | @param x: idc_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< idc_value_t > & + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) | truncate(self) @@ -10459,111 +10068,113 @@ class idc_values_t(__builtin__.object) Help on function idcv_float in module ida_expr: idcv_float(*args) + idcv_float(v) -> error_t Convert IDC variable to a floating point. - idcv_float(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) + idcv_int64(v) -> error_t Convert IDC variable to a 64bit number. - idcv_int64(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) + idcv_long(v) -> error_t Convert IDC variable to a long (32/64bit) number. - idcv_long(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) + idcv_num(v) -> error_t Convert IDC variable to a long number. - idcv_num(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) + idcv_object(v, icls=None) -> error_t Create an IDC object. The original value of 'v' is discarded (freed). - idcv_object(v, icls=None) -> error_t - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) + idcv_string(v) -> error_t Convert IDC variable to a text string. - idcv_string(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) last_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - move_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) next_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) prev_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) - Get text representation of 'idc_value_t' . - print_idcv(v, name=None, indent=0) -> str - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - name: char const * - fp_ptr: size_t - args: char const * - defvals: idc_values_t const & - flags: int + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -10574,222 +10185,135 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) pyw_convert_defvals(out, py_seq) -> bool - out: idc_values_t * - py_seq: PyObject * + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) pyw_register_idc_func(name, args, py_fp) -> size_t - name: char const * - args: char const * - py_fp: PyObject * + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) pyw_unregister_idc_func(ctxptr) -> bool - ctxptr: size_t + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - set_header_path(path, add) -> bool - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - @retval: true - success - @retval: false - no memory + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t Set an object attribute. - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t Set slice. - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - in: idc_value_t const & - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) + swap_idcvs(v1, v2) Swap 2 variables. - swap_idcvs(v1, v2) - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - throw_idc_exception(r, desc) -> error_t - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - calc_fixup_size(type) -> int - @param type (C++: fixup_type_t) - @retval: -1 - means error + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) + contains_fixups(ea, size) -> bool Does the specified address range contain any fixup information? - contains_fixups(ea, size) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) + exists_fixup(source) -> bool Check that a fixup exists at the given address. - exists_fixup(source) -> bool - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) + find_custom_fixup(name) -> fixup_type_t Get id of a custom fixup handler. - find_custom_fixup(name) -> fixup_type_t - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10800,13 +10324,16 @@ class fixup_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | type_: fixup_type_t - | flags_: uint32 + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | | calc_size(self, *args) - | 'calc_fixup_size()' + | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) | clr_extdef(self) @@ -10815,41 +10342,48 @@ class fixup_data_t(__builtin__.object) | clr_unused(self) | | get(self, *args) - | 'get_fixup()' - | | get(self, source) -> bool - | @param source (C++: ea_t) + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) - | Get base of fixup.The target is calculated as 'get_base()' + off. - | 'get_base()' + off 'FIXUPF_REL' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) - | 'get_fixup_desc()' - | | get_desc(self, source) -> char const * - | @param source (C++: ea_t) + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) - | Fixup flags 'Fixup flags' . + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) - | 'get_fixup_handler()' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) - | Fixup type 'Types of fixups' . + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) - | 'get_fixup_value()' - | | get_value(self, ea) -> uval_t - | @param ea (C++: ea_t) + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) + | has_base(self) -> bool | Is fixup relative? | | is_custom(self, *args) - | 'is_fixup_custom()' + | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) | is_extdef(self) -> bool @@ -10858,48 +10392,52 @@ class fixup_data_t(__builtin__.object) | is_unused(self) -> bool | | patch_value(self, *args) - | 'patch_fixup_value()' - | | patch_value(self, ea) -> bool - | @param ea (C++: ea_t) + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) - | 'set_fixup()' - | | set(self, source) - | @param source (C++: ea_t) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) - | Set base of fixup. The target should be set before a call of this - | function. - | | set_base(self, new_base) - | @param new_base (C++: ea_t) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) | set_extdef(self) | | set_sel(self, *args) | set_sel(self, seg) - | @param seg (C++: const segment_t *) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) - | Set selector of fixup to the target. The target should be set before a - | call of this function. + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) | set_type(self, type_) - | @param type_ (C++: fixup_type_t) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) | set_type_and_flags(self, type_, flags_=0) - | @param type_ (C++: fixup_type_t) - | @param flags_ (C++: uint32) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) | set_unused(self) | | was_created(self, *args) + | was_created(self) -> bool | Is fixup artificial? | | ---------------------------------------------------------------------- @@ -10912,13 +10450,13 @@ class fixup_data_t(__builtin__.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10951,10 +10489,10 @@ class fixup_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10968,203 +10506,192 @@ class fixup_info_t(__builtin__.object) Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - gen_fix_fixups(_from, to, size) - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) + get_first_fixup_ea() -> ea_t Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR Help on function get_fixup in module ida_fixup: get_fixup(*args) + get_fixup(fd, source) -> bool Get fixup information. - get_fixup(fd, source) -> bool - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) + get_fixup_desc(source, fd) -> str Get FIXUP description comment. - get_fixup_desc(source, fd) -> str - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) + get_fixup_handler(type) -> fixup_handler_t const * Get handler of standard or custom fixup. - get_fixup_handler(type) -> fixup_handler_t const * - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - get_fixup_value(ea, type) -> uval_t - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - @retval: operand - value + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) get_fixups(out, ea, size) -> bool - @param out (C++: fixups_t *) - @param ea (C++: ea_t) - @param size (C++: asize_t) + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function handle_fixups_in_macro in module ida_fixup: handle_fixups_in_macro(*args) - Handle two fixups in a macro. We often combine two instruction that - load parts of a value into one macro instruction. For example: ARM: - ADRP X0, #var@PAGE ADD X0, X0, #var@PAGEOFF --> ADRL X0, var MIPS: lui - $v0, hi(var) addiu $v0, $v0, lo(var) --> la $v0, var When applying the - fixups that fall inside such a macro, we should convert them to one - refinfo. This function does exactly that. It should be called from the + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the apply() callback of a custom fixup. - handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param other (C++: fixup_type_t) - @param macro_reft_and_flags (C++: uint32) - @return: success ('false' means that RI was not changed) + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) + is_fixup_custom(type) -> bool Is fixup processed by processor module? - is_fixup_custom(type) -> bool - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - patch_fixup_value(ea, fd) -> bool - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - @retval: false - the fixup bytes do not fit (e.g. fd->off is greater - than 0xFFFFFFC for BRANCH26). The database is changed - even in this case. + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - set_fixup(source, fd) - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(__builtin__.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | Closes the file + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | | close(self, *args) | close(self) + | Closes the file | | filename(self, *args) | filename(self) -> PyObject * | | flush(self, *args) | flush(self) -> int - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_char(self, *args) | get_char(self) -> PyObject * @@ -11175,6 +10702,8 @@ class qfile_t(__builtin__.object) | gets(self, *args) | gets(self, size) -> PyObject * | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) | open(self, filename, mode) -> bool @@ -11190,23 +10719,33 @@ class qfile_t(__builtin__.object) | | put_char(self, *args) | put_char(self, chr) -> int - | chr: char + | + | @param chr: char | | puts(self, *args) | puts(self, str) -> int - | str: char const * + | + | @param str: char const * | | read(self, *args) | read(self, size) -> PyObject * | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) | seek(self, offset, whence=SEEK_SET) -> int | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) @@ -11219,21 +10758,28 @@ class qfile_t(__builtin__.object) | write(self, *args) | write(self, py_buf) -> int | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) | writebytes(self, py_buf, big_endian) -> int | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) | from_capsule(pycapsule) -> qfile_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> qfile_t - | fp: FILE * + | + | @param fp: FILE * | | tmpfile(*args) | tmpfile() -> qfile_t @@ -11246,7 +10792,7 @@ class qfile_t(__builtin__.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -11264,390 +10810,401 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) qfile_t_from_capsule(pycapsule) -> qfile_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) qfile_t_from_fp(fp) -> qfile_t - fp: FILE * + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) + add_auto_stkpnt(pfn, ea, delta) -> bool Add automatic SP register change point. - add_auto_stkpnt(pfn, ea, delta) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function add_frame in module ida_frame: add_frame(*args) + add_frame(pfn, frsize, frregs, argsize) -> bool Add function frame. - add_frame(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - @retval: 1 - ok - @retval: 0 - failed (no function, frame already exists) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int Define a register variable. - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) + build_stkvar_name(pfn, v) -> str Build automatic stack variable name. - build_stkvar_name(pfn, v) -> str - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - build_stkvar_xrefs(out, pfn, mptr) - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t Calculate offset of stack variable in the frame structure. - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool Define/redefine a stack variable. - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success Help on function del_frame in module ida_frame: del_frame(*args) + del_frame(pfn) -> bool Delete a function frame. - del_frame(pfn) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) + del_regvar(pfn, ea1, ea2, canon) -> int Delete a register variable definition. - del_regvar(pfn, ea1, ea2, canon) -> int - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) + del_stkpnt(pfn, ea) -> bool Delete SP register change point. - del_stkpnt(pfn, ea) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) delete_unreferenced_stkvars(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) delete_wrong_stkvar_ops(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + Find a register variable definition. + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - @param pfn: function in question (C++: func_t *) - ea: ea_t - @param canon: name of a general register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) + frame_off_args(pfn) -> ea_t Get starting address of arguments section. - frame_off_args(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) + frame_off_lvars(pfn) -> ea_t Get start address of local variables section. - frame_off_lvars(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) + frame_off_retaddr(pfn) -> ea_t Get starting address of return address section. - frame_off_retaddr(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) + frame_off_savregs(pfn) -> ea_t Get starting address of saved registers section. - frame_off_savregs(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function free_regvar in module ida_frame: free_regvar(*args) free_regvar(v) - @param v (C++: struct regvar_t *) + + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - get_effective_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) + get_frame(pfn) -> struc_t Get pointer to function frame. - get_frame(pfn) -> struc_t - @param pfn: pointer to function structure (C++: const func_t *) - + @param pfn: func_t const * get_frame(ea) -> struc_t * - ea: ea_t + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) + get_frame_part(range, pfn, part) Get offsets of the frame part in the frame. - get_frame_part(range, pfn, part) - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) + get_frame_retsize(pfn) -> int Get size of function return address. - get_frame_retsize(pfn) -> int - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - get_frame_size(pfn) -> asize_t - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - get_func_by_frame(frame_id) -> ea_t - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) get_min_spd_ea(pfn) -> ea_t - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) + get_sp_delta(pfn, ea) -> sval_t Get modification of SP made at the specified location - get_sp_delta(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) + get_spd(pfn, ea) -> sval_t Get difference between the initial and current values of ESP. - get_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) - get_stkvar(insn, op, v) -> PyObject * + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable Help on function has_regvar in module ida_frame: has_regvar(*args) + has_regvar(pfn, ea) -> bool Is there a register variable definition? - has_regvar(pfn, ea) -> bool - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) is_funcarg_off(pfn, frameoff) -> bool - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) lvar_off(pfn, frameoff) -> sval_t - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -11663,28 +11220,31 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t - | r: regvar_t const & + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: regvar_t &) + | + | @param r: regvar_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -11697,66 +11257,72 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11770,77 +11336,74 @@ class regvar_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function rename_regvar in module ida_frame: rename_regvar(*args) + rename_regvar(pfn, v, user) -> int Rename a register variable. - rename_regvar(pfn, v, user) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - set_frame_size(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success Help on function set_purged in module ida_frame: set_purged(*args) - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - set_purged(ea, nbytes, override_old_value) -> bool - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) + set_regvar_cmt(pfn, v, cmt) -> int Set comment for a register variable. - set_regvar_cmt(pfn, v, cmt) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - soff_to_fpoff(pfn, soff) -> sval_t - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11851,36 +11414,43 @@ class stkpnt_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11892,10 +11462,10 @@ class stkpnt_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11915,36 +11485,43 @@ class stkpnts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11967,13 +11544,12 @@ class stkpnts_t(__builtin__.object) Help on function update_fpd in module ida_frame: update_fpd(*args) + update_fpd(pfn, fpd) -> bool Update frame pointer delta. - update_fpd(pfn, fpd) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11984,36 +11560,43 @@ class xreflist_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12025,16 +11608,16 @@ class xreflist_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -12051,15 +11634,19 @@ class xreflist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> xreflist_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | x: qvector< xreflist_entry_t > const & + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12069,33 +11656,39 @@ class xreflist_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: xreflist_entry_t const & + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: xreflist_entry_t const & + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | at(self, *args) | at(self, _idx) -> xreflist_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) | capacity(self) -> size_t @@ -12108,78 +11701,85 @@ class xreflist_t(__builtin__.object) | | end(self, *args) | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) | erase(self, it) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator | + | @param it: qvector< xreflist_entry_t >::iterator | | erase(self, first, last) -> xreflist_entry_t - | first: qvector< xreflist_entry_t >::iterator - | last: qvector< xreflist_entry_t >::iterator + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) | extract(self) -> xreflist_entry_t | | find(self, *args) | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & | - | - | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=xreflist_entry_t()) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | has(self, *args) | has(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | inject(self, *args) | inject(self, s, len) - | s: xreflist_entry_t * - | len: size_t + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator - | x: xreflist_entry_t const & + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: xreflist_entry_t const & | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< xreflist_entry_t > & + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) | truncate(self) @@ -12202,155 +11802,144 @@ class xreflist_t(__builtin__.object) | __swig_destroy__ = | delete_xreflist_t(self) -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - add_func_ex(pfn) -> bool - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) add_regarg(pfn, reg, tif, name) - @param pfn (C++: func_t *) - @param reg (C++: int) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - append_func_tail(pfn, ea1, ea2) -> bool - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) + apply_idasgn_to(signame, ea, is_startup) -> int Apply a signature file to the specified address. - apply_idasgn_to(signame, ea, is_startup) -> int - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) + apply_startup_sig(ea, startup) -> bool Apply a startup signature file to the specified address. - apply_startup_sig(ea, startup) -> bool - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) - Calculate function size. This function takes into account all - fragments of the function. - calc_func_size(pfn) -> asize_t - @param pfn: ptr to function structure (C++: func_t *) + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) + calc_idasgn_state(n) -> int Get state of a signature in the list of planned signatures - calc_idasgn_state(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t Calculate target of a thunk function. - calc_thunk_func_target(pfn) -> ea_t - @param pfn: pointer to function (may not be nullptr) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) + del_idasgn(n) -> int Remove signature from the list of planned signatures. - del_idasgn(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED Help on class dyn_ea_array in module ida_funcs: @@ -12361,12 +11950,14 @@ class dyn_ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_ea_array - | _data: unsigned-ea-like-numeric-type *↗ - | _count: size_t + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12378,8 +11969,9 @@ class dyn_ea_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12391,10 +11983,10 @@ class dyn_ea_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_ea_array_count_get(self) -> size_t + | count | | data - | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | data | | thisown | The membership flag @@ -12414,12 +12006,14 @@ class dyn_range_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_range_array - | _data: range_t * - | _count: size_t + | + | @param _data: range_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12431,8 +12025,9 @@ class dyn_range_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12444,10 +12039,10 @@ class dyn_range_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_range_array_count_get(self) -> size_t + | count | | data - | dyn_range_array_data_get(self) -> range_t + | data | | thisown | The membership flag @@ -12467,12 +12062,14 @@ class dyn_regarg_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regarg_array - | _data: regarg_t * - | _count: size_t + | + | @param _data: regarg_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12484,8 +12081,9 @@ class dyn_regarg_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regarg_t const & + | + | @param i: size_t + | @param v: regarg_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12497,10 +12095,10 @@ class dyn_regarg_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_regarg_array_count_get(self) -> size_t + | count | | data - | dyn_regarg_array_data_get(self) -> regarg_t + | data | | thisown | The membership flag @@ -12520,12 +12118,14 @@ class dyn_regvar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regvar_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regvar_array - | _data: regvar_t * - | _count: size_t + | + | @param _data: regvar_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12537,8 +12137,9 @@ class dyn_regvar_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regvar_t const & + | + | @param i: size_t + | @param v: regvar_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12550,10 +12151,10 @@ class dyn_regvar_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_regvar_array_count_get(self) -> size_t + | count | | data - | dyn_regvar_array_data_get(self) -> regvar_t * + | data | | thisown | The membership flag @@ -12573,12 +12174,14 @@ class dyn_stkpnt_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> stkpnt_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_stkpnt_array - | _data: stkpnt_t * - | _count: size_t + | + | @param _data: stkpnt_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12590,8 +12193,9 @@ class dyn_stkpnt_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: stkpnt_t const & + | + | @param i: size_t + | @param v: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12603,10 +12207,10 @@ class dyn_stkpnt_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_stkpnt_array_count_get(self) -> size_t + | count | | data - | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | data | | thisown | The membership flag @@ -12620,84 +12224,51 @@ class dyn_stkpnt_array(__builtin__.object) Help on function f_any in module ida_funcs: f_any(*args) + f_any(arg1, arg2) -> bool Helper function to accept any address. - f_any(arg1, arg2) -> bool - arg1: flags_t - arg2: void * + @param arg1: flags_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - find_func_bounds(nfn, flags) -> int - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes Help on function free_regarg in module ida_funcs: free_regarg(*args) free_regarg(v) - @param v (C++: struct regarg_t *) + + @param v: regarg_t * Help on function func_contains in module ida_funcs: func_contains(*args) + func_contains(pfn, ea) -> bool Does the given function contain the given address? - func_contains(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - func_does_return(callee) -> bool - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - fii: func_item_iterator_t * - visited: eavec_t * - p_farref: bool * - out: insn_t * - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) - func_item_iterator_decode_prev_insn(fii, out) -> bool - fii: func_item_iterator_t * - out: insn_t * - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) - func_item_iterator_next(fii, testf, ud) -> bool - fii: func_item_iterator_t * - testf: testf_t * - ud: void * - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) - func_item_iterator_prev(fii, testf, ud) -> bool - fii: func_item_iterator_t * - testf: testf_t * - ud: void * + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -12708,35 +12279,54 @@ class func_item_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | pfn: func_t * - | _ea: ea_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) - | __next__(self, func, ud) -> bool - | func: testf_t * - | ud: void * + | __next__(self, func) -> bool + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) | decode_preceding_insn(self, visited, p_farref, out) -> bool - | @param visited (C++: eavec_t *) - | @param p_farref (C++: bool *) - | @param out (C++: insn_t *) + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) | decode_prev_insn(self, out) -> bool - | @param out (C++: insn_t *) + | + | @param out: insn_t * | | first(self, *args) | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) | last(self) -> bool | @@ -12757,10 +12347,13 @@ class func_item_iterator_t(__builtin__.object) | next_not_tail(self, *args) | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) - | prev(self, func, ud) -> bool - | @param func (C++: testf_t *) - | @param ud (C++: void *) + | prev(self, func) -> bool + | + | @param func: testf_t * | | prev_addr(self, *args) | prev_addr(self) -> bool @@ -12778,19 +12371,28 @@ class func_item_iterator_t(__builtin__.object) | prev_not_tail(self) -> bool | | set(self, *args) - | Set a function range. if pfn == nullptr then a segment range will be - | set. - | | set(self, pfn, _ea=BADADDR) -> bool - | @param pfn (C++: func_t *) - | @param _ea (C++: ea_t) + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) + | set_range(self, ea1, ea2) -> bool | Set an arbitrary range. | - | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12814,8 +12416,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) func_parent_iterator_set(fpi, pfn) -> bool - fpi: func_parent_iterator_t * - pfn: func_t * + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -12826,7 +12429,12 @@ class func_parent_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | _fnt: func_t * + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) | __next__(self) -> bool @@ -12849,11 +12457,13 @@ class func_parent_iterator_t(__builtin__.object) | | reset_fnt(self, *args) | reset_fnt(self, _fnt) - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | set(self, *args) | set(self, _fnt) -> bool - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12902,53 +12512,61 @@ class func_t(ida_range.range_t) | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t - | start: ea_t - | end: ea_t - | f: flags_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | analyzed_sp(self, *args) + | analyzed_sp(self) -> bool | Has SP-analysis been performed? | | does_return(self, *args) + | does_return(self) -> bool | Does function return? | | is_far(self, *args) + | is_far(self) -> bool | Is a far function? | | need_prolog_analysis(self, *args) + | need_prolog_analysis(self) -> bool | Needs prolog analysis? | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points | __get_points__(self) -> dyn_stkpnt_array @@ -12957,22 +12575,22 @@ class func_t(ida_range.range_t) | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails | __get_tails__(self) -> dyn_range_array @@ -12991,66 +12609,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13064,33 +12688,36 @@ class func_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) func_t__from_ptrval__(ptrval) -> func_t - ptrval: size_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) func_tail_iterator_set(fti, pfn, ea) -> bool - fti: func_tail_iterator_t * - pfn: func_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) func_tail_iterator_set_ea(fti, ea) -> bool - fti: func_tail_iterator_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -13101,8 +12728,13 @@ class func_tail_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | _pfn: func_t * - | ea: ea_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) | __next__(self) -> bool @@ -13128,17 +12760,20 @@ class func_tail_iterator_t(__builtin__.object) | | set(self, *args) | set(self, _pfn, ea=BADADDR) -> bool - | @param _pfn (C++: func_t *) - | @param ea (C++: ea_t) + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) | set_ea(self, ea) -> bool - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_range(self, *args) | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13161,140 +12796,145 @@ class func_tail_iterator_t(__builtin__.object) Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) + get_current_idasgn() -> int Get number of the the current signature. + + @return: 0..n-1 Help on function get_fchunk in module ida_funcs: get_fchunk(*args) + get_fchunk(ea) -> func_t Get pointer to function chunk structure by address. - get_fchunk(ea) -> func_t - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) - Get ordinal number of a function chunk in the global list of function - chunks. - get_fchunk_num(ea) -> int - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) + get_fchunk_qty() -> size_t Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) + get_func(ea) -> func_t Get pointer to function structure by address. - get_func(ea) -> func_t - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) + get_func_bitness(pfn) -> int Get function bitness (which is equal to the function segment bitness). pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - get_func_bitness(pfn) -> int - @param pfn (C++: const func_t *) - @retval: 0 - 16 - @retval: 1 - 32 - @retval: 2 - 64 + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) + get_func_bits(pfn) -> int Get number of bits in the function addressing. - get_func_bits(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) + get_func_bytes(pfn) -> int Get number of bytes in the function addressing. - get_func_bytes(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) - Get the containing tail chunk of 'ea'. - get_func_chunknum(pfn, ea) -> int - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - @retval: -1 - means 'does not contain ea' - @retval: 0 - means the 'pfn' itself contains ea - @retval: >0 - the number of the containing function tail chunk + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) + get_func_cmt(pfn, repeatable) -> str Get function comment. - get_func_cmt(pfn, repeatable) -> str - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) + get_func_name(ea) -> str Get function name. - get_func_name(ea) -> str - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + @param ea: (C++: ea_t) any address in the function + @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) + get_func_num(ea) -> int Get ordinal number of a function. - get_func_num(ea) -> int - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) + get_func_qty() -> size_t Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) + get_func_ranges(ranges, pfn) -> ea_t Get function ranges. - get_func_ranges(ranges, pfn) -> ea_t - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) - get_idasgn_desc(n) -> PyObject * + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -13306,7 +12946,7 @@ get_idasgn_desc(*args) Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) - get_idasgn_desc_with_matches(n) -> PyObject * + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -13316,140 +12956,141 @@ get_idasgn_desc_with_matches(*args) Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) - Get number of signatures in the list of planned and applied - signatures. + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) + get_idasgn_title(name) -> str Get full description of the signature by its short name. - get_idasgn_title(name) -> str - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) + get_next_fchunk(ea) -> func_t Get pointer to the next function chunk in the global list. - get_next_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if next function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) + get_next_func(ea) -> func_t Get pointer to the next function. - get_next_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) get_next_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) + get_prev_fchunk(ea) -> func_t Get pointer to the previous function chunk in the global list. - get_prev_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) + get_prev_func(ea) -> func_t Get pointer to the previous function. - get_prev_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) get_prev_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) + getn_fchunk(n) -> func_t Get pointer to function chunk structure by number. - getn_fchunk(n) -> func_t - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) + getn_func(n) -> func_t Get pointer to function structure by number. - getn_func(n) -> func_t - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - is_finally_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) + is_func_entry(pfn) -> bool Does function describe a function entry chunk? - is_func_entry(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) + is_func_locked(pfn) -> bool Is the function pointer locked? - is_func_locked(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) + is_func_tail(pfn) -> bool Does function describe a function tail chunk? - is_func_tail(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) + is_same_func(ea1, ea2) -> bool Do two addresses belong to the same function? - is_same_func(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) + is_visible_func(pfn) -> bool Is the function visible (not hidden)? - is_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -13460,7 +13101,8 @@ class lock_func(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func - | _pfn: func_t const * + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -13485,55 +13127,52 @@ class lock_func(__builtin__.object) Help on function lock_func_range in module ida_funcs: lock_func_range(*args) - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_func_range(pfn, lock) - @param pfn (C++: const func_t *) - @param lock (C++: bool) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) read_regargs(pfn) - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - reanalyze_noret_flag(ea) -> bool - @param ea (C++: ea_t) + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -13544,13 +13183,16 @@ class regarg_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> regarg_t - | r: regarg_t const & + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: regarg_t &) + | + | @param r: regarg_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13562,16 +13204,16 @@ class regarg_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -13582,317 +13224,115 @@ class regarg_t(__builtin__.object) Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - remove_func_tail(pfn, tail_ea) -> bool - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) + @param tail_ea: (C++: ea_t) Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) + set_func_cmt(pfn, cmt, repeatable) -> bool Set function comment. This function works with function chunks too. - set_func_cmt(pfn, cmt, repeatable) -> bool - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) - Give a meaningful name to function if it consists of only 'jump' - instruction. - set_func_name_if_jumpfunc(pfn, oldname) -> int - @param pfn: pointer to function (may be nullptr) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass nullptr. (C++: const char - *) - @return: success + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) + set_func_start(ea, newstart) -> int Move function chunk start address. - set_func_start(ea, newstart) -> int - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - set_noret_insn(insn_ea, noret) -> bool - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - set_tail_owner(fnt, func_start) -> bool - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + Set a function as the possessing function of a function tail. The function + should already refer to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) + @param func_start: (C++: ea_t) Help on function set_visible_func in module ida_funcs: set_visible_func(*args) + set_visible_func(pfn, visible) Set visibility of function. - set_visible_func(pfn, visible) - @param pfn (C++: func_t *) - @param visible (C++: bool) + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - try_to_add_libfunc(ea) -> int - @param ea: any address in the program (C++: ea_t) - @return: Library function codes + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - update_func(pfn) -> bool - @param pfn: ptr to function structure (C++: func_t *) - @return: success + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(__builtin__.object) @@ -13974,7 +13414,8 @@ class cancellable_graph_t(gdl_graph_t) | | __init__(self, *args) | __init__(self) -> cancellable_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -13982,7 +13423,7 @@ class cancellable_graph_t(gdl_graph_t) | Data descriptors defined here: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | thisown | The membership flag @@ -14001,9 +13442,10 @@ class cancellable_graph_t(gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -14016,7 +13458,8 @@ class cancellable_graph_t(gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -14026,65 +13469,77 @@ class cancellable_graph_t(gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14098,13 +13553,14 @@ class cancellable_graph_t(gdl_graph_t) Help on function display_gdl in module ida_gdl: display_gdl(*args) - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - display_gdl(fname) -> int - @param fname (C++: const char *) - @return: error code from os, 0 if ok + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok Help on class gdl_graph_t in module ida_gdl: @@ -14117,7 +13573,8 @@ class gdl_graph_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14126,9 +13583,10 @@ class gdl_graph_t(__builtin__.object) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -14141,7 +13599,8 @@ class gdl_graph_t(__builtin__.object) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -14151,65 +13610,77 @@ class gdl_graph_t(__builtin__.object) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14232,84 +13703,81 @@ class gdl_graph_t(__builtin__.object) Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool Build and display a complex xref graph. - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool Build and display a flow graph. - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) + gen_gdl(g, fname) Create GDL file for graph. - gen_gdl(g, fname) - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) + gen_simple_call_chart(filename, wait, title, gflags) -> bool Build and display a simple function call graph. - gen_simple_call_chart(filename, wait, title, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) + is_noret_block(btype) -> bool Does this block never return? - is_noret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) + is_ret_block(btype) -> bool Does this block return? - is_ret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -14320,16 +13788,19 @@ class node_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator - | _g: gdl_graph_t const * - | n: int + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -14388,66 +13859,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -14461,12 +13938,12 @@ class qbasic_block_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class qflow_chart_t in module ida_gdl: @@ -14483,73 +13960,86 @@ class qflow_chart_t(cancellable_graph_t) | | __getitem__(self, *args) | __getitem__(self, n) -> qbasic_block_t - | n: int + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | _title: char const * - | _pfn: func_t * - | _ea1: ea_t - | _ea2: ea_t - | _flags: int + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | | append_to_flowchart(self, *args) | append_to_flowchart(self, ea1, ea2) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) | calc_block_type(self, blknum) -> fc_block_type_t - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | create(self, *args) | create(self, _title, _pfn, _ea1, _ea2, _flags) - | @param _title (C++: const char *) - | @param _pfn (C++: func_t *) - | @param _ea1 (C++: ea_t) - | @param _ea2 (C++: ea_t) - | @param _flags (C++: int) | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | create(self, _title, ranges, _flags) - | @param _title (C++: const char *) - | ranges: rangevec_t const & - | @param _flags (C++: int) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | is_noret_block(self, *args) | is_noret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | is_ret_block(self, *args) | is_ret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_names(self, *args) | print_names(self) -> bool | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) | refresh(self) @@ -14559,29 +14049,30 @@ class qflow_chart_t(cancellable_graph_t) | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bounds - | qflow_chart_t_bounds_get(self) -> range_t + | bounds | | flags - | qflow_chart_t_flags_get(self) -> int + | flags | | nproper - | qflow_chart_t_nproper_get(self) -> int + | nproper | | pfn - | qflow_chart_t_pfn_get(self) -> func_t * + | pfn | | thisown | The membership flag | | title - | qflow_chart_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14598,7 +14089,7 @@ class qflow_chart_t(cancellable_graph_t) | Data descriptors inherited from cancellable_graph_t: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | ---------------------------------------------------------------------- | Methods inherited from gdl_graph_t: @@ -14608,9 +14099,10 @@ class qflow_chart_t(cancellable_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -14623,7 +14115,8 @@ class qflow_chart_t(cancellable_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -14633,35 +14126,41 @@ class qflow_chart_t(cancellable_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14672,101 +14171,10 @@ class qflow_chart_t(cancellable_graph_t) | __weakref__ | list of weak references to the object (if defined) -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CALL_ENDS -""" -call instructions terminate basic blocks -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_NOPREDS -""" -do not compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -14964,7 +14372,9 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -14973,10 +14383,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -15005,33 +14415,39 @@ class TPointDouble(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | a: double - | b: double + | __init__(self, a, b) -> TPointDouble | + | @param a: double + | @param b: double | | __init__(self, r) -> TPointDouble - | r: point_t const & + | + | @param r: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15046,10 +14462,10 @@ class TPointDouble(__builtin__.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15073,58 +14489,64 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | create_circle_layout(self, *args) | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) | create_tree_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | thisown | The membership flag | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15140,9 +14562,10 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -15155,7 +14578,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -15165,65 +14589,77 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -15237,88 +14673,86 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) Help on function calc_dist in module ida_graph: calc_dist(*args) + calc_dist(p, q) -> double Calculate distance between p and q. - calc_dist(p, q) -> double - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) + clr_node_info(gid, node, flags) Clear node info for the given node. - clr_node_info(gid, node, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) - Create a graph for the function that contains 'ea'. - create_disasm_graph(ea) -> mutable_graph_t - @param ea (C++: ea_t) + Create a graph using an arbitrary set of ranges. + @param ea: ea_t create_disasm_graph(ranges) -> mutable_graph_t - ranges: rangevec_t const & + + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * Create a custom graph viewer. - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) + @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) + create_mutable_graph(id) -> mutable_graph_t Create a new empty graph with given id. - create_mutable_graph(id) -> mutable_graph_t - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - create_user_graph_place(node, lnnum) -> user_graph_place_t - @param node (C++: int) - @param lnnum (C++: int) + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) - Delete the 'node_info_t' for the given node. - del_node_info(gid, node) - @param gid (C++: graph_id_t) - @param node (C++: int) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - delete_mutable_graph(g) - @param g (C++: mutable_graph_t *) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -15345,22 +14779,22 @@ class edge_info_t(__builtin__.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15392,7 +14826,7 @@ class edge_infos_wrapper_t(__builtin__.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -15406,26 +14840,31 @@ class edge_layout_point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | r: edge_layout_point_t const & + | __init__(self, r) -> edge_layout_point_t | + | @param r: edge_layout_point_t const & | | __init__(self, _e, _pidx) -> edge_layout_point_t - | _e: edge_t const & - | _pidx: int + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | @param r (C++: const edge_layout_point_t &) + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15437,10 +14876,10 @@ class edge_layout_point_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -15463,7 +14902,8 @@ class edge_segment_t(__builtin__.object) | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: edge_segment_t const & + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -15483,19 +14923,19 @@ class edge_segment_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15512,20 +14952,25 @@ class edge_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | x: int - | y: int + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) | __lt__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __ne__(self, *args) | __ne__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -15539,10 +14984,10 @@ class edge_t(__builtin__.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -15556,29 +15001,29 @@ class edge_t(__builtin__.object) Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) + get_graph_viewer(parent) -> graph_viewer_t * Get custom graph viewer for given form. - get_graph_viewer(parent) -> graph_viewer_t * - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) + get_node_info(out, gid, node) -> bool Get node info. - get_node_info(out, gid, node) -> bool - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) + get_viewer_graph(gv) -> mutable_graph_t Get graph object for given custom graph viewer. - get_viewer_graph(gv) -> mutable_graph_t - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -15608,25 +15053,25 @@ class graph_item_t(__builtin__.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15645,37 +15090,39 @@ class graph_node_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | is_forbidden_edge(self, *args) + | is_forbidden_edge(self, arg0, arg1) -> bool | Should the edge between 'n' and 'm' be ignored? | - | is_forbidden_edge(self, arg0, arg1) -> bool - | arg0: int - | arg1: int + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) + | is_visited(self, n) -> bool | Have we already visited the given node? | - | is_visited(self, n) -> bool - | @param n (C++: int) + | @param n: (C++: int) | | reinit(self, *args) + | reinit(self) | Reset visited nodes. | | set_visited(self, *args) + | set_visited(self, n) | Mark node as visited. | - | set_visited(self, n) - | @param n (C++: int) + | @param n: (C++: int) | | visit_node(self, *args) + | visit_node(self, arg0) -> int | Implements action to take when a node is visited. | - | visit_node(self, arg0) -> int - | arg0: int + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15706,17 +15153,20 @@ class graph_path_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | walk_backward(self, *args) | walk_backward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | walk_forward(self, *args) | walk_forward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15728,10 +15178,10 @@ class graph_path_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -15753,19 +15203,22 @@ class graph_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_edge(self, *args) | visit_edge(self, arg2, arg3) -> int - | arg2: edge_t - | arg3: edge_info_t * + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) | visit_node(self, arg2, arg3) -> int - | arg2: int - | arg3: rect_t & + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15807,10 +15260,10 @@ class group_crinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -15830,44 +15283,52 @@ class interval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | y0: int - | y1: int + | __init__(self, y0, y1) -> interval_t | + | @param y0: int + | @param y1: int | | __init__(self, s) -> interval_t - | s: edge_segment_t const & + | + | @param s: edge_segment_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | | contains(self, *args) | contains(self, x) -> bool - | @param x (C++: int) + | + | @param x: int | | empty(self, *args) | empty(self) -> bool | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | length(self, *args) | length(self) -> int | | make_union(self, *args) | make_union(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | move_by(self, *args) | move_by(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15882,10 +15343,10 @@ class interval_t(__builtin__.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15912,266 +15373,317 @@ class mutable_graph_t(abstract_graph_t) | | add_edge(self, *args) | add_edge(self, i, j, ei) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param ei (C++: const edge_info_t *) + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * | | add_node(self, *args) + | add_node(self, r) -> int | Add a node, possibly with a specific geometry | - | add_node(self, r) -> int - | @param r: the node geometry (can be nullptr) (C++: const rect_t *) - | @return: the new node + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node | | calc_group_ea(self, *args) | calc_group_ea(self, arg2) -> ea_t - | arg2: intvec_t const & + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) + | change_group_visibility(self, group, expand) -> bool | Expand/collapse a group node | - | change_group_visibility(self, group, expand) -> bool - | @param group: the group node (C++: int) - | @param expand: whether to expand or collapse (C++: bool) - | @return: success + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) | create_digraph_layout(self) -> bool | | create_group(self, *args) + | create_group(self, nodes) -> int | Create a new group node, that will contain all the nodes in 'nodes'. | - | create_group(self, nodes) -> int - | @param nodes: the nodes that will be part of the group (C++: const - | intvec_t &) - | @return: the group node, or -1 in case of error + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) | del_custom_layout(self) | | del_edge(self, *args) | del_edge(self, i, j) -> bool - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | del_node(self, *args) + | del_node(self, n) -> ssize_t | Delete a node | - | del_node(self, n) -> ssize_t - | @param n: the node to delete (C++: int) - | @return: the number of deleted edges + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges | | delete_group(self, *args) - | Delete a group node.This deletes the group node only; it does not - | delete nodes that are part of the group. - | | delete_group(self, group) -> bool - | @param group: the group node (C++: int) - | @return: success + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) + | empty(self) -> bool | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) + | exists(self, node) -> bool | Is the node visible? | - | exists(self, node) -> bool - | @param node: the node number (C++: int) - | @return: success + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) | get_custom_layout(self) -> bool | | get_first_subgraph_node(self, *args) | get_first_subgraph_node(self, group) -> int - | @param group (C++: int) + | + | @param group: int | | get_graph_groups(self, *args) | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) | get_next_subgraph_node(self, group, current) -> int - | @param group (C++: int) - | @param current (C++: int) + | + | @param group: int + | @param current: int | | get_node_group(self, *args) | get_node_group(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | get_node_representative(self, *args) - | Get the node that currently visually represents 'node'. This will find - | the "closest" parent group node that's visible, by attempting to walk - | up the group nodes that contain 'node', and will stop when it finds a - | node that is currently visible.See also get_group_node() - | | get_node_representative(self, node) -> int - | @param node: the node (C++: int) - | @return: the node that represents 'node', or 'node' if it's not part - | of any group + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) | is_collapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_deleted_node(self, *args) | is_deleted_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_displayable_node(self, *args) | is_displayable_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_dot_node(self, *args) | is_dot_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_group_node(self, *args) | is_group_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_simple_node(self, *args) | is_simple_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_subgraph_node(self, *args) | is_subgraph_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_uncollapsed_node(self, *args) | is_uncollapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_user_graph(self, *args) | is_user_graph(self) -> bool | | is_visible_node(self, *args) - | Is the node currently visible?An invisible node is a node that's part - | of a group that's currently collapsed. - | | is_visible_node(self, node) -> bool - | @param node: the node (C++: int) - | @return: success + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) - | Get the number of visible nodes (the list can be retrieved using - | 'gdl.hpp' 's 'node_iterator' )See also size() + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) | npred(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | nsucc(self, *args) | nsucc(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | pred(self, *args) | pred(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | predset(self, *args) | predset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | redo_layout(self, *args) + | redo_layout(self) -> bool | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success | | refresh(self, *args) - | Refresh the graphA graph needs refreshing when it's "backing data". - | E.g., if the number (or contents) of the objects in the above example, - | change.Let's say the user's plugin ends up finding a 5th piece of - | scattered data. It should then add it to its internal list of known - | objects, and tell IDA that the graph needs to be refreshed, using - | 'refresh_viewer()' . This will cause IDA to:discard all its internal - | rendering information,call 'mutable_graph_t::refresh()' on the graph - | so that the user's plugin has a chance to "sync" the number of nodes & - | edges that this graph contains, to the information that the plugin has - | collected so farre-create internal rendering information, andrepaint - | the view + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success | | replace_edge(self, *args) | replace_edge(self, i, j, x, y) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param x (C++: int) - | @param y (C++: int) + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) | reset(self) | | resize(self, *args) + | resize(self, n) | Resize the graph to 'n' nodes | - | resize(self, n) - | @param n: the new size (C++: int) + | @param n: (C++: int) the new size | | set_custom_layout(self, *args) | set_custom_layout(self) | | set_deleted_node(self, *args) | set_deleted_node(self, node) - | @param node (C++: int) + | + | @param node: int | | set_edge(self, *args) | set_edge(self, e, ei) -> bool - | @param e (C++: edge_t) - | @param ei (C++: const edge_info_t *) + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) | set_graph_groups(self) | | set_node_group(self, *args) | set_node_group(self, node, group) - | @param node (C++: int) - | @param group (C++: int) + | + | @param node: int + | @param group: int | | set_nrect(self, *args) | set_nrect(self, n, r) -> bool - | @param n (C++: int) - | @param r (C++: const rect_t &) + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) - | Get the total number of nodes (including group nodes, and including - | hidden nodes.)See also node_qty() + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) | succ(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | succset(self, *args) | succset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * + | belongs | | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t + | edges | | gid - | mutable_graph_t_gid_get(self) -> uval_t + | gid | | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * + | node_flags | | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t + | nodes | | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t * + | org_preds | | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t * + | org_succs | | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t * + | preds | | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t * + | succs | | thisown | The membership flag @@ -16189,49 +15701,54 @@ class mutable_graph_t(abstract_graph_t) | | create_circle_layout(self, *args) | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) | create_tree_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors inherited from abstract_graph_t: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -16241,9 +15758,10 @@ class mutable_graph_t(abstract_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | end(self, *args) | end(self) -> node_iterator @@ -16259,41 +15777,49 @@ class mutable_graph_t(abstract_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -16317,23 +15843,28 @@ class node_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_flags_for_valid(self, *args) - | Get combination of 'Node info flags' describing which attributes are - | valid. + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) - | Has valid 'bg_color' ? + | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) - | Has valid 'ea' ? + | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) - | Has valid 'flags' ? + | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) - | Has valid 'frame_color' ? + | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) - | Has non-empty 'text' ? + | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16345,19 +15876,19 @@ class node_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -16377,15 +15908,19 @@ class node_layout_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rect_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | x: qvector< rect_t > const & + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16395,33 +15930,39 @@ class node_layout_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: rect_t const & + | + | @param i: size_t + | @param v: rect_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: rect_t const & + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | at(self, *args) | at(self, _idx) -> rect_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16434,78 +15975,85 @@ class node_layout_t(__builtin__.object) | | end(self, *args) | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) | erase(self, it) -> rect_t - | it: qvector< rect_t >::iterator | + | @param it: qvector< rect_t >::iterator | | erase(self, first, last) -> rect_t - | first: qvector< rect_t >::iterator - | last: qvector< rect_t >::iterator + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) | extract(self) -> rect_t | | find(self, *args) | find(self, x) -> rect_t - | x: rect_t const & | - | - | find(self, x) -> rect_t - | x: rect_t const & + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rect_t()) - | x: rect_t const & + | + | @param x: rect_t const & | | has(self, *args) | has(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | inject(self, *args) | inject(self, s, len) - | s: rect_t * - | len: size_t + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> rect_t - | it: qvector< rect_t >::iterator - | x: rect_t const & + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: rect_t const & + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: rect_t const & | + | @param _newsize: size_t + | @param x: rect_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< rect_t > & + | + | @param r: qvector< rect_t > & | | truncate(self, *args) | truncate(self) @@ -16545,24 +16093,29 @@ class node_ordering_t(__builtin__.object) | | clr(self, *args) | clr(self, _node) -> bool - | @param _node (C++: int) + | + | @param _node: int | | node(self, *args) | node(self, _order) -> int - | @param _order (C++: size_t) + | + | @param _order: size_t | | order(self, *args) | order(self, _node) -> int - | @param _node (C++: int) + | + | @param _node: int | | resize(self, *args) | resize(self, n) - | @param n (C++: int) + | + | @param n: int | | set(self, *args) | set(self, _node, num) - | @param _node (C++: int) - | @param num (C++: int) + | + | @param _node: int + | @param num: int | | size(self, *args) | size(self) -> size_t @@ -16594,29 +16147,35 @@ class point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | _x: int - | _y: int + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16631,10 +16190,10 @@ class point_t(__builtin__.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16676,11 +16235,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16690,31 +16251,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16727,78 +16294,85 @@ class pointseq_t(pointvec_t) | | end(self, *args) | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -16821,15 +16395,19 @@ class pointvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | x: qvector< point_t > const & + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16839,33 +16417,39 @@ class pointvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16878,78 +16462,85 @@ class pointvec_t(__builtin__.object) | | end(self, *args) | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -16976,20 +16567,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) pyg_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) pyg_select_node(_self, nid) - self: PyObject * - nid: int + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) pyg_show(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -17000,23 +16594,27 @@ class rect_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | l: int - | t: int - | r: int - | b: int + | __init__(self, l, t, r, b) -> rect_t | + | @param l: int + | @param t: int + | @param r: int + | @param b: int | | __init__(self, p0, p1) -> rect_t - | p0: point_t const & - | p1: point_t const & + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -17031,37 +16629,44 @@ class rect_t(__builtin__.object) | | contains(self, *args) | contains(self, p) -> bool - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | empty(self, *args) | empty(self) -> bool | | grow(self, *args) | grow(self, delta) - | @param delta (C++: int) + | + | @param delta: int | | height(self, *args) | height(self) -> int | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) | is_intersection_empty(self, r) -> bool - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | make_union(self, *args) | make_union(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | move_by(self, *args) | move_by(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | move_to(self, *args) | move_to(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | topleft(self, *args) | topleft(self) -> point_t @@ -17079,19 +16684,19 @@ class rect_t(__builtin__.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17102,10 +16707,10 @@ class rect_t(__builtin__.object) Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) + refresh_viewer(gv) Redraw the graph in the given view. - refresh_viewer(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -17132,16 +16737,16 @@ class row_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17158,15 +16763,19 @@ class screen_graph_selection_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | x: qvector< selection_item_t > const & + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17176,33 +16785,39 @@ class screen_graph_selection_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -17215,78 +16830,85 @@ class screen_graph_selection_base_t(__builtin__.object) | | end(self, *args) | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -17328,33 +16950,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) | add(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) | add_node(self, node) - | @param node (C++: int) + | + | @param node: int | | add_point(self, *args) | add_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) | del_node(self, node) - | @param node (C++: int) + | + | @param node: int | | del_point(self, *args) | del_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) | has(self, item) -> bool - | @param item (C++: const selection_item_t &) + | + | @param item: selection_item_t const & | | items_count(self, *args) | items_count(self, look_for_nodes) -> size_t - | @param look_for_nodes (C++: bool) + | + | @param look_for_nodes: bool | | nodes_count(self, *args) | nodes_count(self) -> size_t @@ -17364,7 +16993,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) | sub(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17383,11 +17013,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17397,31 +17029,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -17434,74 +17072,80 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -17524,34 +17168,40 @@ class selection_item_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | n: int + | __init__(self, n) -> selection_item_t | + | @param n: int | | __init__(self, _elp) -> selection_item_t - | _elp: edge_layout_point_t & | + | @param _elp: edge_layout_point_t & | | __init__(self, e, idx) -> selection_item_t - | e: edge_t - | idx: int + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | @param r (C++: const selection_item_t &) + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17563,13 +17213,13 @@ class selection_item_t(__builtin__.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17583,23 +17233,23 @@ class selection_item_t(__builtin__.object) Help on function set_node_info in module ida_graph: set_node_info(*args) + set_node_info(gid, node, ni, flags) Set node info. - set_node_info(gid, node, ni, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) + set_viewer_graph(gv, g) Set the underlying graph object for the given viewer. - set_viewer_graph(gv, g) - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -17622,7 +17272,7 @@ class user_graph_place_t(__builtin__.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17636,201 +17286,158 @@ class user_graph_place_t(__builtin__.object) Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - viewer_attach_menu_item(g, name) -> bool - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param name: (C++: const char *) action name + @param name: (C++: const char *) action name + @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) + viewer_center_on(gv, node) Center the graph view on the given node. - viewer_center_on(gv, node) - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around 'mutable_graph_t::create_group' that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - viewer_create_groups(gv, out_group_nodes, gi) -> bool - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) - Delete node info for node in given viewer (see 'del_node_info()' ) - viewer_del_node_info(gv, n) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) - Wrapper around 'mutable_graph_t::delete_group' . This function - will:clone the current graphattempt deleting the groups in that new - graphif successful, animate to that new graph. - viewer_delete_groups(gv, groups, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) + viewer_fit_window(gv) Fit graph viewer to its parent form. - viewer_fit_window(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) + viewer_get_curnode(gv) -> int Get number of currently selected node (-1 if none) - viewer_get_curnode(gv) -> int - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - viewer_get_gli(out, gv, flags=0) -> bool - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) - Get node info for node in given viewer (see 'get_node_info()' ) - viewer_get_node_info(gv, out, n) -> bool - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) + viewer_get_selection(gv, sgs) -> bool Get currently selected items for graph viewer. - viewer_get_selection(gv, sgs) -> bool - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - viewer_set_gli(gv, gli, flags=0) - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) - Wrapper around 'mutable_graph_t::change_visibility' . This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) - Set node info for node in given viewer (see 'set_node_info()' ) - viewer_set_node_info(gv, n, ni, flags) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) - Set height of node title bars ( 'grcode_set_titlebar_height' ) - viewer_set_titlebar_height(gv, height) -> int - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" -'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" -'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" -'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" -'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" -'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(exceptions.Exception) @@ -17913,263 +17520,253 @@ class Hexrays_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | build_callinfo(self, *args) + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | cmt_changed(self, *args) + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) | hook(self) -> bool | | interr(self, *args) + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | right_click(self, *args) - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) | unhook(self) -> bool @@ -18247,145 +17844,139 @@ class __cbhooks_t(Hexrays_Hooks) | __repr__ = _swig_repr(self) | | build_callinfo(self, *args) + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | cmt_changed(self, *args) + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) | hook(self) -> bool | | locopt(self, *args) + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | stkpnts(self, *args) + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -18417,54 +18008,75 @@ Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: _kludge_force_declare_TPopupMenu(*args) _kludge_force_declare_TPopupMenu(arg1) - arg1: TPopupMenu const * + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) _ll_call_helper(rettype, args, format) -> cexpr_t - rettype: tinfo_t const & - args: carglist_t * - format: char const * + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) _ll_create_helper(standalone, type, format) -> cexpr_t - standalone: bool - type: tinfo_t const & - format: char const * + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - e: cexpr_t * - ptrsize: int - is_flt: bool + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) _ll_lnot(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - n: uint64 - func: cfunc_t * - ea: ea_t - opnum: int - sign: type_sign_t - size: int + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) _ll_make_ref(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -18479,27 +18091,28 @@ _map_as_dict(maptype, name, keytype, valuetype) Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) + accepts_small_udts(op) -> bool Is the operator allowed on small structure or union? - accepts_small_udts(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) accepts_udts(op) -> bool - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) + arglocs_overlap(loc1, w1, loc2, w2) -> bool Do two arglocs overlap? - arglocs_overlap(loc1, w1, loc2, w2) -> bool - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -18510,15 +18123,19 @@ class array_of_bitsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bitset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | x: qvector< bitset_t > const & + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18528,33 +18145,39 @@ class array_of_bitsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bitset_t const & + | + | @param i: size_t + | @param v: bitset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: bitset_t const & + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | at(self, *args) | at(self, _idx) -> bitset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -18567,78 +18190,85 @@ class array_of_bitsets(__builtin__.object) | | end(self, *args) | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) | erase(self, it) -> bitset_t - | it: qvector< bitset_t >::iterator | + | @param it: qvector< bitset_t >::iterator | | erase(self, first, last) -> bitset_t - | first: qvector< bitset_t >::iterator - | last: qvector< bitset_t >::iterator + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) | extract(self) -> bitset_t | | find(self, *args) | find(self, x) -> bitset_t - | x: bitset_t const & | - | - | find(self, x) -> bitset_t - | x: bitset_t const & + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bitset_t()) - | x: bitset_t const & + | + | @param x: bitset_t const & | | has(self, *args) | has(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | inject(self, *args) | inject(self, s, len) - | s: bitset_t * - | len: size_t + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> bitset_t - | it: qvector< bitset_t >::iterator - | x: bitset_t const & + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bitset_t const & + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bitset_t const & | + | @param _newsize: size_t + | @param x: bitset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bitset_t > & + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) | truncate(self) @@ -18670,15 +18300,19 @@ class array_of_ivlsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ivlset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | x: qvector< ivlset_t > const & + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18688,33 +18322,39 @@ class array_of_ivlsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ivlset_t const & + | + | @param i: size_t + | @param v: ivlset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ivlset_t const & + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | at(self, *args) | at(self, _idx) -> ivlset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -18727,78 +18367,85 @@ class array_of_ivlsets(__builtin__.object) | | end(self, *args) | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) | erase(self, it) -> ivlset_t - | it: qvector< ivlset_t >::iterator | + | @param it: qvector< ivlset_t >::iterator | | erase(self, first, last) -> ivlset_t - | first: qvector< ivlset_t >::iterator - | last: qvector< ivlset_t >::iterator + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) | extract(self) -> ivlset_t | | find(self, *args) | find(self, x) -> ivlset_t - | x: ivlset_t const & | - | - | find(self, x) -> ivlset_t - | x: ivlset_t const & + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ivlset_t()) - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | has(self, *args) | has(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | inject(self, *args) | inject(self, s, len) - | s: ivlset_t * - | len: size_t + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ivlset_t - | it: qvector< ivlset_t >::iterator - | x: ivlset_t const & + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ivlset_t const & + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ivlset_t const & | + | @param _newsize: size_t + | @param x: ivlset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ivlset_t > & + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) | truncate(self) @@ -18824,22 +18471,21 @@ class array_of_ivlsets(__builtin__.object) Help on function asgop in module ida_hexrays: asgop(*args) - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - asgop(cop) -> ctype_t - @param cop (C++: ctype_t) + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - asgop_revert(cop) -> ctype_t - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -18850,8 +18496,9 @@ class bit_bound_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t - | n: int - | s: int + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -18865,10 +18512,10 @@ class bit_bound_t(__builtin__.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -18888,50 +18535,59 @@ class bitset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | m: bitset_t const & + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) | back(self) -> int @@ -18944,19 +18600,24 @@ class bitset_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | dstr(self, *args) | dstr(self) -> char const * @@ -18969,77 +18630,91 @@ class bitset_t(__builtin__.object) | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19062,69 +18737,69 @@ class bitset_t(__builtin__.object) Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) - Get iterator pointing to the beginning of 'block_chains_t' . - block_chains_begin(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) - Clear 'block_chains_t' . - block_chains_clear(set) - @param set (C++: block_chains_t *) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) - Get iterator pointing to the end of 'block_chains_t' . - block_chains_end(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) - Erase current element from 'block_chains_t' . - block_chains_erase(set, p) - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) - Find the specified key in set 'block_chains_t' . - block_chains_find(set, val) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) - Delete 'block_chains_t' instance. - block_chains_free(set) - @param set (C++: block_chains_t *) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) + block_chains_get(p) -> chain_t Get reference to the current set value. - block_chains_get(p) -> chain_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) - Insert new ( 'chain_t' ) into set 'block_chains_t' . - block_chains_insert(set, val) -> block_chains_iterator_t - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -19135,14 +18810,16 @@ class block_chains_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19159,7 +18836,7 @@ class block_chains_iterator_t(__builtin__.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19170,31 +18847,32 @@ class block_chains_iterator_t(__builtin__.object) Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) - Create a new 'block_chains_t' instance. + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) + block_chains_next(p) -> block_chains_iterator_t Move to the next element. - block_chains_next(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) + block_chains_prev(p) -> block_chains_iterator_t Move to the previous element. - block_chains_prev(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) - Get size of 'block_chains_t' . - block_chains_size(set) -> size_t - @param set (C++: block_chains_t *) + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -19215,50 +18893,26 @@ class block_chains_t(__builtin__.object) | dstr(self) -> char const * | | get_chain(self, *args) - | Get chain for the specified value offset. - | | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) - | - | - | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) | + | @param k: voff_t const & + | @param width: int | | get_chain(self, ch) -> chain_t - | ch: chain_t const & | - | - | get_chain(self, ch) -> chain_t - | ch: chain_t const & + | @param ch: chain_t const & | | get_reg_chain(self, *args) - | Get chain for the specified register - | | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) | - | - | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) - | Get chain for the specified stack offset - | | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) | - | - | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19287,11 +18941,14 @@ class block_chains_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | x: qvector< block_chains_t > const & + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -19303,19 +18960,20 @@ class block_chains_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) | capacity(self) -> size_t @@ -19328,16 +18986,16 @@ class block_chains_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -19347,47 +19005,56 @@ class block_chains_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< block_chains_t > & + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) | truncate(self) @@ -19413,70 +19080,70 @@ class block_chains_vec_t(__builtin__.object) Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) + boundaries_begin(map) -> boundaries_iterator_t Get iterator pointing to the beginning of boundaries_t. - boundaries_begin(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) + boundaries_clear(map) Clear boundaries_t. - boundaries_clear(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) + boundaries_end(map) -> boundaries_iterator_t Get iterator pointing to the end of boundaries_t. - boundaries_end(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) + boundaries_erase(map, p) Erase current element from boundaries_t. - boundaries_erase(map, p) - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) + boundaries_find(map, key) -> boundaries_iterator_t Find the specified key in boundaries_t. - boundaries_find(map, key) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) + boundaries_first(p) -> cinsn_t Get reference to the current map key. - boundaries_first(p) -> cinsn_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) + boundaries_free(map) Delete boundaries_t instance. - boundaries_free(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - boundaries_insert(map, key, val) -> boundaries_iterator_t - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -19487,14 +19154,16 @@ class boundaries_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19511,7 +19180,7 @@ class boundaries_iterator_t(__builtin__.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19522,39 +19191,40 @@ class boundaries_iterator_t(__builtin__.object) Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) + boundaries_new() -> boundaries_t Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) + boundaries_next(p) -> boundaries_iterator_t Move to the next element. - boundaries_next(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) + boundaries_prev(p) -> boundaries_iterator_t Move to the previous element. - boundaries_prev(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) + boundaries_second(p) -> rangeset_t Get reference to the current map value. - boundaries_second(p) -> rangeset_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) + boundaries_size(map) -> size_t Get size of boundaries_t. - boundaries_size(map) -> size_t - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -19588,7 +19258,8 @@ class boundaries_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> rangeset_t - | _Keyval: cinsn_t *const & + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -19738,6 +19409,7 @@ class boundaries_t(__builtin__.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -19754,49 +19426,57 @@ class carg_t(cexpr_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: carg_t const & + | + | @param r: carg_t const & | | consume_cexpr(self, *args) | consume_cexpr(self, e) - | @param e (C++: cexpr_t *) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -19820,7 +19500,7 @@ class carg_t(cexpr_t) | _get_fpc(self) -> fnumber_t | | _get_helper(self, *args) - | _get_helper(self) -> char * + | _get_helper(self) -> char const * | | _get_insn(self, *args) | _get_insn(self) -> cinsn_t @@ -19841,7 +19521,7 @@ class carg_t(cexpr_t) | _get_refwidth(self) -> int | | _get_string(self, *args) - | _get_string(self) -> char * + | _get_string(self) -> char const * | | _get_x(self, *args) | _get_x(self) -> cexpr_t @@ -19857,194 +19537,238 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -20056,29 +19780,35 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) @@ -20088,63 +19818,62 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -20152,7 +19881,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -20178,7 +19907,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -20210,6 +19939,8 @@ class carg_t(cexpr_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) | _get_op(self) -> ctype_t | @@ -20224,36 +19955,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -20268,19 +20000,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20307,47 +20039,56 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | ftype: tinfo_t const & - | fl: int + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: carglist_t const & + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -20363,7 +20104,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20373,31 +20115,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -20410,78 +20160,85 @@ class carglist_t(qvector_carg_t) | | end(self, *args) | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -20509,41 +20266,49 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t - | ea: ea_t | + | @param ea: ea_t | | __init__(self, r) -> casm_t - | r: casm_t const & + | + | @param r: casm_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: casm_t const & + | + | @param r: casm_t const & | | one_insn(self, *args) | one_insn(self) -> bool @@ -20565,7 +20330,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20575,24 +20341,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20616,70 +20391,81 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ | + | @param x: unsigned-ea-like-numeric-type const &↗ | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) | inject(self, s, len) - | s: unsigned-ea-like-numeric-type *↗ - | len: size_t + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned-ea-like-numeric-type const &↗ | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) | truncate(self) @@ -20695,42 +20481,48 @@ class casm_t(ida_pro.eavec_t)↗ Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | __builtin__.object | | Methods defined here: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -20739,7 +20531,8 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) | compare(self, r) -> int - | r: cblock_t const & + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20754,11 +20547,12 @@ class cblock_t(qlist_cinsn_t) | delete_cblock_t(self) | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20768,8 +20562,9 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & + | + | @param i: size_t + | @param v: cinsn_t const & | | at(self, index) | @@ -20777,7 +20572,7 @@ class cblock_t(qlist_cinsn_t) | # ----------------------------------------------------------------------- | | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) | clear(self) @@ -20786,20 +20581,12 @@ class cblock_t(qlist_cinsn_t) | empty(self) -> bool | | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | | erase(self, p) - | p: qlist_cinsn_t_iterator + | + | @param p: cinsn_list_t_iterator | | find(self, item) | @@ -20809,23 +20596,15 @@ class cblock_t(qlist_cinsn_t) | index(self, item) | | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | | insert(self, i, v) - | i: size_t - | v: cinsn_t const & | + | @param i: size_t + | @param v: cinsn_t const & | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -20835,11 +20614,15 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) | push_back(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t | | push_front(self, *args) | push_front(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & | | rbegin(self, *args) | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -20847,7 +20630,8 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) | remove(self, v) -> bool - | v: cinsn_t const & + | + | @param v: cinsn_t const & | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -20858,10 +20642,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) | swap(self, x) - | x: qlist< cinsn_t > & + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -20884,43 +20669,51 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ccase_t const & + | + | @param r: ccase_t const & | | size(self, *args) | size(self) -> size_t | | value(self, *args) | value(self, i) -> uint64 const & - | @param i (C++: int) + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20929,7 +20722,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -20975,137 +20768,175 @@ class ccase_t(cinsn_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -21113,7 +20944,8 @@ class ccase_t(cinsn_t) | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -21165,6 +20997,8 @@ class ccase_t(cinsn_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) | _get_op(self) -> ctype_t | @@ -21179,36 +21013,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -21223,16 +21058,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21259,36 +21094,43 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ccases_t const & + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21307,7 +21149,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21317,31 +21160,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) | capacity(self) -> size_t @@ -21354,78 +21205,85 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -21448,11 +21306,12 @@ class cdg_insn_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self, mba_) -> cdg_insn_iterator_t - | mba_: mba_t const * | + | @param mba_: mba_t const * | | __init__(self, r) -> cdg_insn_iterator_t - | r: cdg_insn_iterator_t const & + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -21467,14 +21326,16 @@ class cdg_insn_iterator_t(__builtin__.object) | | next(self, *args) | next(self, ins) -> merror_t - | @param ins (C++: insn_t *) + | + | @param ins: insn_t * | | ok(self, *args) | ok(self) -> bool | | start(self, *args) | start(self, rng) - | @param rng (C++: const range_t &) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21486,25 +21347,25 @@ class cdg_insn_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | | mba - | cdg_insn_iterator_t_mba_get(self) -> mba_t + | mba | | severed_branch - | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t + | severed_branch | | thisown | The membership flag @@ -21530,36 +21391,43 @@ class cdo_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cdo_t const & + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21578,7 +21446,8 @@ class cdo_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -21587,7 +21456,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -21599,7 +21468,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -21623,7 +21492,7 @@ class ceinsn_t(__builtin__.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -21653,49 +21522,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * + | __init__(self, cop, _x) -> cexpr_t | + | @param cop: enum ctype_t + | @param _x: cexpr_t * | | __init__(self, cop, _x, _y) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * | | __init__(self, cop, _x, _y, _z) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * - | _z: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * | | __init__(self, r) -> cexpr_t - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -21709,7 +21586,7 @@ class cexpr_t(citem_t) | _get_fpc(self) -> fnumber_t | | _get_helper(self, *args) - | _get_helper(self) -> char * + | _get_helper(self) -> char const * | | _get_insn(self, *args) | _get_insn(self) -> cinsn_t @@ -21730,7 +21607,7 @@ class cexpr_t(citem_t) | _get_refwidth(self) -> int | | _get_string(self, *args) - | _get_string(self) -> char * + | _get_string(self) -> char const * | | _get_x(self, *args) | _get_x(self) -> cexpr_t @@ -21746,198 +21623,243 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) | compare(self, r) -> int - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | contains_comma(self, *args) + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -21949,29 +21871,35 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) @@ -21981,63 +21909,62 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22045,7 +21972,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -22074,7 +22001,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -22109,6 +22036,8 @@ class cexpr_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) | _get_op(self) -> ctype_t | @@ -22123,36 +22052,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -22167,19 +22097,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -22207,45 +22137,52 @@ class cfor_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cfor_t const & + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -22261,7 +22198,8 @@ class cfor_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -22270,7 +22208,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22282,7 +22220,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -22301,30 +22239,29 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t - | f: cfunc_t * - | post: bool + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | | calc_rvalue_type(self, *args) - | Calculate rvalue type. This function tries to determine the type of - | the specified item based on its context. For example, if the current - | expression is the right side of an assignment operator, the type of - | its left side will be returned. This function can be used to determine - | the 'best' type of the specified expression. - | | calc_rvalue_type(self, target, e) -> bool - | @param target: 'best' type of the expression will be returned here - | (C++: tinfo_t *) - | @param e: expression to determine the desired type (C++: const - | cexpr_t *) - | @return: false if failed + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -22338,113 +22275,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -22456,10 +22404,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -22476,189 +22424,208 @@ class cfunc_t(__builtin__.object) | __str__(self) -> qstring | | build_c_tree(self, *args) - | Generate the function body. This function (re)generates the function - | body from the underlying microcode. + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) - | Delete all orphan comments. The 'save_user_cmts()' function must be - | called after this call. + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool - | @param item (C++: const citem_t *) - | @param px (C++: int *) - | @param py (C++: int *) | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | | find_item_coords(self, item) -> PyObject * - | @param item (C++: const citem_t *) + | + | @param item: citem_t const * | | find_label(self, *args) + | find_label(self, label) -> citem_t | Find the label. | - | find_label(self, label) -> citem_t - | @param label (C++: int) - | @return: pointer to the ctree item with the specified label number. + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool - | @param ci (C++: const ctree_item_t &) - | @param udm (C++: udt_type_data_t *) + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) + | get_func_type(self, type) -> bool | Get the function type. | - | get_func_type(self, type) -> bool - | @param type: variable where the function type is returned (C++: - | tinfo_t *) - | @return: false if failure + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) - | Get ctree item for the specified cursor position. - | 'vdui_t::get_current_item()' - | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | @param line: line of decompilation text (element of sv ) (C++: const - | char *) - | @param x: x cursor coordinate in the line (C++: int) - | @param is_ctree_line: does the line belong to statement area? (if not, - | it is assumed to belong to the declaration area) - | (C++: bool) - | @param phead: ptr to the first item on the line (used to attach block - | comments). May be NULL (C++: ctree_item_t *) - | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t - | *) - | @param ptail: ptr to the last item on the line (used to attach - | indented comments). May be NULL (C++: ctree_item_t *) - | @return: false if failed to get the current item + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) + | get_stkoff_delta(self) -> sval_t | Get stack offset delta. The local variable stack offsets retrieved by - | v.location.stkoff() should be adjusted before being used as stack - | frame offsets in IDA. + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) + | get_user_cmt(self, loc, rt) -> char const * | Retrieve a user defined comment. | - | get_user_cmt(self, loc, rt) -> char const * - | @param loc: ctree location (C++: const treeloc_t &) - | @param rt: should already retrieved comments retrieved again? (C++: - | cmt_retrieval_type_t) - | @return: pointer to the comment string or NULL + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) + | get_user_iflags(self, loc) -> int32 | Retrieve citem iflags. | - | get_user_iflags(self, loc) -> int32 - | @param loc: citem locator (C++: const citem_locator_t &) - | @return: ctree item iflags bits or 0 + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) + | get_user_union_selection(self, ea, path) -> bool | Retrieve a user defined union field selection. | - | get_user_union_selection(self, ea, path) -> bool - | @param ea: address (C++: ea_t) - | @param path: out: path describing the union selection. (C++: intvec_t - | *) - | @return: pointer to the path or NULL + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) + | has_orphan_cmts(self) -> bool | Check if there are orphan comments. | | locked(self, *args) | locked(self) -> bool | | print_dcl(self, *args) + | print_dcl(self) | Print function prototype. | | print_func(self, *args) + | print_func(self, vp) | Print function text. | - | print_func(self, vp) - | @param vp: printer helper class to receive the generated text. (C++: - | vc_printer_t &) + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) - | Refresh ctext after a ctree modification. This function informs the - | decompiler that ctree ( 'body' ) have been modified and ctext ( 'sv' ) - | does not correspond to it anymore. It also refreshes the pseudocode - | windows if there is any. + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) | release(self) | | remove_unused_labels(self, *args) - | Remove unused labels. This function check what labels are really used - | by the function and removes the unused ones. + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) + | save_user_cmts(self) | Save user-defined comments into the database. | | save_user_iflags(self, *args) + | save_user_iflags(self) | Save user-defined iflags into the database. | | save_user_labels(self, *args) + | save_user_labels(self) | Save user-defined labels into the database. | | save_user_numforms(self, *args) + | save_user_numforms(self) | Save user-defined number formats into the database. | | save_user_unions(self, *args) + | save_user_unions(self) | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) - | Set a user defined comment. This function stores the specified comment - | in the 'cfunc_t' structure. The 'save_user_cmts()' function must be - | called after it. - | | set_user_cmt(self, loc, cmt) - | @param loc: ctree location (C++: const treeloc_t &) - | @param cmt: new comment. if empty or NULL, then an existing comment is - | deleted. (C++: const char *) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) + | set_user_iflags(self, loc, iflags) | Set citem iflags. | - | set_user_iflags(self, loc, iflags) - | @param loc: citem locator (C++: const citem_locator_t &) - | @param iflags: new iflags (C++: int32) + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) - | Set a union field selection. The 'save_user_unions()' function must be - | called after calling this function. - | | set_user_union_selection(self, ea, path) - | @param ea: address (C++: ea_t) - | @param path: in: path describing the union selection. (C++: const - | intvec_t &) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) - | Verify the ctree. This function verifies the ctree. If the ctree is - | malformed, an internal error is generated. Use it to verify the ctree - | after your modifications. - | | verify(self, aul, even_without_debugger) - | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) - | @param even_without_debugger: if false and there is no debugger, the - | verification will be skipped (C++: bool) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22670,72 +22637,83 @@ class cfunc_t(__builtin__.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mba_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -22762,11 +22740,12 @@ class cfuncptr_t(__builtin__.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t - | p: cfunc_t * | + | @param p: cfunc_t * | | __init__(self, r) -> cfuncptr_t - | r: qrefcnt_t< cfunc_t > const & + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) | __ptrval__(self) -> size_t @@ -22786,22 +22765,25 @@ class cfuncptr_t(__builtin__.object) | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool - | item: citem_t const * - | px: int * - | py: int * | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | - | find_item_coords(self, item) -> PyObject * - | item: citem_t const * + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) | find_label(self, label) -> citem_t - | label: int + | + | @param label: int | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool - | ci: ctree_item_t const & - | udm: udt_type_data_t * + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) | get_boundaries(self) -> boundaries_t @@ -22811,16 +22793,18 @@ class cfuncptr_t(__builtin__.object) | | get_func_type(self, *args) | get_func_type(self, type) -> bool - | type: tinfo_t * + | + | @param type: tinfo_t * | | get_line_item(self, *args) | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | line: char const * - | x: int - | is_ctree_line: bool - | phead: ctree_item_t * - | pitem: ctree_item_t * - | ptail: ctree_item_t * + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) | get_lvars(self) -> lvars_t @@ -22833,17 +22817,20 @@ class cfuncptr_t(__builtin__.object) | | get_user_cmt(self, *args) | get_user_cmt(self, loc, rt) -> char const * - | loc: treeloc_t const & - | rt: enum cmt_retrieval_type_t + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) | get_user_iflags(self, loc) -> int32 - | loc: citem_locator_t const & + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) | get_user_union_selection(self, ea, path) -> bool - | ea: ea_t - | path: intvec_t * + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) | get_warnings(self) -> hexwarns_t @@ -22859,7 +22846,8 @@ class cfuncptr_t(__builtin__.object) | | print_func(self, *args) | print_func(self, vp) - | vp: vc_printer_t & + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) | refresh_func_ctext(self) @@ -22890,23 +22878,27 @@ class cfuncptr_t(__builtin__.object) | | set_user_cmt(self, *args) | set_user_cmt(self, loc, cmt) - | loc: treeloc_t const & - | cmt: char const * + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) | set_user_iflags(self, loc, iflags) - | loc: citem_locator_t const & - | iflags: int32 + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) | set_user_union_selection(self, ea, path) - | ea: ea_t - | path: intvec_t const & + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) | verify(self, aul, even_without_debugger) - | aul: enum allow_unused_labels_t - | even_without_debugger: bool + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22918,61 +22910,61 @@ class cfuncptr_t(__builtin__.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mba_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings | @@ -22991,36 +22983,43 @@ class cgoto_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23032,7 +23031,7 @@ class cgoto_t(__builtin__.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -23052,7 +23051,8 @@ class chain_keeper_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t - | _gc: graph_chains_t * + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -23061,8 +23061,9 @@ class chain_keeper_t(__builtin__.object) | | for_all_chains(self, *args) | for_all_chains(self, cv, gca) -> int - | @param cv (C++: chain_visitor_t &) - | @param gca (C++: int) + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) | front(self) -> block_chains_t @@ -23099,19 +23100,22 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | t: mopt_t - | off: sval_t - | w: int - | v: int + | __init__(self, t, off, w=1, v=-1) -> chain_t | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int | | __init__(self, _k, w=1) -> chain_t - | _k: voff_t const & - | w: int + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: chain_t const & + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -23119,11 +23123,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) + | append_list(self, mba, list) | Append the contents of the chain to the specified list of locations. | - | append_list(self, mba, list) - | @param mba (C++: const mba_t *) - | @param list (C++: mlist_t *) + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) | clear_varnum(self) @@ -23142,7 +23146,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) | includes(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | is_fake(self, *args) | is_fake(self) -> bool @@ -23173,42 +23178,48 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) | overlap(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | set_inited(self, *args) | set_inited(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_overlapped(self, *args) | set_overlapped(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_replaced(self, *args) | set_replaced(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_term(self, *args) | set_term(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_value(self, *args) | set_value(self, r) - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -23221,11 +23232,13 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23235,28 +23248,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | at = __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23280,70 +23303,81 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -23368,14 +23402,16 @@ class chain_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_chain(self, *args) | visit_chain(self, nblock, ch) -> int - | @param nblock (C++: int) - | @param ch (C++: chain_t &) + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23387,7 +23423,7 @@ class chain_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -23401,17 +23437,16 @@ class chain_visitor_t(__builtin__.object) Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - checkout_hexrays_license(silent) -> bool - @param silent: silently fail if the license cannot be checked out. - (C++: bool) - @return: false if failed + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -23427,53 +23462,63 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | r: cif_t const & + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cif_t - | @param r (C++: const cif_t &) + | + | @param r: cif_t const & | | cleanup(self, *args) | cleanup(self) | | compare(self, *args) | compare(self, r) -> int - | r: cif_t const & + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -23494,13 +23539,200 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(__builtin__.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | pop_front(self, *args) + | pop_front(self) + | + | push_back(self, *args) + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_cinsn_list_t(self) + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(__builtin__.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | next = __next__(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_cinsn_list_t_iterator(self) + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -23515,31 +23747,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | r: cinsn_t const & + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -23578,141 +23818,180 @@ class cinsn_t(citem_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) | compare(self, r) -> int - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -23720,7 +23999,8 @@ class cinsn_t(citem_t) | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23778,6 +24058,8 @@ class cinsn_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) | _get_op(self) -> ctype_t | @@ -23792,36 +24074,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -23836,16 +24119,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -23862,7 +24145,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) cinsn_t_insn_is_epilog(insn) -> bool - insn: cinsn_t const * + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -23873,15 +24157,19 @@ class cinsnptrvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | x: qvector< cinsn_t * > const & + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23890,22 +24178,28 @@ class cinsnptrvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t *const & + | + | @param i: size_t + | @param v: cinsn_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: cinsn_t *const & + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) | @@ -23933,70 +24227,81 @@ class cinsnptrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator | + | @param it: qvector< cinsn_t * >::iterator | | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | first: qvector< cinsn_t * >::iterator - | last: qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) | extract(self) -> cinsn_t ** | | find(self, *args) | find(self, x) -> qvector< cinsn_t * >::iterator - | x: cinsn_t *const & | + | @param x: cinsn_t *const & | | find(self, x) -> qvector< cinsn_t * >::const_iterator - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | inject(self, *args) | inject(self, s, len) - | s: cinsn_t ** - | len: size_t + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator - | x: cinsn_t *const & + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: cinsn_t *const & | + | @param _newsize: size_t + | @param x: cinsn_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< cinsn_t * > & + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) | truncate(self) @@ -24028,7 +24333,9 @@ class citem_cmt_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | s: char const * + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -24051,7 +24358,7 @@ class citem_cmt_t(__builtin__.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24068,42 +24375,50 @@ class citem_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t - | _ea: ea_t - | _op: enum ctype_t | + | @param _ea: ea_t + | @param _op: enum ctype_t | | __init__(self, i) -> citem_locator_t - | i: citem_t const * + | + | @param i: citem_t const * | | __le__(self, *args) | __le__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24115,10 +24430,10 @@ class citem_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -24137,8 +24452,9 @@ class citem_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | o: enum ctype_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -24156,6 +24472,8 @@ class citem_t(__builtin__.object) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) | _get_op(self) -> ctype_t | @@ -24170,53 +24488,54 @@ class citem_t(__builtin__.object) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | print1(self, *args) + | print1(self, func) | Print item into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) - | @return: length of the generated text. + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) - | Swap two 'citem_t' . - | | swap(self, r) - | @param r (C++: citem_t &) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24228,19 +24547,19 @@ class citem_t(__builtin__.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -24270,6 +24589,7 @@ citem_to_specific_type(self) Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) + clear_cached_cfuncs() Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -24286,17 +24606,20 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | b: cinsn_t * + | __init__(self, b) -> cloop_t | + | @param b: cinsn_t * | | __init__(self, r) -> cloop_t - | r: cloop_t const & + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -24305,7 +24628,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -24326,22 +24649,23 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function close_hexrays_waitbox in module ida_hexrays: close_hexrays_waitbox(*args) - Close the waitbox displayed by the decompiler. Useful if - DECOMP_NO_HIDE was used during decompilation. + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) + close_pseudocode(f) -> bool Close pseudocode window. - close_pseudocode(f) -> bool - @param f: pointer to window (C++: TWidget *) - @return: false if failed + @param f: (C++: TWidget *) pointer to window + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -24352,58 +24676,69 @@ class cnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t - | _opnum: int + | + | @param _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, type, parent=None, nice_stroff=None) - | type: tinfo_t const & - | parent: citem_t const * - | nice_stroff: bool * + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) + | assign(self, v, nbytes, sign) | Assign new value | - | assign(self, v, nbytes, sign) - | @param v: new value (C++: uint64) - | @param nbytes: size of the new value in bytes (C++: int) - | @param sign: sign of the value (C++: type_sign_t) + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) | compare(self, r) -> int - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | value(self, *args) - | Get value. This function will properly extend the number sign to - | 64bits depending on the type sign. - | | value(self, type) -> uint64 - | @param type (C++: const tinfo_t &) + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24415,10 +24750,10 @@ class cnumber_t(__builtin__.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -24441,92 +24776,94 @@ class codegen_t(__builtin__.object) | __repr__ = _swig_repr(self) | | analyze_prolog(self, *args) - | Analyze prolog/epilog of the function to decompile. If prolog is - | found, allocate and fill 'mba->pi' structure. - | | analyze_prolog(self, fc, reachable) -> merror_t - | @param fc: flow chart (C++: const class qflow_chart_t &) - | @param reachable: bitmap of reachable blocks (C++: const class - | bitset_t &) - | @return: error code + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) - | Emit one microinstruction. The L, R, D arguments usually mean the - | register number. However, they depend on CODE. For example:for m_goto - | and m_jcnd L is the target addressfor m_ldc L is the constant value to - | load - | | emit(self, code, width, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param width (C++: int) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int | | emit(self, code, l, r, d) -> minsn_t - | @param code (C++: mcode_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t | Emit one microinstruction. This variant takes a data type not a size. | - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param dtype (C++: op_dtype_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) + | gen_micro(self) -> merror_t | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal | | load_effective_address(self, *args) + | load_effective_address(self, n, flags=0) -> mreg_t | Generate microcode to calculate the address of a memory operand. | - | load_effective_address(self, n, flags=0) -> mreg_t - | @param n: - number of INSN operand (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand address. mr_none - failed - | (not a memory operand) + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) + | load_operand(self, opnum, flags=0) -> mreg_t | Generate microcode to load one operand. | - | load_operand(self, opnum, flags=0) -> mreg_t - | @param opnum (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand. + | @param opnum: (C++: int) + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand. | | microgen_completed(self, *args) + | microgen_completed(self) | This method is called when the microcode generation is done. | | prepare_gen_micro(self, *args) - | Setup internal data to handle new instruction. This method should be - | called before calling 'gen_micro()' . Usually 'gen_micro()' is called - | by the decompiler. You have to call this function explicitly only if - | you yourself call 'gen_micro()' . The instruction is in INSN + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal | | store_operand(self, *args) - | Generate microcode to store an operand. In case of success an - | arbitrary number of instructions can be generated (and even no - | instruction if the source and target are the same) - | | store_operand(self, n, mop, flags=0, outins=None) -> bool - | @param n: - number of target INSN operand (C++: int) - | @param mop: - operand to be stored (C++: const mop_t &) - | @param flags: - reserved for future use (C++: int) - | @param outins: - (OUT) the last generated instruction (C++: minsn_t - | **) - | @return: success + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24538,19 +24875,19 @@ class codegen_t(__builtin__.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -24564,51 +24901,49 @@ class codegen_t(__builtin__.object) Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) + convert_to_user_call(udc, cdg) -> merror_t try to generate user-defined call for an instruction - convert_to_user_call(udc, cdg) -> merror_t - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) Help on function create_cfunc in module ida_hexrays: create_cfunc(*args) - Create a new 'cfunc_t' object. - create_cfunc(mba) -> cfuncptr_t - @param mba: microcode object. After creating the cfunc object it takes - the ownership of MBA. (C++: mba_t *) + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. Help on function create_field_name in module ida_hexrays: create_field_name(*args) create_field_name(type, offset=BADADDR) -> qstring - @param type (C++: const tinfo_t &) - @param offset (C++: uval_t) + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) - Create a reference to a named type. - create_typedef(name) -> tinfo_t - @param name: type name (C++: const char *) - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + Create a reference to an ordinal type. + @param name: char const * + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - n: int - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + + @param n: int Help on class creturn_t in module ida_hexrays: @@ -24624,36 +24959,43 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: creturn_t const & + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24677,7 +25019,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -24693,45 +25035,52 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -24752,7 +25101,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -24763,45 +25112,53 @@ class ctext_position_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | _lnnum: int - | _x: int - | _y: int + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24813,16 +25170,16 @@ class ctext_position_t(__builtin__.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24876,7 +25233,7 @@ class ctree_anchor_t(__builtin__.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24912,31 +25269,36 @@ class ctree_item_t(__builtin__.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) + | get_ea(self) -> ea_t | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) + | get_label_num(self, gln_flags) -> int | Get label number of the current item. | - | get_label_num(self, gln_flags) -> int - | @param gln_flags: Combination of get_label_num control bits (C++: - | int) - | @return: -1 if failed or no label + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) - | Get pointer to local variable. If the current item is a local - | variable, this function will return pointer to its definition. + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) - | Get pointer to structure member. If the current item is a structure - | field, this function will return pointer to its definition. - | | get_memptr(self, p_sptr=None) -> member_t * - | @param p_sptr: pointer to the variable where the pointer to the parent - | structure is returned. This parameter can be NULL. - | (C++: struc_t **) - | @return: NULL if failed + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) + | is_citem(self) -> bool | Is the current item is a ctree item? | | ---------------------------------------------------------------------- @@ -24949,7 +25311,7 @@ class ctree_item_t(__builtin__.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -24962,7 +25324,7 @@ class ctree_item_t(__builtin__.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -24982,15 +25344,19 @@ class ctree_items_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> citem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | x: qvector< citem_t * > const & + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -24999,22 +25365,28 @@ class ctree_items_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: citem_t *const & + | + | @param i: size_t + | @param v: citem_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: citem_t *const & + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | append = push_back(self, *args) | @@ -25042,70 +25414,81 @@ class ctree_items_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator | + | @param it: qvector< citem_t * >::iterator | | erase(self, first, last) -> qvector< citem_t * >::iterator - | first: qvector< citem_t * >::iterator - | last: qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) | extract(self) -> citem_t ** | | find(self, *args) | find(self, x) -> qvector< citem_t * >::iterator - | x: citem_t *const & | + | @param x: citem_t *const & | | find(self, x) -> qvector< citem_t * >::const_iterator - | x: citem_t *const & + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | inject(self, *args) | inject(self, s, len) - | s: citem_t ** - | len: size_t + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator - | x: citem_t *const & + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: citem_t *const & + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: citem_t *const & | + | @param _newsize: size_t + | @param x: citem_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< citem_t * > & + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) | truncate(self) @@ -25144,17 +25527,25 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t - | post: bool + | + | @param post: bool | | __repr__ = _swig_repr(self) | + | get_block(self, *args) + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25172,101 +25563,105 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -25278,10 +25673,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -25294,106 +25689,111 @@ class ctree_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t - | _flags: int + | + | @param _flags: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25405,10 +25805,10 @@ class ctree_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -25434,36 +25834,43 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25482,7 +25889,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -25491,7 +25899,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -25503,14 +25911,15 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) debug_hexrays_ctree(level, msg) - level: int - msg: char const * + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: @@ -25520,121 +25929,123 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) - Decompile a function. Multiple decompilations of the same function - return the same object. - decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) + decompile_many(outfile, funcaddrs, flags) -> bool Batch decompilation. Decompile all or the specified functions - decompile_many(outfile, funcaddrs, flags) -> bool - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - dstr(tif) -> char const * - @param tif (C++: const tinfo_t *) + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t Generate a dummy pointer type - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) + eamap_begin(map) -> eamap_iterator_t Get iterator pointing to the beginning of eamap_t. - eamap_begin(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) + eamap_clear(map) Clear eamap_t. - eamap_clear(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) + eamap_end(map) -> eamap_iterator_t Get iterator pointing to the end of eamap_t. - eamap_end(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) + eamap_erase(map, p) Erase current element from eamap_t. - eamap_erase(map, p) - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) + eamap_find(map, key) -> eamap_iterator_t Find the specified key in eamap_t. - eamap_find(map, key) -> eamap_iterator_t - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) + eamap_first(p) -> ea_t const & Get reference to the current map key. - eamap_first(p) -> ea_t const & - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) + eamap_free(map) Delete eamap_t instance. - eamap_free(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) + eamap_insert(map, key, val) -> eamap_iterator_t Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - eamap_insert(map, key, val) -> eamap_iterator_t - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -25645,14 +26056,16 @@ class eamap_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -25669,7 +26082,7 @@ class eamap_iterator_t(__builtin__.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -25680,39 +26093,40 @@ class eamap_iterator_t(__builtin__.object) Help on function eamap_new in module ida_hexrays: eamap_new(*args) + eamap_new() -> eamap_t Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) + eamap_next(p) -> eamap_iterator_t Move to the next element. - eamap_next(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) + eamap_prev(p) -> eamap_iterator_t Move to the previous element. - eamap_prev(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) + eamap_second(p) -> cinsnptrvec_t Get reference to the current map value. - eamap_second(p) -> cinsnptrvec_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) + eamap_size(map) -> size_t Get size of eamap_t. - eamap_size(map) -> size_t - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -25746,7 +26160,8 @@ class eamap_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> cinsnptrvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -25914,30 +26329,36 @@ class fnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -25946,7 +26367,8 @@ class fnumber_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) | dereference_const_uint16(self) -> uint16 const * @@ -25964,10 +26386,10 @@ class fnumber_t(__builtin__.object) | list of weak references to the object (if defined) | | fnum - | fnumber_t_fnum_get(self) -> fpvalue_t + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -25991,16 +26413,17 @@ class gco_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | append_to_list(self, *args) - | Append operand info to LIST. This function converts IDA register - | number or stack offset to a decompiler list. - | | append_to_list(self, list, mba) -> bool - | @param list: list to append to (C++: mlist_t *) - | @param mba: microcode object (C++: const mba_t *) + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object | | cvt_to_ivl(self, *args) - | Convert operand info to VIVL. The returned VIVL can be used, for - | example, in a call of get_valranges(). + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) | is_def(self) -> bool @@ -26021,13 +26444,19 @@ class gco_info_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag @@ -26041,172 +26470,171 @@ class gco_info_t(__builtin__.object) Help on function gen_microcode in module ida_hexrays: gen_microcode(*args) + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) get_ctype_name(op) -> char const * - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - returns true. - get_current_operand(out) -> bool - @param out (C++: gco_info_t *) + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) + get_float_type(width) -> tinfo_t Get a type of a floating point value with the specified width - get_float_type(width) -> tinfo_t - @param width: width of the desired type (C++: int) - @return: type info object + @param width: (C++: int) width of the desired type + @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) + get_hexrays_version() -> char const * Get decompiler version. The returned string is of the form ... + + @return: pointer to version string. For example: "2.0.0.140605" Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - get_member_type(mptr, type) -> bool - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) + get_merror_desc(code, mba) -> str Get textual description of an error code - get_merror_desc(code, mba) -> str - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mba_t *) - @return: the error address + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) + get_mreg_name(reg, width, ud=None) -> str Get the microregister name. - get_mreg_name(reg, width, ud=None) -> str - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param out: (C++: qstring *) output buffer, may be nullptr + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - get_op_signness(op) -> type_sign_t - @param op (C++: ctype_t) + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) get_signed_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) + get_type(id, tif, guess) -> bool Get a global type. Global types are types of addressable objects and struct/union/enum types - get_type(id, tif, guess) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - get_unk_type(size) -> tinfo_t - @param size: size of the type in bytes (C++: int) + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) get_unsigned_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) - Get the 'vdui_t' instance associated to the TWidget - get_widget_vdui(f) -> vdui_t - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) - Skip assertions backward. - getb_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) - Skip assertions forward. - getf_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -26226,26 +26654,30 @@ class graph_chains_t(block_chains_vec_t) | __repr__ = _swig_repr(self) | | acquire(self, *args) + | acquire(self) | Lock the chains. | | for_all_chains(self, *args) + | for_all_chains(self, cv, gca_flags) -> int | Visit all chains | - | for_all_chains(self, cv, gca_flags) -> int - | @param cv: chain visitor (C++: chain_visitor_t &) - | @param gca_flags: combination of GCA_ bits (C++: int) + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) - | Are the chains locked? It is a good idea to lock the chains before - | using them. This ensures that they won't be recalculated and - | reallocated during the use. See the 'chain_keeper_t' class for that. + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) + | release(self) | Unlock the chains. | | swap(self, *args) | swap(self, r) - | @param r (C++: graph_chains_t &) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26264,7 +26696,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26274,19 +26707,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26299,16 +26733,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -26318,40 +26752,48 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -26371,22 +26813,24 @@ class graph_chains_t(block_chains_vec_t) Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) + has_cached_cfunc(ea) -> bool Do we have a cached decompilation result for 'ea'? - has_cached_cfunc(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function has_mcode_seloff in module ida_hexrays: has_mcode_seloff(*args) has_mcode_seloff(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) hexrays_alloc(size) -> void * - @param size (C++: size_t) + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -26397,15 +26841,17 @@ class hexrays_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, c, ea, buf=None) -> hexrays_failure_t | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, c, ea, buf) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: qstring const & + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -26424,13 +26870,13 @@ class hexrays_failure_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -26445,7 +26891,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) hexrays_free(ptr) - @param ptr (C++: void *) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -26456,36 +26903,43 @@ class hexwarn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26497,13 +26951,13 @@ class hexwarn_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -26523,15 +26977,19 @@ class hexwarns_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> hexwarn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | x: qvector< hexwarn_t > const & + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26540,22 +26998,28 @@ class hexwarns_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: hexwarn_t const & + | + | @param i: size_t + | @param v: hexwarn_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: hexwarn_t const & + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) | @@ -26566,7 +27030,6 @@ class hexwarns_t(__builtin__.object) | | begin(self, *args) | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26579,78 +27042,85 @@ class hexwarns_t(__builtin__.object) | | end(self, *args) | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) | erase(self, it) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator | + | @param it: qvector< hexwarn_t >::iterator | | erase(self, first, last) -> hexwarn_t - | first: qvector< hexwarn_t >::iterator - | last: qvector< hexwarn_t >::iterator + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) | extract(self) -> hexwarn_t | | find(self, *args) | find(self, x) -> hexwarn_t - | x: hexwarn_t const & | - | - | find(self, x) -> hexwarn_t - | x: hexwarn_t const & + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=hexwarn_t()) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | has(self, *args) | has(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | inject(self, *args) | inject(self, s, len) - | s: hexwarn_t * - | len: size_t + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator - | x: hexwarn_t const & + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: hexwarn_t const & | + | @param _newsize: size_t + | @param x: hexwarn_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< hexwarn_t > & + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) | truncate(self) @@ -26687,15 +27157,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | _ea: ea_t - | _lnnum: int - | _x: int - | _y: int | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __init__(self, _ea, p) -> history_item_t - | _ea: ea_t - | p: ctext_position_t const & + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -26703,10 +27174,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -26722,37 +27193,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | compare(self, *args) | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -26764,13 +27242,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y Help on class history_t in module ida_hexrays: @@ -26797,22 +27275,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | pop(self, *args) | pop(self) -> history_item_t | | push(self, *args) | push(self, v) - | v: history_item_t const & + | + | @param v: history_item_t const & | | top(self, *args) | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26831,35 +27313,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26872,78 +27361,85 @@ class history_t(qvector_history_t) | | end(self, *args) | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -26960,314 +27456,329 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) - Check that your plugin is compatible with hex-rays decompiler. This - function must be called before calling any other decompiler function. - init_hexrays_plugin(flags=0) -> bool - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and is compatible with your - plugin + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: install_microcode_filter(*args) + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - install_microcode_filter(filter, install=True) -> bool - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - @return: success + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) + is_additive(op) -> bool Is additive operator? - is_additive(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) + is_assignment(op) -> bool Is assignment operator? - is_assignment(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) + is_binary(op) -> bool Is binary operator? - is_binary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) + is_bitop(op) -> bool Is bit related operator? - is_bitop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) + is_bool_type(type) -> bool Is a boolean type? - is_bool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) + is_break_consumer(op) -> bool Does a break statement influence the specified statement code? - is_break_consumer(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) + is_commutative(op) -> bool Is commutative operator? - is_commutative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) + is_inplace_def(type) -> bool Is struct/union/enum definition (not declaration)? - is_inplace_def(type) -> bool - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) - Is a kernel register? Kernel registers are temporary registers that - can be used freely. They may be used to store values that cross - instruction or basic block boundaries. Kernel registers do not map to - regular processor registers. See also 'mba_t::alloc_kreg()' - is_kreg(r) -> bool - @param r (C++: mreg_t) + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) + is_logical(op) -> bool Is logical operator? - is_logical(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) + is_loop(op) -> bool Is loop statement code? - is_loop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) + is_lvalue(op) -> bool Is Lvalue operator? - is_lvalue(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) is_may_access(maymust) -> bool - @param maymust (C++: maymust_t) + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) is_mcode_addsub(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) is_mcode_call(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) is_mcode_commutative(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) is_mcode_convertible_to_jmp(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) is_mcode_convertible_to_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) is_mcode_divmod(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) is_mcode_fpu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) is_mcode_j1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) is_mcode_jcond(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - is_mcode_propagatable(mcode) -> bool - @param mcode (C++: mcode_t) + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) is_mcode_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) is_mcode_set1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) is_mcode_shift(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) is_mcode_xdsu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) + is_multiplicative(op) -> bool Is multiplicative operator? - is_multiplicative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) + is_nonbool_type(type) -> bool Is definitely a non-boolean type? - is_nonbool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) + is_paf(t) -> bool Is a pointer, array, or function type? - is_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) + is_prepost(op) -> bool Is pre/post increment/decrement operator? - is_prepost(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) + is_ptr_or_array(t) -> bool Is a pointer or array type? - is_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) + is_relational(op) -> bool Is comparison operator? - is_relational(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) is_signed_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) + is_small_udt(tif) -> bool Is a small structure or union? - is_small_udt(tif) -> bool - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) + is_type_correct(ptr) -> bool Verify a type string. - is_type_correct(ptr) -> bool - @param ptr (C++: const type_t *) - @return: true if type string is correct + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) + is_unary(op) -> bool Is unary operator? - is_unary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) is_unsigned_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on class iterator in module ida_hexrays: @@ -27278,15 +27789,18 @@ class iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __init__(self, *args) | __init__(self, n=-1) -> iterator - | n: int + | + | @param n: int | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -27325,32 +27839,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t - | _off: uval_t - | _size: uval_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -27359,11 +27880,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) | compare(self, r) -> int - | r: ivl_t const & + | + | @param r: ivl_t const & | | contains(self, *args) | contains(self, off2) -> bool - | @param off2 (C++: uval_t) + | + | @param off2: uval_t | | dstr(self, *args) | dstr(self) -> char const * @@ -27373,19 +27896,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) | extend_to_cover(self, r) -> bool - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | includes(self, *args) | includes(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | overlap(self, *args) | overlap(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27421,10 +27948,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -27448,16 +27975,16 @@ class ivl_with_name_t(__builtin__.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27479,31 +28006,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -27512,29 +28047,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) | add(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | add(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | add(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) | addmasked(self, ivs, mask) -> bool - | @param ivs (C++: const ivlset_t &) - | @param mask (C++: const ivl_t &) + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) | compare(self, r) -> int - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | contains(self, *args) | contains(self, off) -> bool - | @param off (C++: uval_t) + | + | @param off: uval_t | | count(self, *args) | count(self) -> asize_t @@ -27544,33 +28083,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) | has_common(self, ivl, strict=False) -> bool - | @param ivl (C++: const ivl_t &) - | @param strict (C++: bool) | + | @param ivl: ivl_t const & + | @param strict: bool | | has_common(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | includes(self, *args) | includes(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | intersect(self, *args) | intersect(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | sub(self, *args) | sub(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | sub(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | sub(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27606,7 +28149,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -27622,11 +28166,14 @@ class ivlset_t(uval_ivl_ivlset_t) | | single_value(self, *args) | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -27641,31 +28188,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) jcnd2set(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) lexcompare(a, b) -> int - a: mop_t const & - b: mop_t const & + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. Help on function locate_lvar in module ida_hexrays: locate_lvar(*args) + locate_lvar(out, func_ea, varname) -> bool Find a variable by name. - locate_lvar(out, func_ea, varname) -> bool - @param out: output buffer for the variable locator (C++: - lvar_locator_t *) - @param func_ea: function start address (C++: ea_t) - @param varname: variable name (C++: const char *) - @return: success Since VARNAME is not always enough to find the - variable, it may decompile the function. + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -27676,64 +28229,85 @@ class lvar_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -27746,10 +28320,10 @@ class lvar_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -27763,71 +28337,70 @@ class lvar_locator_t(__builtin__.object) Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) + lvar_mapping_begin(map) -> lvar_mapping_iterator_t Get iterator pointing to the beginning of lvar_mapping_t. - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) + lvar_mapping_clear(map) Clear lvar_mapping_t. - lvar_mapping_clear(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) + lvar_mapping_end(map) -> lvar_mapping_iterator_t Get iterator pointing to the end of lvar_mapping_t. - lvar_mapping_end(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) + lvar_mapping_erase(map, p) Erase current element from lvar_mapping_t. - lvar_mapping_erase(map, p) - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t Find the specified key in lvar_mapping_t. - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) + lvar_mapping_first(p) -> lvar_locator_t Get reference to the current map key. - lvar_mapping_first(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) + lvar_mapping_free(map) Delete lvar_mapping_t instance. - lvar_mapping_free(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -27838,14 +28411,16 @@ class lvar_mapping_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -27862,7 +28437,7 @@ class lvar_mapping_iterator_t(__builtin__.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27873,39 +28448,40 @@ class lvar_mapping_iterator_t(__builtin__.object) Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) + lvar_mapping_new() -> lvar_mapping_t Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) + lvar_mapping_next(p) -> lvar_mapping_iterator_t Move to the next element. - lvar_mapping_next(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) + lvar_mapping_prev(p) -> lvar_mapping_iterator_t Move to the previous element. - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) + lvar_mapping_second(p) -> lvar_locator_t Get reference to the current map value. - lvar_mapping_second(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) + lvar_mapping_size(map) -> size_t Get size of lvar_mapping_t. - lvar_mapping_size(map) -> size_t - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -27921,7 +28497,8 @@ class lvar_mapping_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> lvar_locator_t - | _Keyval: lvar_locator_t const & + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) | size(self) -> size_t @@ -27953,49 +28530,59 @@ class lvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t - | m: mba_t * - | i: int - | o: sval_t | + | @param m: mba_t * + | @param i: int + | @param o: sval_t | | __init__(self, r) -> lvar_ref_t - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: lvar_ref_t &) + | + | @param r: lvar_ref_t & | | var(self, *args) + | var(self) -> lvar_t | Retrieve the referenced variable. | | ---------------------------------------------------------------------- @@ -28008,13 +28595,13 @@ class lvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -28034,14 +28621,16 @@ class lvar_saved_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -28103,25 +28692,25 @@ class lvar_saved_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28138,15 +28727,19 @@ class lvar_saved_infos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_saved_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | x: qvector< lvar_saved_info_t > const & + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28155,22 +28748,28 @@ class lvar_saved_infos_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_saved_info_t const & + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_saved_info_t const & + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) | @@ -28181,7 +28780,6 @@ class lvar_saved_infos_t(__builtin__.object) | | begin(self, *args) | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -28194,78 +28792,85 @@ class lvar_saved_infos_t(__builtin__.object) | | end(self, *args) | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) | erase(self, it) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator | + | @param it: qvector< lvar_saved_info_t >::iterator | | erase(self, first, last) -> lvar_saved_info_t - | first: qvector< lvar_saved_info_t >::iterator - | last: qvector< lvar_saved_info_t >::iterator + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) | extract(self) -> lvar_saved_info_t | | find(self, *args) | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & | - | - | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_saved_info_t()) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_saved_info_t * - | len: size_t + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator - | x: lvar_saved_info_t const & + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_saved_info_t const & | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_saved_info_t > & + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) | truncate(self) @@ -28305,20 +28910,20 @@ class lvar_t(lvar_locator_t) | __repr__ = _swig_repr(self) | | accepts_type(self, *args) - | Check if the variable accept the specified type. Some types are - | forbidden (void, function types, wrong arrays, etc) - | | accepts_type(self, t, may_change_thisarg=False) -> bool - | @param t (C++: const tinfo_t &) - | @param may_change_thisarg (C++: bool) + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) + | append_list(self, mba, lst, pad_if_scattered=False) | Append local variable to mlist. | - | append_list(self, mba, lst, pad_if_scattered=False) - | @param mba: ptr to the current mba_t (C++: const mba_t *) - | @param lst: list to append to (C++: mlist_t *) - | @param pad_if_scattered (C++: bool) + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) | | clear_used(self, *args) | clear_used(self) @@ -28381,54 +28986,63 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) + | has_common(self, v) -> bool | Do variables overlap? | - | has_common(self, v) -> bool - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) + | has_common_bit(self, loc, width2) -> bool | Does the variable overlap with the specified location? | - | has_common_bit(self, loc, width2) -> bool - | @param loc (C++: const vdloc_t &) - | @param width2 (C++: asize_t) + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) + | has_regname(self) -> bool | Has a register name? (like _RAX) | | in_asm(self, *args) + | in_asm(self) -> bool | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) + | is_aliasable(self, mba) -> bool | Is the variable aliasable? | - | is_aliasable(self, mba) -> bool - | @param mba: ptr to the current mba_t Aliasable variables may be - | modified indirectly (through a pointer) (C++: const mba_t - | *) + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) + | is_automapped(self) -> bool | Was the variable automatically mapped to another variable? | | is_decl_unused(self, *args) + | is_decl_unused(self) -> bool | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) + | is_dummy_arg(self) -> bool | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) + | is_forced_var(self) -> bool | Is a forced variable? | | is_noptr_var(self, *args) + | is_noptr_var(self) -> bool | Variable type should not be a pointer. | | is_notarg(self, *args) + | is_notarg(self) -> bool | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) + | is_thisarg(self) -> bool | Is 'this' argument of a C++ member function? | | is_used_byref(self, *args) + | is_used_byref(self) -> bool | Was the address of the variable taken? | | set_arg_var(self, *args) @@ -28447,10 +29061,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) + | set_final_lvar_type(self, t) | Set final variable type. | - | set_final_lvar_type(self, t) - | @param t (C++: const tinfo_t &) + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) | set_floating_var(self) @@ -28459,17 +29073,16 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) - | Set variable type Note: this function does not modify the idb, only - | the lvar instance in the memory. For permanent changes see - | modify_user_lvars() Also, the variable type is not considered as final - | by the decompiler and may be modified later by the type derivation. In - | some cases set_final_var_type() may work better, but it does not do - | persistent changes to the database neither. - | | set_lvar_type(self, t, may_fail=False) -> bool - | @param t: new type (C++: const tinfo_t &) - | @param may_fail: if false and type is bad, interr (C++: bool) - | @return: success + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) | set_mapdst_var(self) @@ -28514,87 +29127,101 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) - | Change the variable width. We call the variable size 'width', it is - | represents the number of bytes. This function may change the variable - | type using 'set_lvar_type()' . - | | set_width(self, w, svw_flags=0) -> bool - | @param w: new width (C++: int) - | @param svw_flags: combination of SVW_... bits (C++: int) - | @return: success + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) - | Get variable type. + | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name + | has_nice_name(self) -> bool | Does the variable have a nice name? | | has_user_info + | has_user_info(self) -> bool | Has any user-defined information? | | has_user_name + | has_user_name(self) -> bool | Has user-defined name? | | has_user_type + | has_user_type(self) -> bool | Has user-defined type? | | is_arg_var + | is_arg_var(self) -> bool | Is the function argument? | | is_fake_var + | is_fake_var(self) -> bool | Is fake return variable? | | is_floating_var + | is_floating_var(self) -> bool | Used by a fpu insn? | | is_mapdst_var + | is_mapdst_var(self) -> bool | Other variable(s) map to this var? | | is_overlapped_var + | is_overlapped_var(self) -> bool | Is overlapped variable? | | is_result_var + | is_result_var(self) -> bool | Is the function result? | | is_spoiled_var + | is_spoiled_var(self) -> bool | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width + | is_unknown_width(self) -> bool | Do we know the width of the variable? | | mreg_done - | Have corresponding microregs been replaced by references to this - | variable? + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed + | typed(self) -> bool | Has the variable a type? | | used + | used(self) -> bool | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28607,57 +29234,76 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | compare(self, *args) | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -28670,10 +29316,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location Help on class lvar_uservec_t in module ida_hexrays: @@ -28694,20 +29340,21 @@ class lvar_uservec_t(__builtin__.object) | empty(self) -> bool | | find_info(self, *args) + | find_info(self, vloc) -> lvar_saved_info_t | find saved user settings for given var | - | find_info(self, vloc) -> lvar_saved_info_t - | @param vloc (C++: const lvar_locator_t &) + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) + | keep_info(self, v) | Preserve user settings for given var. | - | keep_info(self, v) - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: lvar_uservec_t &) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28719,19 +29366,19 @@ class lvar_uservec_t(__builtin__.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28757,37 +29404,36 @@ class lvars_t(qvector_lvar_t) | __repr__ = _swig_repr(self) | | find(self, *args) + | find(self, ll) -> lvar_t | Find variable at the specified location. | - | find(self, ll) -> lvar_t - | @param ll: variable location (C++: const lvar_locator_t &) - | @return: pointer to variable or NULL + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) + | find_input_lvar(self, argloc, _size) -> int | Find input variable at the specified location. | - | find_input_lvar(self, argloc, _size) -> int - | @param argloc: variable location (C++: const vdloc_t &) - | @param _size: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) + | find_lvar(self, location, width, defblk=-1) -> int | Find variable at the specified location. | - | find_lvar(self, location, width, defblk=-1) -> int - | @param location: variable location (C++: const vdloc_t &) - | @param width: variable size (C++: int) - | @param defblk: definition block of the lvar. -1 means any block (C++: - | int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) + | find_stkvar(self, spoff, width) -> int | Find stack variable at the specified location. | - | find_stkvar(self, spoff, width) -> int - | @param spoff: offset from the minimal sp (C++: sval_t) - | @param width: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28806,11 +29452,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28820,35 +29468,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) | capacity(self) -> size_t @@ -28861,16 +29518,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t @@ -28880,51 +29537,61 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -28941,32 +29608,34 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - make_pointer(type) -> tinfo_t - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) - Flush the cached decompilation results. Erases a cache entry for the - specified function. - mark_cfunc_dirty(ea, close_views=False) -> bool - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -28991,7 +29660,8 @@ class mba_range_iterator_t(__builtin__.object) | | set(self, *args) | set(self, mbr) -> bool - | @param mbr (C++: const mba_ranges_t &) + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29003,10 +29673,10 @@ class mba_range_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -29026,11 +29696,12 @@ class mba_ranges_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t - | _pfn: func_t * | + | @param _pfn: func_t * | | __init__(self, r) -> mba_ranges_t - | r: rangevec_t const & + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -29059,10 +29730,10 @@ class mba_ranges_t(__builtin__.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag @@ -29089,66 +29760,62 @@ class mba_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) | _register(self) | | alloc_fict_ea(self, *args) - | Allocate a fictional address. This function can be used to allocate a - | new unique address for a new instruction, if re-using any existing - | address leads to conflicts. For example, if the last instruction of - | the function modifies R0 and falls through to the next function, it - | will be a tail call: LDM R0!, {R4,R7} end of the function start of - | another function In this case R0 generates two different lvars at the - | same address:one modified by LDManother that represents the return - | value from the tail call Another example: a third-party plugin makes a - | copy of an instruction. This may lead to the generation of two - | variables at the same address. Example 3: fictional addresses can be - | used for new instructions created while modifying the microcode. This - | function can be used to allocate a new unique address for a new - | instruction or a variable. The fictional address is selected from an - | unallocated address range. - | | alloc_fict_ea(self, real_ea) -> ea_t - | @param real_ea (C++: ea_t) - | @return: a unique fictional address + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address | | alloc_kreg(self, *args) + | alloc_kreg(self, size, check_size=True) -> mreg_t | Allocate a kernel register. | - | alloc_kreg(self, size, check_size=True) -> mreg_t - | @param size: size of the register in bytes (C++: size_t) - | @param check_size: if true, only the sizes that correspond to a size - | of a basic type will be accepted. (C++: bool) - | @return: allocated register. mr_none means failure. + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. | | alloc_lvars(self, *args) + | alloc_lvars(self) | Allocate local variables. Must be called only immediately after - | 'optimize_global()' , with no modifications to the microcode. Converts - | registers, stack variables, and similar operands into mop_l. This call - | will not fail because all necessary checks were performed in - | 'optimize_global()' . After this call the microcode reaches its final - | state. + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) + | analyze_calls(self, acflags) -> int | Analyze calls and determine calling conventions. | - | analyze_calls(self, acflags) -> int - | @param acflags: permitted actions that are necessary for successful - | detection of calling conventions. See Bits for - | analyze_calls() (C++: int) - | @return: number of calls. -1 means error. + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) - | Get input argument of the decompiled function. - | | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) | - | - | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) + | @param n: int | | argbase(self, *args) | argbase(self) -> sval_t @@ -29163,10 +29830,12 @@ class mba_t(__builtin__.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) - | Build control flow graph. This function may be called only once. It - | calculates the type of each basic block and the adjacency list. - | 'optimize_local()' calls this function if necessary. You need to call - | this function only before MMAT_LOCOPT. + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) | calc_shins_flags(self) -> int @@ -29182,50 +29851,50 @@ class mba_t(__builtin__.object) | | clr_mba_flags(self, *args) | clr_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | clr_mba_flags2(self, *args) | clr_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | code16_bit_removed(self, *args) | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) - | Combine blocks. This function merges blocks constituting linear flow. - | It calls 'remove_empty_and_unreachable_blocks()' as well. + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) - | Make a copy of a block. This function makes a simple copy of the - | block. It does not fix the predecessor and successor lists, they must - | be fixed if necessary. - | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | @param blk: block to copy (C++: mblock_t *) - | @param new_serial: position of the copied block (C++: int) - | @param cpblk_flags: combination of Batch decompilation bits ... bits - | (C++: int) - | @return: pointer to the new copy + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy | | create_helper_call(self, *args) + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t | Create a call of a helper function. | - | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t - | @param ea: The desired address of the instruction (C++: ea_t) - | @param helper: The helper name (C++: const char *) - | @param rettype: The return type (NULL or empty type means 'void') - | (C++: const tinfo_t *) - | @param callargs: The helper arguments (NULL-no arguments) (C++: const - | mcallargs_t *) - | @param out: The operand where the call result should be stored. If - | this argument is not NULL, "mov helper_call(), out" will - | be generated. Otherwise "call helper()" will be generated. - | Note: the size of this operand must be equal to the - | RETTYPE size (C++: const mop_t *) - | @return: pointer to the created instruction or NULL if error + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) | deleted_pairs(self) -> bool @@ -29237,60 +29906,57 @@ class mba_t(__builtin__.object) | display_valnums(self) -> bool | | dump(self, *args) - | Dump microcode to a file. The file will be created in the directory - | pointed by IDA_DUMPDIR envvar. Dump will be created only if IDA is run - | under debugger. + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) | dump_mba(self, _verify, title) - | @param _verify (C++: bool) - | @param title (C++: const char *) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) - | Find an operand in the microcode. This function tries to find the - | operand that matches LIST. Any operand that overlaps with LIST is - | considered as a match. - | | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | @param ctx: context information for the result (C++: op_parent_info_t - | *) - | @param ea: desired address of the operand (C++: ea_t) - | @param is_dest: search for destination operand? this argument may be - | ignored if the exact match could not be found (C++: - | bool) - | @param list: list of locations the correspond to the operand (C++: - | const mlist_t &) - | @return: pointer to the operand or NULL. + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits all instruction and | subinstructions. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | for_all_ops(self, mv) -> int | Visit all operands of all instructions. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) + | for_all_topinsns(self, mv) -> int | Visit all top level instructions. | - | for_all_topinsns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | free_kreg(self, *args) - | Free a kernel register. If wrong arguments are passed, this function - | will generate an internal error. - | | free_kreg(self, reg, size) - | @param reg: a previously allocated kernel register (C++: mreg_t) - | @param size: size of the register in bytes (C++: size_t) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) | generated_asserts(self) -> bool @@ -29302,12 +29968,13 @@ class mba_t(__builtin__.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) - | Get control graph. Call 'build_graph()' if you need the graph before - | MMAT_LOCOPT. + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) | get_ida_argloc(self, v) -> argloc_t - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) | get_lvars_region(self) -> ivl_t @@ -29319,14 +29986,9 @@ class mba_t(__builtin__.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) - | Get basic block by its serial number. - | | get_mblock(self, n) -> mblock_t - | @param n (C++: int) | - | - | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | @param n: int | | get_shadow_region(self, *args) | get_shadow_region(self) -> ivl_t @@ -29335,11 +29997,11 @@ class mba_t(__builtin__.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) - | Get information about various memory regions. We map the stack frame - | to the global memory, to some unused range. - | | get_std_region(self, idx) -> ivl_t - | @param idx (C++: memreg_index_t) + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) | graph_insns(self) -> bool @@ -29358,19 +30020,19 @@ class mba_t(__builtin__.object) | | idaloc2vd(self, *args) | idaloc2vd(self, loc, width) -> vdloc_t - | @param loc (C++: const argloc_t &) - | @param width (C++: int) + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) - | Insert a block in the middle of the mbl array. The very first block of - | microcode must be empty, it is the entry block. The very last block of - | microcode must be BLT_STOP, it is the exit block. Therefore inserting - | a new block before the entry point or after the exit block is not a - | good idea. - | | insert_block(self, bblk) -> mblock_t - | @param bblk: the new block will be inserted before BBLK (C++: int) - | @return: ptr to the new block + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) | is_cdtr(self) -> bool @@ -29389,7 +30051,8 @@ class mba_t(__builtin__.object) | | is_stkarg(self, *args) | is_stkarg(self, v) -> bool - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | is_thunk(self, *args) | is_thunk(self) -> bool @@ -29407,36 +30070,37 @@ class mba_t(__builtin__.object) | lvars_renamed(self) -> bool | | map_fict_ea(self, *args) - | Resolve a fictional address. This function provides a reverse of the - | mapping made by 'alloc_fict_ea()' . - | | map_fict_ea(self, fict_ea) -> ea_t - | @param fict_ea: fictional definition address (C++: ea_t) - | @return: the real instruction address + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address | | mark_chains_dirty(self, *args) - | Mark the microcode use-def chains dirty. Call this function is any - | inter-block data dependencies got changed because of your - | modifications to the microcode. Failing to do so may cause an internal - | error. + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) | may_refine_rettype(self) -> bool | | optimize_global(self, *args) - | Optimize microcode globally. This function applies various - | optimization methods until we reach the fixed point. After that it - | preallocates lvars unless reqmat forbids it. + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) + | optimize_local(self, locopt_bits) -> int | Optimize each basic block locally | - | optimize_local(self, locopt_bits) -> int - | @param locopt_bits: combination of Bits for optimize_local() bits - | (C++: int) - | @return: number of changes. 0 means nothing changed This function is - | called by the decompiler, usually there is no need to call it - | explicitly. + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) | optimized(self) -> bool @@ -29454,16 +30118,16 @@ class mba_t(__builtin__.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) + | remove_block(self, blk) -> bool | Delete a block. | - | remove_block(self, blk) -> bool - | @param blk: block to delete (C++: mblock_t *) - | @return: true if at least one of the other blocks became empty or - | unreachable + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | | remove_empty_and_unreachable_blocks(self, *args) - | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP - | won't be deleted. + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) | returns_fpval(self) -> bool @@ -29472,33 +30136,36 @@ class mba_t(__builtin__.object) | rtype_refined(self) -> bool | | save_snapshot(self, *args) + | save_snapshot(self, description) | Create and save microcode snapshot. | - | save_snapshot(self, description) - | @param description (C++: const char *) + | @param description: (C++: const char *) char const * | | saverest_done(self, *args) | saverest_done(self) -> bool | | serialize(self, *args) + | serialize(self) | Serialize mbl array into a sequence of bytes. | | set_maturity(self, *args) + | set_maturity(self, mat) -> bool | Set maturity level. | - | set_maturity(self, mat) -> bool - | @param mat (C++: mba_maturity_t) - | @return: true if it is time to stop analysis Plugins may use this - | function to skip some parts of the analysis. The maturity - | level cannot be decreased. + | @param mat: (C++: mba_maturity_t) enum mba_maturity_t + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) | set_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | set_mba_flags2(self, *args) | set_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | short_display(self, *args) | short_display(self) -> bool @@ -29511,11 +30178,13 @@ class mba_t(__builtin__.object) | | stkoff_ida2vd(self, *args) | stkoff_ida2vd(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) | stkoff_vd2ida(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | term(self, *args) | term(self) @@ -29531,25 +30200,25 @@ class mba_t(__builtin__.object) | | vd2idaloc(self, *args) | vd2idaloc(self, loc, width, spd) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) - | spd: sval_t | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t | | vd2idaloc(self, loc, width) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) + | verify(self, always) | Verify microcode consistency. | - | verify(self, always) - | @param always: if false, the check will be performed only if ida runs - | under debugger If any inconsistency is discovered, an - | internal error will be generated. We strongly recommend - | you to call this function before returing control to - | the decompiler from your callbacks, in the case if you - | modified the microcode. (C++: bool) + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. | | write_to_const_detected(self, *args) | write_to_const_detected(self) -> bool @@ -29559,7 +30228,10 @@ class mba_t(__builtin__.object) | | deserialize(*args) | deserialize(bytes) -> mba_t - | bytes: uchar const * + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29571,150 +30243,150 @@ class mba_t(__builtin__.object) | list of weak references to the object (if defined) | | aliased_args - | mba_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mba_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mba_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mba_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mba_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mba_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mba_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs | | deprecated_idb_node - | mba_t_deprecated_idb_node_get(self) -> netnode + | deprecated_idb_node | | entry_ea - | mba_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mba_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mba_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mba_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mba_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mba_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mba_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mba_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mba_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mba_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mba_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node | | idb_spoiled - | mba_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mba_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mba_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mba_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mba_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mba_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mba_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mba_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mba_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mba_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mba_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mba_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mba_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mba_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mba_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mba_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mba_t_qty_get(self) -> int + | qty | | reqmat - | mba_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mba_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mba_t_retsize_get(self) -> int + | retsize | | retvaridx - | mba_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mba_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mba_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mba_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mba_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mba_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mba_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mba_t_vars_get(self) -> lvars_t + | vars | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -29726,7 +30398,8 @@ Help on function mba_t_deserialize in module ida_hexrays: mba_t_deserialize(*args) mba_t_deserialize(bytes) -> mba_t - bytes: uchar const * + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -29749,54 +30422,55 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) + | get_du(self, gctype) -> graph_chains_t | Get def-use chains. | - | get_du(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | + | @param n: int | | get_ud(self, *args) + | get_ud(self, gctype) -> graph_chains_t | Get use-def chains. | - | get_ud(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) + | is_du_chain_dirty(self, gctype) -> bool | Is the def-use chain of the specified kind dirty? | - | is_du_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST redefined in the graph? | - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) + | is_ud_chain_dirty(self, gctype) -> bool | Is the use-def chain of the specified kind dirty? | - | is_ud_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST used in the graph? | - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29808,10 +30482,10 @@ class mbl_graph_t(simple_graph_t) | Data descriptors inherited from simple_graph_t: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -29823,9 +30497,10 @@ class mbl_graph_t(simple_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -29838,7 +30513,8 @@ class mbl_graph_t(simple_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -29848,65 +30524,77 @@ class mbl_graph_t(simple_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -29936,208 +30624,184 @@ class mblock_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) - | Append def-list of an operand. This function calculates list of - | locations that may or must be modified by the operand and appends it - | to LIST. - | | append_def_list(self, list, op, maymust) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the def list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) - | Append use-list of an operand. This function calculates list of - | locations that may or must be used by the operand and appends it to - | LIST. - | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the use list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @param mask: if only part of the operand should be considered, a - | bitmask can be used to specify which part. example: - | op=AX,mask=0xFF means that we will consider only AL. - | (C++: bitrange_t) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) - | Build def-list of an instruction. This function calculates list of - | locations that may or must be modified by the instruction. Examples: - | "stx ebx.4, ds.2, eax.4", may-list: all aliasable memory "stx ebx.4, - | ds.2, eax.4", must-list: empty Since STX uses EAX for indirect access, - | it may modify any aliasable memory. On the other hand, we cannot tell - | for sure which memory cells will be modified, this is why the must- - | list is empty. - | | build_def_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the def list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated def-list + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) + | build_lists(self, kill_deads) -> int | Build def-use lists and eliminate deads. | - | build_lists(self, kill_deads) -> int - | @param kill_deads: do delete dead instructions? (C++: bool) - | @return: the number of eliminated instructions Better mblock_t::call - | make_lists_ready() rather than this function. + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) - | Build use-list of an instruction. This function calculates list of - | locations that may or must be used by the instruction. Examples: "ldx - | ds.2, eax.4, ebx.4", may-list: all aliasable memory "ldx ds.2, eax.4, - | ebx.4", must-list: empty Since LDX uses EAX for indirect access, it - | may access any aliasable memory. On the other hand, we cannot tell for - | sure which memory cells will be accessed, this is why the must-list is - | empty. - | | build_use_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the use list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated use-list + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) - | Dump block info. This function is useful for debugging, see - | 'mba_t::dump' for info + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) | dump_block(self, title) - | @param title (C++: const char *) + | + | @param title: char const * | | empty(self, *args) | empty(self) -> bool | | find_access(self, *args) - | Find the instruction that accesses the specified operand. This - | function search inside one block. - | | find_access(self, op, parent, mend, fdflags) -> minsn_t - | @param op: operand to search for (C++: const mop_t &) - | @param parent (C++: minsn_t **) - | @param mend (C++: const minsn_t *) - | @param fdflags (C++: int) - | @return: the instruction that accesses the operand. this instruction - | may be a sub-instruction. to find out the top level - | instruction, check out *p_i1. NULL means 'not found'. + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param p_i1: ptr to ptr to a top level instruction. denotes the beginning of the + | search range. + | @param mend: (C++: const minsn_t *) minsn_t const * + | @param fdflags: (C++: int) + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) - | Find the first insn that uses the specified list in the insn range. - | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. Upon return LIST will - | contain only locations not redefined by insns [i1..result] + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) - | Find the first insn that redefines any part of the list in the insn - | range. - | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits subinstructions too. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: zero or the value returned by mv.visit_insn() See also - | mba_t::for_all_topinsns() + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) + | for_all_ops(self, mv) -> int | Visit all operands. This function visit subinstruction operands too. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: zero or the value returned by mv.visit_mop() + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) + | for_all_uses(self, list, i1, i2, mmv) -> int | Visit all operands that use LIST. | - | for_all_uses(self, list, i1, i2, mmv) -> int - | @param list: ptr to the list of locations. it may be modified: parts - | that get redefined by the instructions in [i1,i2) will be - | deleted. (C++: mlist_t *) - | @param i1: starting instruction. must be a top level insn. (C++: - | minsn_t *) - | @param i2: ending instruction (excluded). must be a top level insn. - | (C++: minsn_t *) - | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) - | @return: zero or the value returned by mmv.visit_mop() + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) - | Calculate number of regular instructions in the block. Assertions are - | skipped by this function. + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) - | Find possible values for a block. - | | get_valranges(self, res, vivl, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) - | + | Find possible values for an instruction. | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | m: minsn_t const * - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) + | insert_into_block(self, nm, om) -> minsn_t | Insert instruction into the doubly linked list | - | insert_into_block(self, nm, om) -> minsn_t - | @param nm: new instruction (C++: minsn_t *) - | @param om: existing instruction, part of the doubly linked list if - | NULL, then the instruction will be inserted at the - | beginning of the list NM will be inserted immediately after - | OM (C++: minsn_t *) - | @return: pointer to NM + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) | is_branch(self) -> bool @@ -30149,32 +30813,26 @@ class mblock_t(__builtin__.object) | is_nway(self) -> bool | | is_redefined(self, *args) + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list redefined by the specified instructions? | - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) - | Is the right hand side of the instruction redefined the insn range? - | "right hand side" corresponds to the source operands of the - | instruction. - | | is_rhs_redefined(self, ins, i1, i2) -> bool - | @param ins: instruction to consider (C++: const minsn_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) | is_simple_goto_block(self) -> bool @@ -30186,20 +30844,16 @@ class mblock_t(__builtin__.object) | is_unknown_call(self) -> bool | | is_used(self, *args) + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list used by the specified instruction range? | - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) | lists_dirty(self) -> bool @@ -30211,12 +30865,11 @@ class mblock_t(__builtin__.object) | make_lists_ready(self) -> int | | make_nop(self, *args) - | Erase the instruction (convert it to nop) and mark the lists dirty. - | This is the recommended function to use because it also marks the - | block use-def lists dirty. - | | make_nop(self, m) - | @param m (C++: minsn_t *) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) | mark_lists_dirty(self) @@ -30225,49 +30878,57 @@ class mblock_t(__builtin__.object) | needs_propagation(self) -> bool | | npred(self, *args) + | npred(self) -> int | Get number of block predecessors. | | nsucc(self, *args) + | nsucc(self) -> int | Get number of block successors. | | optimize_block(self, *args) + | optimize_block(self) -> int | Optimize a basic block. Usually there is no need to call this function - | explicitly because the decompiler will call it itself if - | 'optinsn_t::func' or 'optblock_t::func' return non-zero. + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int | Optimize one instruction in the context of the block. | - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | @param m: pointer to a top level instruction (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the block This function may change - | other instructions in the block too. However, it will not - | destroy top level instructions (it may convert them to - | nop's). This function performs only intrablock modifications. - | See also minsn_t::optimize_solo() + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) - | Remove a jump at the end of the block if it is useless. This function - | preserves any side effects when removing a useless jump. Both - | conditional and unconditional jumps are handled (and jtbl too). This - | function deletes useless jumps, not only replaces them with a nop. - | (please note that \optimize_insn does not handle useless jumps). + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) | pred(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) + | remove_from_block(self, m) -> minsn_t | Remove instruction from the doubly linked list | - | remove_from_block(self, m) -> minsn_t - | @param m: instruction to remove The removed instruction is not - | deleted, the caller gets its ownership (C++: minsn_t *) - | @return: pointer to the next instruction + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) | request_demote64(self) @@ -30277,7 +30938,8 @@ class mblock_t(__builtin__.object) | | succ(self, *args) | succ(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -30292,70 +30954,70 @@ class mblock_t(__builtin__.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mba_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30377,70 +31039,79 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | rarg: mop_t const & + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) | copy_mop(self, op) - | @param op (C++: const mop_t &) + | + | @param op: mop_t const & | | dstr(self, *args) | dstr(self) -> char const * | | make_int(self, *args) | make_int(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) | make_uint(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) | set_regarg(self, mr, sz, tif) - | @param mr (C++: mreg_t) - | @param sz (C++: int) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & | | set_regarg(self, mr, tif) - | @param mr (C++: mreg_t) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param tif: tinfo_t const & | | set_regarg(self, mr, dt, sign=type_unsigned) - | @param mr (C++: mreg_t) - | dt: char - | sign: type_sign_t + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea | | flags - | mcallarg_t_flags_get(self) -> uint32 + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30453,15 +31124,18 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -30474,6 +31148,8 @@ class mcallarg_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) | _get_a(self) -> mop_addr_t | @@ -30523,90 +31199,84 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -30628,173 +31298,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | empty(self, *args) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -30803,122 +31517,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -30933,29 +31647,32 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -30968,140 +31685,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -31121,36 +31834,37 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -31192,7 +31906,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -31203,13 +31917,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum Help on class mcallargs_t in module ida_hexrays: @@ -31220,15 +31934,19 @@ class mcallargs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mcallarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | x: qvector< mcallarg_t > const & + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31238,33 +31956,39 @@ class mcallargs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: mcallarg_t const & + | + | @param i: size_t + | @param v: mcallarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: mcallarg_t const & + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | at(self, *args) | at(self, _idx) -> mcallarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -31277,78 +32001,85 @@ class mcallargs_t(__builtin__.object) | | end(self, *args) | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) | erase(self, it) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator | + | @param it: qvector< mcallarg_t >::iterator | | erase(self, first, last) -> mcallarg_t - | first: qvector< mcallarg_t >::iterator - | last: qvector< mcallarg_t >::iterator + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) | extract(self) -> mcallarg_t | | find(self, *args) | find(self, x) -> mcallarg_t - | x: mcallarg_t const & | - | - | find(self, x) -> mcallarg_t - | x: mcallarg_t const & + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mcallarg_t()) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: mcallarg_t * - | len: size_t + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator - | x: mcallarg_t const & + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: mcallarg_t const & | + | @param _newsize: size_t + | @param x: mcallarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< mcallarg_t > & + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) | truncate(self) @@ -31380,15 +32111,19 @@ class mcallinfo_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | _callee: ea_t - | _sargs: int + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, size=-1, shins_flags=0x04|0x02) - | size: int - | shins_flags: int + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) | dstr(self) -> char const * @@ -31401,11 +32136,13 @@ class mcallinfo_t(__builtin__.object) | | lexcompare(self, *args) | lexcompare(self, f) -> int - | @param f (C++: const mcallinfo_t &) + | + | @param f: mcallinfo_t const & | | set_type(self, *args) | set_type(self, type) -> bool - | @param type (C++: const tinfo_t &) + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31417,58 +32154,58 @@ class mcallinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31485,30 +32222,36 @@ class mcases_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -31517,7 +32260,8 @@ class mcases_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: mcases_t const & + | + | @param r: mcases_t const & | | dstr(self, *args) | dstr(self) -> char const * @@ -31527,14 +32271,16 @@ class mcases_t(__builtin__.object) | | resize(self, *args) | resize(self, s) - | @param s (C++: int) + | + | @param s: int | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | @param r (C++: mcases_t &) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31546,13 +32292,13 @@ class mcases_t(__builtin__.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31564,7 +32310,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) mcode_modifies_d(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -31577,25 +32324,26 @@ class microcode_filter_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) + | match(self, cdg) -> bool | check if the filter object is to be appied | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) - | @return: success + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31624,15 +32372,17 @@ class minsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t - | _ea: ea_t | + | @param _ea: ea_t | | __init__(self, m) -> minsn_t - | m: minsn_t const & + | + | @param m: minsn_t const & | | __lt__(self, *args) | __lt__(self, ri) -> bool - | ri: minsn_t const & + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -31645,10 +32395,10 @@ class minsn_t(__builtin__.object) | | _ensure_no_obj(self, o, attr, attr_is_acquired) | + | _ensure_ownership_transferrable(self, v) + | | _make_nop(self, *args) - | Convert instruction to nop. This function erases all info but the - | prev/next fields. In most cases it is better to use - | 'mblock_t::make_nop()' , which also marks the block lists as dirty. + | _make_nop(self) | | _maybe_disown_and_deregister(self) | @@ -31667,7 +32417,10 @@ class minsn_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) @@ -31700,97 +32453,85 @@ class minsn_t(__builtin__.object) | clr_tailcall(self) | | contains_call(self, *args) + | contains_call(self, with_helpers=False) -> bool | Does the instruction contain a call? | - | contains_call(self, with_helpers=False) -> bool - | @param with_helpers (C++: bool) + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) + | contains_opcode(self, mcode) -> bool | Does the instruction have the specified opcode? This function searches | subinstructions as well. | - | contains_opcode(self, mcode) -> bool - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: (C++: mcode_t) opcode to search for. | | dstr(self, *args) + | dstr(self) -> char const * | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) - | Compare instructions. This is the main comparison function for - | instructions. - | | equal_insns(self, m, eqflags) -> bool - | @param m: instruction to compare with (C++: const minsn_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) + | find_call(self, with_helpers=False) -> minsn_t | Find a call instruction. Check for the current instruction and its | subinstructions. | - | find_call(self, with_helpers=False) -> minsn_t - | @param with_helpers: consider helper calls as well? (C++: bool) + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) - | Find an operand that is a subinsruction with the specified opcode. - | This function checks only the 'l' and 'r' operands of the current - | insn. - | | find_ins_op(self, op=m_nop) -> minsn_t - | @param op: opcode to search for (C++: mcode_t) - | @return: &l or &r or NULL + | + | @param op: enum mcode_t | | find_num_op(self, *args) - | Find a numeric operand of the current instruction. This function - | checks only the 'l' and 'r' operands of the current insn. + | find_num_op(self) -> mop_t | | find_opcode(self, *args) - | Find a (sub)insruction with the specified opcode. - | | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) | - | - | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: enum mcode_t | | for_all_insns(self, *args) - | Visit all instructions. This function visits the instruction itself - | and all its subinstructions. - | | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) - | Visit all instruction operands. This function visits subinstruction - | operands as well. - | | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) + | get_role(self) -> funcrole_t | Get the function role of a call. | | get_split_size(self, *args) | get_split_size(self) -> int | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Does the instruction have a side effect? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? stx is always considered as - | having side effects. Apart from ldx/std - | only call may have side effects. (C++: - | bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) + | is_after(self, m) -> bool | Is the instruction after the specified one? | - | is_after(self, m) -> bool - | @param m: the instruction to compare against in the list (C++: const - | minsn_t *) + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) | is_alloca(self) -> bool @@ -31799,15 +32540,13 @@ class minsn_t(__builtin__.object) | is_assert(self) -> bool | | is_between(self, *args) + | is_between(self, m1, m2) -> bool | Is the instruction in the specified range of instructions? | - | is_between(self, m1, m2) -> bool - | @param m1: beginning of the range in the doubly linked list (C++: - | const minsn_t *) - | @param m2: end of the range in the doubly linked list (excluded, may - | be NULL) This function assumes that m1 and m2 belong to the - | same basic block and they are top level instructions. (C++: - | const minsn_t *) + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) | is_bswap(self) -> bool @@ -31831,13 +32570,12 @@ class minsn_t(__builtin__.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) - | Is a helper call with the specified name? Helper calls usually have - | well-known function names (see 'Well known function names' ) but they - | may have any other name. The decompiler does not assume any special - | meaning for non-well-known names. - | | is_helper(self, name) -> bool - | @param name (C++: const char *) + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) | is_ignlowsrc(self) -> bool @@ -31864,10 +32602,11 @@ class minsn_t(__builtin__.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) + | is_noret_call(self, flags=0) -> bool | Is a non-returing call? | - | is_noret_call(self, flags=0) -> bool - | @param flags (C++: int) + | @param ignore_noret_icall: if set, indirect calls to noret functions will return + | false | | is_optional(self, *args) | is_optional(self) -> bool @@ -31885,49 +32624,52 @@ class minsn_t(__builtin__.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) + | is_unknown_call(self) -> bool | Is an unknown call? Unknown calls are calls without the argument list - | ( 'mcallinfo_t' ). Usually the argument lists are determined by - | 'mba_t::analyze_calls()' . Unknown calls exist until the MMAT_CALLS - | maturity level. See also mblock_t::is_call_block + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) | is_wild_match(self) -> bool | | lexcompare(self, *args) | lexcompare(self, ri) -> int - | @param ri (C++: const minsn_t &) + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) - | Does the instruction modify its 'd' operand? Some instructions (e.g. - | m_stx) do not modify the 'd' operand. + | modifes_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) - | Optimize one instruction without context. This function does not have - | access to the instruction context (the previous and next instructions - | in the list, the block number, etc). It performs only basic - | optimizations that are available without this info. - | | optimize_solo(self, optflags=0) -> int - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes, 0-unchanged See also - | mblock_t::optimize_insn() + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int | Optimize instruction in its context. Do not use this function, use | mblock_t::optimize() | - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | @param blk (C++: mblock_t *) - | @param top (C++: minsn_t *) - | @param parent (C++: minsn_t *) - | @param converted_call (C++: ea_t *) - | @param optflags (C++: int) + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | @@ -31972,7 +32714,8 @@ class minsn_t(__builtin__.object) | | set_split_size(self, *args) | set_split_size(self, s) - | @param s (C++: int) + | + | @param s: int | | set_tailcall(self, *args) | set_tailcall(self) @@ -31981,18 +32724,17 @@ class minsn_t(__builtin__.object) | set_wild_match(self) | | setaddr(self, *args) - | Change the instruction address. This function modifies subinstructions - | as well. - | | setaddr(self, new_ea) - | @param new_ea (C++: ea_t) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) - | Swap two instructions. The prev/next fields are not modified by this - | function because it would corrupt the doubly linked list. - | | swap(self, m) - | @param m (C++: minsn_t &) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) | was_noret_icall(self) -> bool @@ -32010,33 +32752,33 @@ class minsn_t(__builtin__.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -32063,9 +32805,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -32094,16 +32837,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -32116,13 +32859,15 @@ class mlist_mop_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op) -> int - | @param op (C++: mop_t *) + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32134,19 +32879,19 @@ class mlist_mop_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32163,36 +32908,44 @@ class mlist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | ivl: ivl_t const & + | __init__(self, ivl) -> mlist_t | + | @param ivl: ivl_t const & | | __init__(self, r, size) -> mlist_t - | r: mreg_t - | size: int + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -32201,32 +32954,35 @@ class mlist_t(__builtin__.object) | | add(self, *args) | add(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | add(self, r) -> bool - | @param r (C++: mreg_t) | + | @param r: rlist_t const & | | add(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | add(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | addmem(self, *args) | addmem(self, ea, size) -> bool - | @param ea (C++: ea_t) - | @param size (C++: asize_t) + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int - | r: mlist_t const & + | + | @param r: mlist_t const & | | count(self, *args) | count(self) -> asize_t @@ -32239,53 +32995,62 @@ class mlist_t(__builtin__.object) | | has(self, *args) | has(self, r) -> bool - | @param r (C++: mreg_t) + | + | @param r: mreg_t | | has_all(self, *args) | has_all(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) | has_any(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) | has_common(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | has_memory(self, *args) | has_memory(self) -> bool | | includes(self, *args) | includes(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | intersect(self, *args) | intersect(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) | is_subset_of(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | sub(self, *args) | sub(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | sub(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | sub(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: mlist_t &) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32297,10 +33062,10 @@ class mlist_t(__builtin__.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -32325,55 +33090,64 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | v: uint64 - | _ea: ea_t - | n: int + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | update_value(self, *args) | update_value(self, val64) - | @param val64 (C++: uint64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32391,33 +33165,31 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) + modify_user_lvar_info(func_ea, mli_flags, info) -> bool Modify saved local variable settings of one variable. - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - @param func_ea: function start address (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) + modify_user_lvars(entry_ea, mlv) -> bool Modify saved local variable settings. - modify_user_lvars(entry_ea, mlv) -> bool - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -32433,28 +33205,31 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | ra: mop_addr_t const & + | __init__(self, ra) -> mop_addr_t | + | @param ra: mop_addr_t const & | | __init__(self, ra, isz, osz) -> mop_addr_t - | ra: mop_t const & - | isz: int - | osz: int + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | | lexcompare(self, *args) | lexcompare(self, ra) -> int - | @param ra (C++: const mop_addr_t &) + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -32470,15 +33245,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -32491,6 +33269,8 @@ class mop_addr_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) | _get_a(self) -> mop_addr_t | @@ -32540,90 +33320,84 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -32642,170 +33416,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) | dstr(self) -> char const * @@ -32814,11 +33635,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -32827,122 +33648,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -32957,29 +33778,32 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -32992,136 +33816,131 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -33141,36 +33960,37 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -33212,7 +34032,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -33223,13 +34043,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum Help on class mop_pair_t in module ida_hexrays: @@ -33253,10 +34073,10 @@ class mop_pair_t(__builtin__.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -33276,24 +34096,29 @@ class mop_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | rop: mop_t const & + | __init__(self, rop) -> mop_t | + | @param rop: mop_t const & | | __init__(self, _r, _s) -> mop_t - | _r: mreg_t - | _s: int + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -33308,6 +34133,8 @@ class mop_t(__builtin__.object) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) | _get_a(self) -> mop_addr_t | @@ -33357,90 +34184,84 @@ class mop_t(__builtin__.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -33459,170 +34280,217 @@ class mop_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) | dstr(self) -> char const * @@ -33631,11 +34499,11 @@ class mop_t(__builtin__.object) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -33644,122 +34512,122 @@ class mop_t(__builtin__.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -33774,29 +34642,32 @@ class mop_t(__builtin__.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -33809,140 +34680,136 @@ class mop_t(__builtin__.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -33962,36 +34829,37 @@ class mop_t(__builtin__.object) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -34033,7 +34901,7 @@ class mop_t(__builtin__.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -34044,7 +34912,7 @@ class mop_t(__builtin__.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -34053,7 +34921,7 @@ class mop_t(__builtin__.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34077,23 +34945,25 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op, type, is_target) -> int - | @param op (C++: mop_t *) - | @param type (C++: const tinfo_t *) - | @param is_target (C++: bool) + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -34114,16 +34984,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -34134,15 +35004,19 @@ class mopvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mop_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | x: qvector< mop_t > const & + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34152,33 +35026,39 @@ class mopvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: mop_t const & + | + | @param i: size_t + | @param v: mop_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: mop_t const & + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | at(self, *args) | at(self, _idx) -> mop_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) | capacity(self) -> size_t @@ -34191,78 +35071,85 @@ class mopvec_t(__builtin__.object) | | end(self, *args) | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) | erase(self, it) -> mop_t - | it: qvector< mop_t >::iterator | + | @param it: qvector< mop_t >::iterator | | erase(self, first, last) -> mop_t - | first: qvector< mop_t >::iterator - | last: qvector< mop_t >::iterator + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) | extract(self) -> mop_t | | find(self, *args) | find(self, x) -> mop_t - | x: mop_t const & | - | - | find(self, x) -> mop_t - | x: mop_t const & + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mop_t()) - | x: mop_t const & + | + | @param x: mop_t const & | | has(self, *args) | has(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | inject(self, *args) | inject(self, s, len) - | s: mop_t * - | len: size_t + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> mop_t - | it: qvector< mop_t >::iterator - | x: mop_t const & + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: mop_t const & + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: mop_t const & | + | @param _newsize: size_t + | @param x: mop_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< mop_t > & + | + | @param r: qvector< mop_t > & | | truncate(self, *args) | truncate(self) @@ -34288,45 +35175,46 @@ class mopvec_t(__builtin__.object) Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) + mreg2reg(reg, width) -> int Map a microregister to a processor register. - mreg2reg(reg, width) -> int - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - must_mcode_close_block(mcode, including_calls) -> bool - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case: unknown - calls (is_unknown_call) are considered as - closing opcodes. (C++: bool) + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) negate_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) + negated_relation(op) -> ctype_t Negate a comparison operator. For example, cot_sge becomes cot_slt. - negated_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -34337,44 +35225,57 @@ class number_format_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t - | _opnum: int + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | | get_radix(self, *args) + | get_radix(self) -> int | Get number radix + | + | @return: 2,8,10, or 16 | | has_unmutable_type(self, *args) | has_unmutable_type(self) -> bool | | is_char(self, *args) + | is_char(self) -> bool | Is a character constant? | | is_dec(self, *args) + | is_dec(self) -> bool | Is a decimal number? | | is_enum(self, *args) + | is_enum(self) -> bool | Is a symbolic constant? | | is_fixed(self, *args) - | Is number representation fixed? Fixed representation cannot be - | modified by the decompiler + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) + | is_hex(self) -> bool | Is a hexadecimal number? | | is_numop(self, *args) + | is_numop(self) -> bool | Is a number? | | is_oct(self, *args) + | is_oct(self) -> bool | Is a octal number? | | is_stroff(self, *args) + | is_stroff(self) -> bool | Is a structure field offset? | | needs_to_be_inverted(self, *args) - | Does the number need to be negated or bitwise negated? Returns true if - | the user requested a negation but it is not done yet + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34386,25 +35287,25 @@ class number_format_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34421,9 +35322,10 @@ class op_parent_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34437,19 +35339,19 @@ class op_parent_info_t(__builtin__.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34460,37 +35362,37 @@ class op_parent_info_t(__builtin__.object) Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) - Does operator use the 'x' field of 'cexpr_t' ? - op_uses_x(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) - Does operator use the 'y' field of 'cexpr_t' ? - op_uses_y(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) - Does operator use the 'z' field of 'cexpr_t' ? - op_uses_z(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - open_pseudocode(ea, flags) -> vdui_t - @param ea: function to decompile (C++: ea_t) - @param flags: a combination of OPF_ flags (C++: int) - @return: false if failed + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -34501,38 +35403,46 @@ class operand_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t - | _ea: ea_t - | _opnum: int + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34544,10 +35454,10 @@ class operand_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -34569,21 +35479,20 @@ class optblock_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optblock_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) - | Optimize a block. This function usually performs the optimizations - | that require analyzing the entire block and/or its neighbors. For - | example it can recognize patterns and perform conversions like: b0: - | b0: ... ... jnz x, 0, @b2 => jnz x, 0, @b2 b1: b1: add x, 0, y mov x, - | y ... ... - | | func(self, blk) -> int - | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) - | @return: number of changes made to the block. See also - | mark_lists_dirty. + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) | install(self) @@ -34620,31 +35529,29 @@ class optinsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optinsn_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) + | func(self, blk, ins, optflags) -> int | Optimize an instruction. | - | func(self, blk, ins, optflags) -> int - | @param blk: current basic block. maybe NULL, which means that the - | instruction must be optimized without context (C++: - | mblock_t *) - | @param ins: instruction to optimize; it is always a top-level - | instruction. the callback may not delete the instruction - | but may convert it into nop (see mblock_t::make_nop ). to - | optimize sub-instructions, visit them using - | minsn_visitor_t . sub-instructions may not be converted - | into nop but can be converted to "mov x,x". for example: - | add x,0,x => mov x,x this callback may change other - | instructions in the block, but should do this with care, - | e.g. to no break the propagation algorithm if called with - | OPTI_NO_LDXOPT. (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the instruction. if after this call - | the instruction's use/def lists have changed, you must mark - | the block level lists as dirty (see mark_lists_dirty) + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) | install(self) @@ -34673,228 +35580,38 @@ class optinsn_t(__builtin__.object) Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) + parse_user_call(udc, decl, silent) -> bool Convert function type declaration into internal structure - parse_user_call(udc, decl, silent) -> bool - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) + partial_type_num(type) -> int Calculate number of partial subtypes. - partial_type_num(type) -> int - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - print_vdloc(loc, nbytes) - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(__builtin__.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | x: qlist< cinsn_t > const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | - | erase(self, p) - | p: qlist_cinsn_t_iterator - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | insert(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | x: cinsn_t const & - | - | push_front(self, *args) - | push_front(self, x) - | x: cinsn_t const & - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) - | remove(self, v) -> bool - | v: cinsn_t const & - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | x: qlist< cinsn_t > & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qlist_cinsn_t(self) - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(__builtin__.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __next__(self, *args) - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | next = __next__(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qlist_cinsn_t_iterator(self) - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -34910,15 +35627,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t - | f: cfunc_t const * - | tags: bool + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) | get_s(self) -> qstring @@ -34932,7 +35653,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -34940,16 +35661,19 @@ class qstring_printer_t(vc_printer_t) | __disown__(self) | | oneliner(self, *args) + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data and other attributes inherited from vc_printer_t: @@ -34967,17 +35691,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) qswap(a, b) - a: cinsn_t & - b: cinsn_t & + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -34988,15 +35713,19 @@ class qvector_carg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | x: qvector< carg_t > const & + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35005,22 +35734,28 @@ class qvector_carg_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) | @@ -35031,7 +35766,6 @@ class qvector_carg_t(__builtin__.object) | | begin(self, *args) | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35044,78 +35778,85 @@ class qvector_carg_t(__builtin__.object) | | end(self, *args) | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -35147,15 +35888,19 @@ class qvector_ccase_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | x: qvector< ccase_t > const & + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35164,22 +35909,28 @@ class qvector_ccase_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) | @@ -35190,7 +35941,6 @@ class qvector_ccase_t(__builtin__.object) | | begin(self, *args) | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35203,78 +35953,85 @@ class qvector_ccase_t(__builtin__.object) | | end(self, *args) | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -35306,15 +36063,19 @@ class qvector_history_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | x: qvector< history_item_t > const & + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35324,33 +36085,39 @@ class qvector_history_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | at(self, *args) | at(self, _idx) -> history_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35363,78 +36130,85 @@ class qvector_history_t(__builtin__.object) | | end(self, *args) | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -35466,15 +36240,19 @@ class qvector_lvar_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | x: qvector< lvar_t > const & + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35483,22 +36261,28 @@ class qvector_lvar_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) | @@ -35509,7 +36293,6 @@ class qvector_lvar_t(__builtin__.object) | | begin(self, *args) | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35522,78 +36305,85 @@ class qvector_lvar_t(__builtin__.object) | | end(self, *args) | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t | | find(self, *args) | find(self, x) -> lvar_t - | x: lvar_t const & | - | - | find(self, x) -> lvar_t - | x: lvar_t const & + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -35619,113 +36409,116 @@ class qvector_lvar_t(__builtin__.object) Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) + reg2mreg(reg) -> mreg_t Map a processor register to a microregister. - reg2mreg(reg) -> mreg_t - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) remitem(e) - @param e (C++: const citem_t *) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. Help on function rename_lvar in module ida_hexrays: rename_lvar(*args) + rename_lvar(func_ea, oldname, newname) -> bool Rename a local variable. - rename_lvar(func_ea, oldname, newname) -> bool - @param func_ea: function start address (C++: ea_t) - @param oldname: old name of the variable (C++: const char *) - @param newname: new name of the variable (C++: const char *) - @return: success This is a convenience function. For bulk renaming - consider using modify_user_lvars. + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) + restore_user_cmts(func_ea) -> user_cmts_t Restore user defined comments from the database. - restore_user_cmts(func_ea) -> user_cmts_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) + restore_user_defined_calls(udcalls, func_ea) -> bool Restore user defined function calls from the database. - restore_user_defined_calls(udcalls, func_ea) -> bool - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) + restore_user_iflags(func_ea) -> user_iflags_t Restore user defined citem iflags from the database. - restore_user_iflags(func_ea) -> user_iflags_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) + restore_user_labels(func_ea) -> user_labels_t Restore user defined labels from the database. - restore_user_labels(func_ea) -> user_labels_t - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() Help on function restore_user_labels2 in module ida_hexrays: restore_user_labels2(*args) restore_user_labels2(func_ea, func=None) -> user_labels_t - @param func_ea (C++: ea_t) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) + restore_user_lvar_settings(lvinf, func_ea) -> bool Restore user defined local variable settings in the database. - restore_user_lvar_settings(lvinf, func_ea) -> bool - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) + restore_user_numforms(func_ea) -> user_numforms_t Restore user defined number formats from the database. - restore_user_numforms(func_ea) -> user_numforms_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) + restore_user_unions(func_ea) -> user_unions_t Restore user defined union field selections from the database. - restore_user_unions(func_ea) -> user_unions_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -35741,12 +36534,14 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | m: rlist_t const & + | __init__(self, m) -> rlist_t | + | @param m: rlist_t const & | | __init__(self, reg, width) -> rlist_t - | reg: mreg_t - | width: int + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -35770,46 +36565,55 @@ class rlist_t(bitset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | add(self, *args) | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) | back(self) -> int @@ -35822,19 +36626,24 @@ class rlist_t(bitset_t) | | compare(self, *args) | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | empty(self, *args) | empty(self) -> bool @@ -35844,77 +36653,91 @@ class rlist_t(bitset_t) | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -35928,81 +36751,74 @@ class rlist_t(bitset_t) Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) + save_user_cmts(func_ea, user_cmts) Save user defined comments into the database. - save_user_cmts(func_ea, user_cmts) - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) + save_user_defined_calls(func_ea, udcalls) Save user defined local function calls into the database. - save_user_defined_calls(func_ea, udcalls) - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) + save_user_iflags(func_ea, iflags) Save user defined citem iflags into the database. - save_user_iflags(func_ea, iflags) - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) + save_user_labels(func_ea, user_labels) Save user defined labels into the database. - save_user_labels(func_ea, user_labels) - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels Help on function save_user_labels2 in module ida_hexrays: save_user_labels2(*args) save_user_labels2(func_ea, user_labels, func=None) - @param func_ea (C++: ea_t) - @param user_labels (C++: const user_labels_t *) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) + save_user_lvar_settings(func_ea, lvinf) Save user defined local variable settings into the database. - save_user_lvar_settings(func_ea, lvinf) - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) + save_user_numforms(func_ea, numforms) Save user defined number formats into the database. - save_user_numforms(func_ea, numforms) - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) + save_user_unions(func_ea, unions) Save user defined union field selections into the database. - save_user_unions(func_ea, unions) - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -36019,9 +36835,10 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, tif, n=None) -> scif_t - | _mba: mba_t * - | tif: tinfo_t * - | n: qstring * + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -36029,16 +36846,16 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mba_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36051,237 +36868,279 @@ class scif_t(vdloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -36303,14 +37162,16 @@ class scif_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_scif_mop(self, *args) | visit_scif_mop(self, r, off) -> int - | @param r (C++: const mop_t &) - | @param off (C++: int) + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36333,48 +37194,46 @@ class scif_visitor_t(__builtin__.object) Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) + select_udt_by_offset(udts, ops, applicator) -> int Select UDT - select_udt_by_offset(udts, ops, applicator) -> int - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) Help on function send_database in module ida_hexrays: send_database(*args) - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - send_database(err, silent) - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) set2jcnd(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) + set_type(id, tif, source, force=False) -> bool Set a global type. - set_type(id, tif, source, force=False) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success Help on class simple_graph_t in module ida_hexrays: @@ -36396,13 +37255,13 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | Data descriptors defined here: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -36414,9 +37273,10 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -36429,7 +37289,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -36439,65 +37300,77 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -36523,50 +37396,58 @@ class stkvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t - | m: mba_t * - | o: sval_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) + | get_stkvar(self, p_off=None) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off=None) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) | swap(self, r) - | @param r (C++: stkvar_ref_t &) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36578,10 +37459,10 @@ class stkvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -36596,19 +37477,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) swap_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) + swapped_relation(op) -> ctype_t Swap a comparison operator. For example, cot_sge becomes cot_sle. - swapped_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) + term_hexrays_plugin() Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -36620,14 +37503,16 @@ class treeloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -36641,10 +37526,10 @@ class treeloc_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -36671,31 +37556,41 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) + | empty(self) -> bool | | init(self, *args) | init(self, decl) -> bool - | @param decl (C++: const char *) + | + | @param decl: char const * | | install(self, *args) | install(self) | | match(self, *args) + | match(self, cdg) -> bool | return true if the filter object should be appied to given instruction | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) + | @param cdg: (C++: codegen_t &) | | remove(self, *args) | remove(self) -> bool @@ -36724,70 +37619,70 @@ class udc_filter_t(microcode_filter_t) Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) + udcall_map_begin(map) -> udcall_map_iterator_t Get iterator pointing to the beginning of udcall_map_t. - udcall_map_begin(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) + udcall_map_clear(map) Clear udcall_map_t. - udcall_map_clear(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) + udcall_map_end(map) -> udcall_map_iterator_t Get iterator pointing to the end of udcall_map_t. - udcall_map_end(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) + udcall_map_erase(map, p) Erase current element from udcall_map_t. - udcall_map_erase(map, p) - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) + udcall_map_find(map, key) -> udcall_map_iterator_t Find the specified key in udcall_map_t. - udcall_map_find(map, key) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) + udcall_map_first(p) -> ea_t const & Get reference to the current map key. - udcall_map_first(p) -> ea_t const & - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) + udcall_map_free(map) Delete udcall_map_t instance. - udcall_map_free(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -36798,14 +37693,16 @@ class udcall_map_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -36822,7 +37719,7 @@ class udcall_map_iterator_t(__builtin__.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36833,39 +37730,40 @@ class udcall_map_iterator_t(__builtin__.object) Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) + udcall_map_new() -> udcall_map_t * Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) + udcall_map_next(p) -> udcall_map_iterator_t Move to the next element. - udcall_map_next(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) + udcall_map_prev(p) -> udcall_map_iterator_t Move to the previous element. - udcall_map_prev(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) + udcall_map_second(p) -> udcall_t Get reference to the current map value. - udcall_map_second(p) -> udcall_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) + udcall_map_size(map) -> size_t Get size of udcall_map_t. - udcall_map_size(map) -> size_t - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -36876,36 +37774,46 @@ class udcall_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: udcall_t const & + | + | @param r: udcall_t const & + | + | empty(self, *args) + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36917,13 +37825,13 @@ class udcall_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36942,18 +37850,18 @@ class ui_stroff_applicator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) | apply(self, opnum, path, top_tif, spath) -> bool - | @param opnum: operand ordinal number, see below (C++: size_t) - | @param path: path describing the union selection, maybe empty (C++: - | const intvec_t &) - | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const - | tinfo_t &) - | @param spath: selected path (C++: const char *) + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36982,14 +37890,16 @@ class ui_stroff_op_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -37003,10 +37913,10 @@ class ui_stroff_op_t(__builtin__.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -37026,15 +37936,19 @@ class ui_stroff_ops_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ui_stroff_op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | x: qvector< ui_stroff_op_t > const & + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -37043,22 +37957,28 @@ class ui_stroff_ops_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ui_stroff_op_t const & + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ui_stroff_op_t const & + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) | @@ -37069,7 +37989,6 @@ class ui_stroff_ops_t(__builtin__.object) | | begin(self, *args) | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) | capacity(self) -> size_t @@ -37082,78 +38001,85 @@ class ui_stroff_ops_t(__builtin__.object) | | end(self, *args) | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) | erase(self, it) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator | + | @param it: qvector< ui_stroff_op_t >::iterator | | erase(self, first, last) -> ui_stroff_op_t - | first: qvector< ui_stroff_op_t >::iterator - | last: qvector< ui_stroff_op_t >::iterator + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) | extract(self) -> ui_stroff_op_t | | find(self, *args) | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & | - | - | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ui_stroff_op_t()) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | has(self, *args) | has(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) | inject(self, s, len) - | s: ui_stroff_op_t * - | len: size_t + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator - | x: ui_stroff_op_t const & + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ui_stroff_op_t const & | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ui_stroff_op_t > & + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) | truncate(self) @@ -37179,70 +38105,70 @@ class ui_stroff_ops_t(__builtin__.object) Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) + user_cmts_begin(map) -> user_cmts_iterator_t Get iterator pointing to the beginning of user_cmts_t. - user_cmts_begin(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) + user_cmts_clear(map) Clear user_cmts_t. - user_cmts_clear(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) + user_cmts_end(map) -> user_cmts_iterator_t Get iterator pointing to the end of user_cmts_t. - user_cmts_end(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) + user_cmts_erase(map, p) Erase current element from user_cmts_t. - user_cmts_erase(map, p) - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) + user_cmts_find(map, key) -> user_cmts_iterator_t Find the specified key in user_cmts_t. - user_cmts_find(map, key) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) + user_cmts_first(p) -> treeloc_t Get reference to the current map key. - user_cmts_first(p) -> treeloc_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) + user_cmts_free(map) Delete user_cmts_t instance. - user_cmts_free(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -37253,14 +38179,16 @@ class user_cmts_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37277,7 +38205,7 @@ class user_cmts_iterator_t(__builtin__.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37288,39 +38216,40 @@ class user_cmts_iterator_t(__builtin__.object) Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) + user_cmts_new() -> user_cmts_t Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) + user_cmts_next(p) -> user_cmts_iterator_t Move to the next element. - user_cmts_next(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) + user_cmts_prev(p) -> user_cmts_iterator_t Move to the previous element. - user_cmts_prev(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) + user_cmts_second(p) -> citem_cmt_t Get reference to the current map value. - user_cmts_second(p) -> citem_cmt_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) + user_cmts_size(map) -> size_t Get size of user_cmts_t. - user_cmts_size(map) -> size_t - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -37354,7 +38283,8 @@ class user_cmts_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> citem_cmt_t - | _Keyval: treeloc_t const & + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -37504,70 +38434,70 @@ class user_cmts_t(__builtin__.object) Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) + user_iflags_begin(map) -> user_iflags_iterator_t Get iterator pointing to the beginning of user_iflags_t. - user_iflags_begin(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) + user_iflags_clear(map) Clear user_iflags_t. - user_iflags_clear(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) + user_iflags_end(map) -> user_iflags_iterator_t Get iterator pointing to the end of user_iflags_t. - user_iflags_end(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) + user_iflags_erase(map, p) Erase current element from user_iflags_t. - user_iflags_erase(map, p) - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) + user_iflags_find(map, key) -> user_iflags_iterator_t Find the specified key in user_iflags_t. - user_iflags_find(map, key) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) + user_iflags_first(p) -> citem_locator_t Get reference to the current map key. - user_iflags_first(p) -> citem_locator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) + user_iflags_free(map) Delete user_iflags_t instance. - user_iflags_free(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -37578,14 +38508,16 @@ class user_iflags_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37602,7 +38534,7 @@ class user_iflags_iterator_t(__builtin__.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37613,39 +38545,40 @@ class user_iflags_iterator_t(__builtin__.object) Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) + user_iflags_new() -> user_iflags_t Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) + user_iflags_next(p) -> user_iflags_iterator_t Move to the next element. - user_iflags_next(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) + user_iflags_prev(p) -> user_iflags_iterator_t Move to the previous element. - user_iflags_prev(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) + user_iflags_second(p) -> int32 const & Get reference to the current map value. - user_iflags_second(p) -> int32 const & - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) + user_iflags_size(map) -> size_t Get size of user_iflags_t. - user_iflags_size(map) -> size_t - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -37679,7 +38612,8 @@ class user_iflags_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> int & - | _Keyval: citem_locator_t const & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -37842,70 +38776,70 @@ class user_iflags_t(__builtin__.object) Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) + user_labels_begin(map) -> user_labels_iterator_t Get iterator pointing to the beginning of user_labels_t. - user_labels_begin(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) + user_labels_clear(map) Clear user_labels_t. - user_labels_clear(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) + user_labels_end(map) -> user_labels_iterator_t Get iterator pointing to the end of user_labels_t. - user_labels_end(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) + user_labels_erase(map, p) Erase current element from user_labels_t. - user_labels_erase(map, p) - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) + user_labels_find(map, key) -> user_labels_iterator_t Find the specified key in user_labels_t. - user_labels_find(map, key) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) + user_labels_first(p) -> int const & Get reference to the current map key. - user_labels_first(p) -> int const & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) + user_labels_free(map) Delete user_labels_t instance. - user_labels_free(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) + user_labels_insert(map, key, val) -> user_labels_iterator_t Insert new (int, qstring) pair into user_labels_t. - user_labels_insert(map, key, val) -> user_labels_iterator_t - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -37916,14 +38850,16 @@ class user_labels_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37940,7 +38876,7 @@ class user_labels_iterator_t(__builtin__.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37951,39 +38887,40 @@ class user_labels_iterator_t(__builtin__.object) Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) + user_labels_new() -> user_labels_t Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) + user_labels_next(p) -> user_labels_iterator_t Move to the next element. - user_labels_next(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) + user_labels_prev(p) -> user_labels_iterator_t Move to the previous element. - user_labels_prev(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) + user_labels_second(p) -> qstring & Get reference to the current map value. - user_labels_second(p) -> qstring & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) + user_labels_size(map) -> size_t Get size of user_labels_t. - user_labels_size(map) -> size_t - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -37999,7 +38936,8 @@ class user_labels_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> _qstring< char > & - | _Keyval: int const & + | + | @param _Keyval: int const & | | size(self, *args) | size(self) -> size_t @@ -38033,15 +38971,16 @@ class user_lvar_modifier_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | modify_lvars(self, *args) + | modify_lvars(self, lvinf) -> bool | Modify lvar settings. Returns: true-modified | - | modify_lvars(self, lvinf) -> bool - | @param lvinf (C++: lvar_uservec_t *) + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38064,71 +39003,70 @@ class user_lvar_modifier_t(__builtin__.object) Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) + user_numforms_begin(map) -> user_numforms_iterator_t Get iterator pointing to the beginning of user_numforms_t. - user_numforms_begin(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) + user_numforms_clear(map) Clear user_numforms_t. - user_numforms_clear(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) + user_numforms_end(map) -> user_numforms_iterator_t Get iterator pointing to the end of user_numforms_t. - user_numforms_end(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) + user_numforms_erase(map, p) Erase current element from user_numforms_t. - user_numforms_erase(map, p) - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) + user_numforms_find(map, key) -> user_numforms_iterator_t Find the specified key in user_numforms_t. - user_numforms_find(map, key) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) + user_numforms_first(p) -> operand_locator_t Get reference to the current map key. - user_numforms_first(p) -> operand_locator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) + user_numforms_free(map) Delete user_numforms_t instance. - user_numforms_free(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -38139,14 +39077,16 @@ class user_numforms_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38163,7 +39103,7 @@ class user_numforms_iterator_t(__builtin__.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38174,39 +39114,40 @@ class user_numforms_iterator_t(__builtin__.object) Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) + user_numforms_new() -> user_numforms_t Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) + user_numforms_next(p) -> user_numforms_iterator_t Move to the next element. - user_numforms_next(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) + user_numforms_prev(p) -> user_numforms_iterator_t Move to the previous element. - user_numforms_prev(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) + user_numforms_second(p) -> number_format_t Get reference to the current map value. - user_numforms_second(p) -> number_format_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) + user_numforms_size(map) -> size_t Get size of user_numforms_t. - user_numforms_size(map) -> size_t - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -38240,7 +39181,8 @@ class user_numforms_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> number_format_t - | _Keyval: operand_locator_t const & + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -38390,70 +39332,70 @@ class user_numforms_t(__builtin__.object) Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) + user_unions_begin(map) -> user_unions_iterator_t Get iterator pointing to the beginning of user_unions_t. - user_unions_begin(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) + user_unions_clear(map) Clear user_unions_t. - user_unions_clear(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) + user_unions_end(map) -> user_unions_iterator_t Get iterator pointing to the end of user_unions_t. - user_unions_end(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) + user_unions_erase(map, p) Erase current element from user_unions_t. - user_unions_erase(map, p) - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) + user_unions_find(map, key) -> user_unions_iterator_t Find the specified key in user_unions_t. - user_unions_find(map, key) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) + user_unions_first(p) -> ea_t const & Get reference to the current map key. - user_unions_first(p) -> ea_t const & - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) + user_unions_free(map) Delete user_unions_t instance. - user_unions_free(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) + user_unions_insert(map, key, val) -> user_unions_iterator_t Insert new (ea_t, intvec_t) pair into user_unions_t. - user_unions_insert(map, key, val) -> user_unions_iterator_t - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -38464,14 +39406,16 @@ class user_unions_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38488,7 +39432,7 @@ class user_unions_iterator_t(__builtin__.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38499,39 +39443,40 @@ class user_unions_iterator_t(__builtin__.object) Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) + user_unions_new() -> user_unions_t Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) + user_unions_next(p) -> user_unions_iterator_t Move to the next element. - user_unions_next(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) + user_unions_prev(p) -> user_unions_iterator_t Move to the previous element. - user_unions_prev(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) + user_unions_second(p) -> intvec_t Get reference to the current map value. - user_unions_second(p) -> intvec_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) + user_unions_size(map) -> size_t Get size of user_unions_t. - user_unions_size(map) -> size_t - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -38565,7 +39510,8 @@ class user_unions_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> intvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -38720,15 +39666,19 @@ class uval_ivl_ivlset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) | __ne__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -38751,7 +39701,8 @@ class uval_ivl_ivlset_t(__builtin__.object) | | getivl(self, *args) | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -38767,11 +39718,14 @@ class uval_ivl_ivlset_t(__builtin__.object) | | single_value(self, *args) | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38800,8 +39754,9 @@ class uval_ivl_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t - | _off: unsigned-ea-like-numeric-type↗ - | _size: unsigned-ea-like-numeric-type↗ + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -38824,10 +39779,10 @@ class uval_ivl_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -38847,35 +39802,42 @@ class valrng_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | size_: int | + | @param size_: int | | __init__(self, r) -> valrng_t - | r: valrng_t const & + | + | @param r: valrng_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -38893,11 +39855,13 @@ class valrng_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: valrng_t const & + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) | cvt_to_cmp(self, strict) -> bool - | @param strict (C++: bool) + | + | @param strict: bool | | cvt_to_single_value(self, *args) | cvt_to_single_value(self) -> bool @@ -38913,11 +39877,13 @@ class valrng_t(__builtin__.object) | | has(self, *args) | has(self, v) -> bool - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | intersect_with(self, *args) | intersect_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | inverse(self, *args) | inverse(self) @@ -38927,31 +39893,43 @@ class valrng_t(__builtin__.object) | | max_svalue(self, *args) | max_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t | | max_value(self, *args) | max_value(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_value(self) -> uvlr_t | | min_svalue(self, *args) | min_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) | reduce_size(self, new_size) -> bool - | @param new_size (C++: int) + | + | @param new_size: int | | set_all(self, *args) | set_all(self) | | set_cmp(self, *args) | set_cmp(self, cmp, _value) - | @param cmp (C++: cmpop_t) - | @param _value (C++: uvlr_t) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) | set_eq(self, v) - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | set_none(self, *args) | set_none(self) @@ -38961,11 +39939,13 @@ class valrng_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: valrng_t &) + | + | @param r: valrng_t & | | unite_with(self, *args) | unite_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38994,36 +39974,43 @@ class var_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | getv(self, *args) | getv(self) -> lvar_t @@ -39038,10 +40025,10 @@ class var_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -39068,21 +40055,25 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t - | f: cfunc_t const * + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | | oneliner(self, *args) + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -39098,8 +40089,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -39111,10 +40105,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -39125,19 +40119,21 @@ class vd_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, code, ea, buf=None) -> vd_failure_t | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, code, ea, buf) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: qstring const & | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __init__(self, _hf) -> vd_failure_t - | _hf: hexrays_failure_t const & + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -39154,7 +40150,7 @@ class vd_failure_t(__builtin__.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -39179,8 +40175,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t - | ea: ea_t - | buf: char const * + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -39212,7 +40209,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -39225,14 +40222,18 @@ class vd_printer_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39244,13 +40245,13 @@ class vd_printer_t(__builtin__.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -39272,52 +40273,64 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | | _set_reg1(self, *args) | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39335,191 +40348,221 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -39542,321 +40585,344 @@ class vdui_t(__builtin__.object) | __repr__ = _swig_repr(self) | | calc_cmt_type(self, *args) - | Check if the specified line can have a comment. Due to the coordinate - | system for comments: (https://www.hex-rays.com/blog/coordinate-system- - | for-hex-rays) some function lines cannot have comments. This function - | checks if a comment can be attached to the specified line. - | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | @param lnnum: line number (0 based) (C++: size_t) - | @param cmttype: comment types to check (C++: cmt_type_t) - | @return: possible comment types + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) - | Clear the pseudocode window. It deletes the current function and - | microcode. + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) + | collapse_item(self, hide) -> bool | Collapse/uncollapse item. This function collapses the current item. | - | collapse_item(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) + | collapse_lvars(self, hide) -> bool | Collapse/uncollapse local variable declarations. | - | collapse_lvars(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) - | Jump to disassembly. This function jumps to the address in the - | disassembly window which corresponds to the current item. The current - | item is determined based on the current keyboard cursor position. + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) - | Delete all orphan comments. Delete all orphan comments and refresh the - | screen. + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) - | Edit an indented comment. This function displays a dialog box and - | allows the user to edit the comment for the specified ctree location. - | | edit_cmt(self, loc) -> bool - | @param loc: comment location (C++: const treeloc_t &) - | @return: false if failed or cancelled + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) - | Edit a function comment. This function displays a dialog box and - | allows the user to edit the function comment. + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) - | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' - | fields. 'cfunc_t::get_line_item()' - | | get_current_item(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) - | Get current label. If there is a label under the cursor, return its - | number. + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) - | Get current number. If the current item is a number, return pointer to - | it. + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) + | in_ctree(self) -> bool | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) - | Bitwise negate a number. This function inverts all bits of the current - | number. + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) + | invert_sign(self) -> bool | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) - | Process the Enter key. This function jumps to the definition of the - | item under the cursor. If the current item is a function, it will be - | decompiled. If the current item is a global data, its disassemly text - | will be displayed. - | | jump_enter(self, idv, omflags) -> bool - | @param idv: what cursor must be used, the keyboard or the mouse (C++: - | input_device_t) - | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse - | the existing window (C++: int) - | @return: false if failed + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) - | Does the pseudocode window contain valid code? We lock windows before - | modifying them, to avoid recursion due to the events generated by the - | IDA kernel. + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) - | Map a local variable to another. This function permanently maps one - | lvar to another. All occurrences of the mapped variable are replaced - | by the new variable - | | map_lvar(self, frm, to) -> bool - | @param frm: the variable being mapped (C++: lvar_t *) - | @param to: the variable to map to. if NULL, unmaps the variable (C++: - | lvar_t *) - | @return: false if failed + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) - | Refresh the current position. This function refreshes the 'cpos' - | field. - | | refresh_cpos(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) - | Refresh pseudocode window. This function refreshes the pseudocode - | window by regenerating its text from 'cfunc_t' . Instead of this - | function use refresh_func_ctext(), which refreshes all pseudocode - | windows for the function. 'refresh_view()' , refresh_func_ctext() - | | refresh_ctext(self, activate=True) - | @param activate (C++: bool) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) - | Refresh pseudocode window. This is the highest level refresh function. - | It causes the most profound refresh possible and can lead to - | redecompilation of the current function. Please consider using - | 'refresh_ctext()' if you need a more superficial refresh. - | 'refresh_ctext()' - | | refresh_view(self, redo_mba) - | @param redo_mba: true means to redecompile the current function - | false means to rebuild ctree without regenerating - | microcode (C++: bool) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) - | Rename global item. This function displays a dialog box and allows the - | user to rename a global item (data or function). - | | rename_global(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) - | Rename a label. This function displays a dialog box and allows the - | user to rename a statement label. - | | rename_label(self, label) -> bool - | @param label: label number (C++: int) - | @return: false if failed or cancelled + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) - | Rename local variable. This function permanently renames a local - | variable.::rename_lvar() - | | rename_lvar(self, v, name, is_user_name) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param name: new variable name (C++: const char *) - | @param is_user_name: use true to save the new name into the database. - | use false to delete the saved name. (C++: bool) - | @return: false if failed + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) - | Rename structure field. This function displays a dialog box and allows - | the user to rename a structure field. - | | rename_strmem(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) - | Set global item type. This function displays a dialog box and allows - | the user to change the type of a global item (data or function). - | | set_global_type(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) | set_locked(self, v) -> bool - | @param v (C++: bool) + | + | @param v: bool | | set_lvar_cmt(self, *args) - | Set local variable comment. This function permanently sets a variable - | comment. - | | set_lvar_cmt(self, v, cmt) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param cmt: new comment (C++: const char *) - | @return: false if failed + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) - | Set local variable type. This function permanently sets a local - | variable type and clears NOPTR flag if it was set before by function - | 'set_noptr_lvar' - | | set_lvar_type(self, v, type) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param type: new variable type (C++: const tinfo_t &) - | @return: false if failed + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) - | Inform that local variable should have a non-pointer type This - | function permanently sets a corresponding variable flag (NOPTR) and - | removes type if it was set before by function 'set_lvar_type' - | | set_noptr_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) - | Convert number to symbolic constant. This function displays a dialog - | box and allows the user to select a symbolic constant to represent the - | number. + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) - | Change number base. This function changes the current number - | representation. - | | set_num_radix(self, base) -> bool - | @param base: number radix (10 or 16) 0 means a character constant - | (C++: int) - | @return: false if failed + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) + | set_num_stroff(self) -> bool | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) - | Set structure field type. This function displays a dialog box and - | allows the user to change the type of a structure field. - | | set_strmem_type(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) | set_valid(self, v) - | @param v (C++: bool) + | + | @param v: bool | | set_visible(self, *args) | set_visible(self, v) - | @param v (C++: bool) + | + | @param v: bool | | split_item(self, *args) - | Split/unsplit item. This function splits the current assignment - | expression. - | | split_item(self, split) -> bool - | @param split (C++: bool) - | @return: false if failed. + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) - | Display the specified pseudocode. This function replaces the - | pseudocode window contents with the specified 'cfunc_t' . - | | switch_to(self, f, activate) - | @param f: pointer to the function to display. (C++: cfuncptr_t) - | @param activate: should the pseudocode window get focus? (C++: bool) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) - | Set local variable comment. This function displays a dialog box and - | allows the user to edit the comment of a local variable. - | | ui_edit_lvar_cmt(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) - | Map a local variable to another. This function displays a variable - | list and allows the user to select mapping. - | | ui_map_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) - | Rename local variable. This function displays a dialog box and allows - | the user to rename a local variable. - | | ui_rename_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) - | Set type of a function call This function displays a dialog box and - | allows the user to change the type of a function call - | | ui_set_call_type(self, e) -> bool - | @param e: pointer to call expression (C++: const cexpr_t *) - | @return: false if failed or cancelled + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) - | Set local variable type. This function displays a dialog box and - | allows the user to change the type of a local variable. - | | ui_set_lvar_type(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) - | Unmap a local variable. This function displays list of variables - | mapped to the specified variable and allows the user to select a - | variable to unmap. - | | ui_unmap_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) - | Does the pseudocode window contain valid code? It can become invalid - | if the function type gets changed in IDA. + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) - | Is the pseudocode window visible? if not, it might be invisible or - | destroyed + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39868,40 +40934,40 @@ class vdui_t(__builtin__.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mba_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -39923,45 +40989,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vivl_t const & | + | @param r: vivl_t const & | | __eq__(self, mop) -> bool - | mop: mop_t const & + | + | @param mop: mop_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | _type: mopt_t - | _off: sval_t - | _size: int | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | __init__(self, ch) -> vivl_t - | ch: chain_t const & | + | @param ch: chain_t const & | | __init__(self, op) -> vivl_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -39970,69 +41043,73 @@ class vivl_t(voff_t) | | compare(self, *args) | compare(self, r) -> int - | r: vivl_t const & + | + | @param r: vivl_t const & | | contains(self, *args) + | contains(self, voff2) -> bool | Does our value interval contain the specified value offset? | - | contains(self, voff2) -> bool - | @param voff2 (C++: const voff_t &) + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) | dstr(self) -> char const * | | extend_to_cover(self, *args) + | extend_to_cover(self, r) -> bool | Extend a value interval using another value interval of the same type | - | extend_to_cover(self, r) -> bool - | @param r (C++: const vivl_t &) - | @return: success + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) + | includes(self, r) -> bool | Does our value interval include another? | - | includes(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) + | intersect(self, r) -> uval_t | Intersect value intervals the same type | - | intersect(self, r) -> uval_t - | @param r (C++: const vivl_t &) - | @return: size of the resulting intersection + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) + | overlap(self, r) -> bool | Do two value intervals overlap? | - | overlap(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) | set(self, _type, _off, _size=0) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) - | @param _size (C++: int) | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | set(self, voff, _size) - | voff: voff_t const & - | @param _size (C++: int) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) | set_reg(self, mreg, sz=0) - | @param mreg (C++: mreg_t) - | @param sz (C++: int) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) | set_stkoff(self, stkoff, sz=0) - | @param stkoff (C++: sval_t) - | @param sz (C++: int) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -40048,14 +41125,16 @@ class vivl_t(voff_t) | | add(self, *args) | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -40065,7 +41144,8 @@ class vivl_t(voff_t) | | inc(self, *args) | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) | is_reg(self) -> bool @@ -40086,10 +41166,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -40100,53 +41180,64 @@ class voff_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | _type: mopt_t - | _off: sval_t + | __init__(self, _type, _off) -> voff_t | + | @param _type: mopt_t + | @param _off: sval_t | | __init__(self, op) -> voff_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | compare(self, *args) | compare(self, r) -> int - | r: voff_t const & + | + | @param r: voff_t const & | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -40156,7 +41247,8 @@ class voff_t(__builtin__.object) | | inc(self, *args) | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) | is_reg(self) -> bool @@ -40166,16 +41258,19 @@ class voff_t(__builtin__.object) | | set(self, *args) | set(self, _type, _off) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) | set_reg(self, mreg) - | @param mreg (C++: mreg_t) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) | set_stkoff(self, stkoff) - | @param stkoff (C++: sval_t) + | + | @param stkoff: sval_t | | undef(self, *args) | undef(self) @@ -40190,13 +41285,13 @@ class voff_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -40204,1062 +41299,19 @@ class voff_t(__builtin__.object) | __swig_destroy__ = | delete_voff_t(self) -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFL_NORET -""" -call does not return -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LOCKED -""" -cfunc is temporarily locked -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_HIDE -""" -do not close display waitbox. see close_hexrays_waitboxes() -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_NO_XREFS -""" -do not update global xrefs cache -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore source operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.LVINF_UNUSED -""" -unused argument, corresponds to CVAR_UNUSED -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_KEEP -""" -do not remove even if unreachable -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_VALID -""" -internal bit: stroff or enum is valid for enums: this bit is set -immediately for stroffs: this bit is set at the end of decompilation -""" - -ida_hexrays.OPF_NEW_WINDOW -""" -open new window -""" - -ida_hexrays.OPF_NO_WAIT -""" -do not display waitbox if decompilation happens -""" - -ida_hexrays.OPF_REUSE -""" -reuse existing window -""" - -ida_hexrays.OPF_REUSE_ACTIVE -""" -currently active widget is a pseudocode view - -reuse existing window, only if the -""" - -ida_hexrays.OPROP_CCFLAGS -""" -else: value of a condition code register (like mr_cc) - -mop_n: a pc-relative value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_LOWADDR -""" -a low address offset -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -the function is called after the propagation attempt, we do not -optimize low/high(ldx) in this case -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -41267,12 +41319,15 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - # Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + Help on function __wrap_hooks_callback in module ida_ida: __wrap_hooks_callback(klass, new_name, old_name, do_call) @@ -41280,6 +41335,7 @@ __wrap_hooks_callback(klass, new_name, old_name, do_call) Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) + calc_default_idaplace_flags() -> int Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -41304,34 +41360,34 @@ class compiler_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag @@ -41345,30 +41401,36 @@ class compiler_info_t(__builtin__.object) Help on function delinf in module ida_ida: delinf(*args) + delinf(tag) -> bool undefine a program specific information - delinf(tag) -> bool - @param tag: one of inftag_t constants (C++: inftag_t) - @return: success + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success Help on function get_dbctx_id in module ida_ida: get_dbctx_id(*args) + get_dbctx_id() -> ssize_t Get the current database context ID + + @return: the database context ID, or -1 if no current database Help on function get_dbctx_qty in module ida_ida: get_dbctx_qty(*args) + get_dbctx_qty() -> size_t Get number of database contexts + + @return: number of database contexts Help on function getinf_str in module ida_ida: getinf_str(*args) + getinf_str(tag) -> str get program specific information (a non-scalar value) - getinf_str(tag) -> str - @param tag: one of inftag_t constants (C++: inftag_t) - @return: number of bytes stored in the buffer (<0 - not defined) + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) Help on class idainfo in module ida_ida: @@ -41394,17 +41456,8 @@ class idainfo(__builtin__.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -41457,14 +41510,6 @@ class idainfo(__builtin__.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) - | set_maxEA(self, ea) - | ea: ea_t - | - | set_minEA(self, *args) - | set_minEA(self, ea) - | ea: ea_t - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -41499,193 +41544,206 @@ class idainfo(__builtin__.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | lflags | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) @@ -41704,7 +41762,8 @@ inf_gen_tryblks(*args) Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) - Get 'DEMNAM_MASK' bits of #demnames. + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: @@ -41793,6 +41852,10 @@ inf_map_stkargs(*args) Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -41804,73 +41867,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) inf_set_64bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) inf_set_auto_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) inf_set_be(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) inf_set_gen_lzero(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) inf_set_gen_null(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) inf_set_gen_tryblks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) inf_set_graph_view(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) inf_set_line_pref_with_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) inf_set_pack_mode(pack_mode) -> int - @param pack_mode (C++: int) + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) inf_set_show_auto(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) inf_set_show_line_pref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) inf_set_show_void(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function in module ida_ida: @@ -41880,7 +41955,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) inf_set_wide_high_byte_first(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -42060,6 +42136,7 @@ inf_get_af2(*args) Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) + inf_get_af2_low() -> ushort Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -42070,6 +42147,7 @@ inf_get_af_high(*args) Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) + inf_get_af_low() -> ushort Get/set low/high 16bit halves of inf.af. Help on function inf_get_app_bitness in module ida_ida: @@ -42106,7 +42184,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) inf_get_cc(out) -> bool - @param out (C++: compiler_info_t *) + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -42163,11 +42242,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) @@ -42302,7 +42376,10 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) inf_get_privrange(out) -> bool - @param out (C++: range_t *) + + @param out: range_t * + + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -42443,7 +42520,8 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) inf_inc_database_change_count(cnt=1) - @param cnt (C++: int) + + @param cnt: int Help on function inf_is_16bit in module ida_ida: @@ -42514,7 +42592,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) inf_postinc_strlit_sernum(cnt=1) -> uval_t - @param cnt (C++: uval_t) + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -42560,951 +42639,1102 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) inf_set_32bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) inf_set_abi_set_by_user(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) inf_set_abibits(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) inf_set_af(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) inf_set_af2(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) inf_set_af2_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) inf_set_af_high(saf2) - @param saf2 (C++: ushort) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) inf_set_af_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) inf_set_allow_non_matched_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) inf_set_allow_sigmulti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) inf_set_appcall_options(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) inf_set_append_sigcmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) inf_set_apptype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) inf_set_asmtype(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) inf_set_baseaddr(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) inf_set_big_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) inf_set_bin_prefix_size(_v) -> bool - @param _v (C++: short) + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) inf_set_cc(_v) -> bool - @param _v (C++: const compiler_info_t &) + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) inf_set_cc_cm(_v) -> bool - @param _v (C++: cm_t) + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) inf_set_cc_defalign(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) inf_set_cc_id(_v) -> bool - @param _v (C++: comp_t) + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) inf_set_cc_size_b(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) inf_set_cc_size_e(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) inf_set_cc_size_i(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) inf_set_cc_size_l(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) inf_set_cc_size_ldbl(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) inf_set_cc_size_ll(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) inf_set_cc_size_s(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) inf_set_check_manual_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) inf_set_check_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) inf_set_cmtflg(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) inf_set_coagulate_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) inf_set_coagulate_data(_v=True) -> bool - @param _v (C++: bool) - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) - inf_set_comment(_v) -> bool - @param _v (C++: uchar) + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) inf_set_compress_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) inf_set_create_all_xrefs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) inf_set_create_func_from_call(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) inf_set_create_func_from_ptr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) inf_set_create_func_tails(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) inf_set_create_jump_tables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) inf_set_create_off_on_dref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) inf_set_create_off_using_fixup(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) inf_set_create_strlit_on_xref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) inf_set_data_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) inf_set_database_change_count(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) inf_set_datatypes(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) inf_set_dbg_no_store_path(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) inf_set_decode_fpp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) inf_set_del_no_xref_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) inf_set_demnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) inf_set_dll(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) inf_set_filetype(_v) -> bool - @param _v (C++: filetype_t) + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) inf_set_final_pass(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) inf_set_flat_off32(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) inf_set_full_sp_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) inf_set_gen_assume(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) inf_set_gen_org(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) inf_set_genflags(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) inf_set_guess_func_type(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) inf_set_handle_eh(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) inf_set_handle_rtti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) inf_set_hard_float(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) inf_set_hide_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) inf_set_hide_libfuncs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) inf_set_highoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) inf_set_huge_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) inf_set_indent(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) inf_set_kernel_mode(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) inf_set_lenxref(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) inf_set_lflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) inf_set_limiter(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) inf_set_limiter_empty(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) inf_set_limiter_thick(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) inf_set_limiter_thin(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) inf_set_listnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) inf_set_loading_idc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) inf_set_long_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) inf_set_lowoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) inf_set_macros_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) inf_set_main(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) inf_set_map_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) inf_set_margin(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) inf_set_mark_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) inf_set_max_autoname_len(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) inf_set_max_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) inf_set_maxref(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) inf_set_mem_aligned4(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) inf_set_min_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) inf_set_nametype(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) inf_set_netdelta(_v) -> bool - @param _v (C++: sval_t) + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) inf_set_no_store_user_info(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) inf_set_noflow_to_data(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) inf_set_noret_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) inf_set_omax_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) inf_set_omin_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) inf_set_op_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) inf_set_ostype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) inf_set_outflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) inf_set_pack_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) inf_set_pack_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) inf_set_prefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) inf_set_prefix_show_funcoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) inf_set_prefix_show_segaddr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) inf_set_prefix_show_stack(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) inf_set_privrange(_v) -> bool - @param _v (C++: const range_t &) + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) inf_set_privrange_end_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) inf_set_privrange_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) inf_set_procname(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) inf_set_propagate_regargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) inf_set_propagate_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) inf_set_readonly_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) inf_set_refcmtnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) inf_set_rename_jumpfunc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) inf_set_rename_nullsub(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) inf_set_short_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) inf_set_should_create_stkvars(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) inf_set_should_trace_sp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) inf_set_show_all_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) inf_set_show_hidden_funcs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) inf_set_show_hidden_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) inf_set_show_hidden_segms(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) inf_set_show_repeatables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) inf_set_show_src_linnum(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) inf_set_show_xref_fncoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) inf_set_show_xref_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) inf_set_show_xref_tmarks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) inf_set_show_xref_val(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) inf_set_snapshot(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) inf_set_specsegs(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) inf_set_stack_ldbl(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) inf_set_stack_varargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) inf_set_start_cs(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) inf_set_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) inf_set_start_ip(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) inf_set_start_sp(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) inf_set_start_ss(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) inf_set_strlit_autocmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) inf_set_strlit_break(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) inf_set_strlit_flags(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) inf_set_strlit_name_bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) inf_set_strlit_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) inf_set_strlit_savecase(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) inf_set_strlit_serial_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) inf_set_strlit_sernum(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) inf_set_strlit_zeroes(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) inf_set_strtype(_v) -> bool - @param _v (C++: int32) + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) inf_set_trace_flow(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) inf_set_truncate_on_del(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) inf_set_type_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) inf_set_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) inf_set_use_allasm(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) inf_set_use_flirt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) inf_set_use_gcc_layout(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) inf_set_version(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) inf_set_xrefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) inf_set_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -43619,10 +43849,10 @@ inf_use_flirt(*args) Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) + is_filetype_like_binary(ft) -> bool Is unstructured input file? - is_filetype_like_binary(ft) -> bool - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function in module ida_ida: @@ -43631,608 +43861,24 @@ Help on function in module ida_ida: Help on function switch_dbctx in module ida_ida: switch_dbctx(*args) + switch_dbctx(idx) -> dbctx_t * Switch to the database with the provided context ID - switch_dbctx(idx) -> dbctx_t * - @param idx: the index of the database to switch to (C++: size_t) - @return: the current dbctx_t instance or nullptr + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr Help on function to_ea in module ida_ida: to_ea(*args) + to_ea(reg_cs, reg_ip) -> ea_t Convert (sel,off) value to a linear address. - to_ea(reg_cs, reg_ip) -> ea_t - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment. this -bit is not used by ida yet -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program (or higher)? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -44377,7 +44023,9 @@ class CustomIDAMemo(View_Hooks) | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -44386,10 +44034,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44446,6 +44094,8 @@ Help on function IDAPython_ExecScript in module ida_idaapi: IDAPython_ExecScript(path, g, print_error=True) Run the specified script. + + This function is used by the low-level plugin code. Help on function IDAPython_ExecSystem in module ida_idaapi: @@ -44575,23 +44225,6 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on instance of __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - Help on instance of IDAPython_displayhook in module ida_idaapi: class IDAPython_displayhook @@ -44609,23 +44242,6 @@ class IDAPython_displayhook | | format_seq(self, num_printer, storage, item, opn, cls) -Help on class __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(__builtin__.object) @@ -44679,6 +44295,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -44747,19 +44371,22 @@ enable_extlang_python(*args) enable_extlang_python(enable) Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) enable_python_cli(enable) - enable: bool + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) - format_basestring(_in) -> PyObject * - _in: PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: @@ -44770,9 +44397,6 @@ get_inf_structure(*args) Help on class loader_input_t in module ida_idaapi: class loader_input_t(__builtin__.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -44780,21 +44404,24 @@ class loader_input_t(__builtin__.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | Closes the file + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | | close(self, *args) | close(self) + | Closes the file | | file2base(self, *args) | file2base(self, pos, ea1, ea2, patchable) -> int | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -44809,12 +44436,15 @@ class loader_input_t(__builtin__.object) | get_linput(self) -> linput_t * | | gets(self, *args) - | gets(self, len) -> PyObject * + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) | getz(self, sz, fpos=-1) -> PyObject * | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. @@ -44822,12 +44452,16 @@ class loader_input_t(__builtin__.object) | open(self, *args) | open(self, filename, remote=False) -> bool | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) | open_memory(self, start, size=0) -> bool | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 @@ -44837,21 +44471,31 @@ class loader_input_t(__builtin__.object) | Checks if the file is opened or not | | read(self, *args) - | read(self, size) -> PyObject * + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) | seek(self, pos, whence=SEEK_SET) -> int64 | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) | set_linput(self, linput) | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) | size(self) -> int64 @@ -44865,15 +44509,19 @@ class loader_input_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> loader_input_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> loader_input_t | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) | from_linput(linput) -> loader_input_t - | linput: linput_t * + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -44882,7 +44530,7 @@ class loader_input_t(__builtin__.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -44900,19 +44548,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) loader_input_t_from_capsule(pycapsule) -> loader_input_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) loader_input_t_from_fp(fp) -> loader_input_t - fp: FILE * + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) loader_input_t_from_linput(linput) -> loader_input_t - linput: linput_t * + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -44951,7 +44602,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) parse_command_line3(cmdline) -> PyObject * - cmdline: char const * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -45065,43 +44717,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) pycim_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) pycim_view_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) - pygc_create_groups(_self, groups_infos) -> PyObject * - self: PyObject * - groups_infos: PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) - pygc_delete_groups(_self, groups, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - new_current: PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) pygc_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - expand: PyObject * - new_current: PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -45192,28 +44850,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -45241,15 +44912,13 @@ class Appcall__(__builtin__.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45282,8 +44951,7 @@ class Appcall__(__builtin__.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45351,15 +45019,13 @@ class Appcall__(__builtin__.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45392,8 +45058,7 @@ class Appcall__(__builtin__.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45516,8 +45181,7 @@ class Appcall_callable__(__builtin__.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -45568,11 +45232,12 @@ Help on function appcall in module ida_idd: appcall(*args) appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - func_ea: ea_t - tid: thid_t - _type_or_none: bytevec_t const & - _fields: bytevec_t const & - arg_list: PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -45596,10 +45261,10 @@ class bptaddr_t(__builtin__.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -45619,14 +45284,16 @@ class call_stack_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -45640,16 +45307,16 @@ class call_stack_info_t(__builtin__.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -45669,15 +45336,19 @@ class call_stack_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_info_vec_t - | x: qvector< call_stack_info_t > const & + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45687,33 +45358,39 @@ class call_stack_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -45726,78 +45403,85 @@ class call_stack_info_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -45854,11 +45538,13 @@ class call_stack_t(call_stack_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45868,31 +45554,37 @@ class call_stack_t(call_stack_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -45905,78 +45597,85 @@ class call_stack_t(call_stack_info_vec_t) | | end(self, *args) | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -45994,35 +45693,33 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) can_exc_continue(ev) -> bool - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) + cleanup_appcall(tid) -> error_t Cleanup after manual appcall. - cleanup_appcall(tid) -> error_t - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t Call a function from the debugged application. - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -46034,8 +45731,8 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) dbg_get_memory_info() -> PyObject * This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: @@ -46043,6 +45740,7 @@ Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) dbg_get_name() -> PyObject * This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: @@ -46051,8 +45749,8 @@ dbg_get_registers(*args) dbg_get_registers() -> PyObject * This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -46061,10 +45759,10 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: @@ -46072,15 +45770,20 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) - dbg_write_memory(ea, buf) -> PyObject * + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -46105,16 +45808,16 @@ class debapp_attrs_t(__builtin__.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -46134,75 +45837,78 @@ class debug_event_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | r: debug_event_t const & + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | | bpt(self, *args) - | 'EXCEPTION' + | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) - | On some systems with special memory mappings the triggered ea might be - | different from the actual ea. Calculate the address to use. + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) - | clear the dependent information (see below), set event code to - | NO_EVENT + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) | clear_all(self) | | copy(self, *args) | copy(self, r) -> debug_event_t - | @param r (C++: const debug_event_t &) + | + | @param r: debug_event_t const & | | eid(self, *args) + | eid(self) -> event_id_t | Event code. | | exc(self, *args) | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) - | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) - | 'INFORMATION' (will be displayed in the output window if not empty) + | exit_code(self) -> int const & | | info(self, *args) - | 'BREAKPOINT' + | info(self) -> qstring + | info(self) -> qstring const & | | modinfo(self, *args) - | Information that depends on the event code: - | - | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' - | 'PROCESS_EXITED' , 'THREAD_EXITED' + | modinfo(self) -> modinfo_t | | set_bpt(self, *args) | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) - | Set event code. If the new event code is compatible with the old one - | then the dependent information (see below) will be preserved. - | Otherwise the event will be cleared and the new event code will be - | set. - | | set_eid(self, id) - | @param id (C++: event_id_t) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) | set_exit_code(self, id, code) - | @param id (C++: event_id_t) - | @param code (C++: int) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) | set_info(self, id) -> qstring & - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | set_modinfo(self, *args) | set_modinfo(self, id) -> modinfo_t - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -46214,19 +45920,19 @@ class debug_event_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -46243,17 +45949,21 @@ class exception_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | _code: uint - | _flags: uint32 - | _name: char const * - | _desc: char const * + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | | break_on(self, *args) + | break_on(self) -> bool | Should we break on the exception? | | handle(self, *args) + | handle(self) -> bool | Should we handle the exception? | | ---------------------------------------------------------------------- @@ -46266,16 +45976,16 @@ class exception_info_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -46308,16 +46018,16 @@ class excinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -46337,11 +46047,14 @@ class excvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> exception_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | x: qvector< exception_info_t > const & + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46353,19 +46066,20 @@ class excvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: exception_info_t const & + | + | @param i: size_t + | @param v: exception_info_t const & | | at(self, *args) | at(self, _idx) -> exception_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46378,16 +46092,16 @@ class excvec_t(__builtin__.object) | | end(self, *args) | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) | erase(self, it) -> exception_info_t - | it: qvector< exception_info_t >::iterator | + | @param it: qvector< exception_info_t >::iterator | | erase(self, first, last) -> exception_info_t - | first: qvector< exception_info_t >::iterator - | last: qvector< exception_info_t >::iterator + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) | extract(self) -> exception_info_t @@ -46397,47 +46111,56 @@ class excvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=exception_info_t()) - | x: exception_info_t const & + | + | @param x: exception_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: exception_info_t * - | len: size_t + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> exception_info_t - | it: qvector< exception_info_t >::iterator - | x: exception_info_t const & + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: exception_info_t const & + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: exception_info_t const & | + | @param _newsize: size_t + | @param x: exception_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< exception_info_t > & + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) | truncate(self) @@ -46464,49 +46187,57 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) get_event_bpt_hea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) get_event_exc_code(ev) -> uint - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) get_event_exc_ea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) get_event_exc_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) get_event_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) get_event_module_base(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) get_event_module_name(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) get_event_module_size(ev) -> asize_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -46517,15 +46248,19 @@ class meminfo_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> memory_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | x: qvector< memory_info_t > const & + | __init__(self, x) -> meminfo_vec_t + | + | @param x: qvector< memory_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46535,33 +46270,39 @@ class meminfo_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: memory_info_t const & + | + | @param i: size_t + | @param v: memory_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: memory_info_t const & + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | at(self, *args) | at(self, _idx) -> memory_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46574,78 +46315,85 @@ class meminfo_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) | erase(self, it) -> memory_info_t - | it: qvector< memory_info_t >::iterator | + | @param it: qvector< memory_info_t >::iterator | | erase(self, first, last) -> memory_info_t - | first: qvector< memory_info_t >::iterator - | last: qvector< memory_info_t >::iterator + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) | extract(self) -> memory_info_t | | find(self, *args) | find(self, x) -> memory_info_t - | x: memory_info_t const & | - | - | find(self, x) -> memory_info_t - | x: memory_info_t const & + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=memory_info_t()) - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: memory_info_t * - | len: size_t + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> memory_info_t - | it: qvector< memory_info_t >::iterator - | x: memory_info_t const & + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: memory_info_t const & + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: memory_info_t const & | + | @param _newsize: size_t + | @param x: memory_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< memory_info_t > & + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) | truncate(self) @@ -46682,14 +46430,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -46697,19 +46447,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -46725,58 +46475,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -46790,12 +46544,12 @@ class memory_info_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -46819,16 +46573,16 @@ class modinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -46861,10 +46615,10 @@ class process_info_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -46884,11 +46638,14 @@ class procinfo_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> process_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | x: qvector< process_info_t > const & + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46900,19 +46657,20 @@ class procinfo_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: process_info_t const & + | + | @param i: size_t + | @param v: process_info_t const & | | at(self, *args) | at(self, _idx) -> process_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46925,16 +46683,16 @@ class procinfo_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) | erase(self, it) -> process_info_t - | it: qvector< process_info_t >::iterator | + | @param it: qvector< process_info_t >::iterator | | erase(self, first, last) -> process_info_t - | first: qvector< process_info_t >::iterator - | last: qvector< process_info_t >::iterator + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) | extract(self) -> process_info_t @@ -46944,47 +46702,56 @@ class procinfo_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=process_info_t()) - | x: process_info_t const & + | + | @param x: process_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: process_info_t * - | len: size_t + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> process_info_t - | it: qvector< process_info_t >::iterator - | x: process_info_t const & + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: process_info_t const & + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: process_info_t const & | + | @param _newsize: size_t + | @param x: process_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< process_info_t > & + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) | truncate(self) @@ -47029,22 +46796,22 @@ class register_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | bit_strings | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -47064,57 +46831,74 @@ class regval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | r: regval_t const & + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | | bytes(self, *args) | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) + | clear(self) | Clear register value. | | get_data(self, *args) | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) | get_data_size(self) -> size_t + | Get size of value. | | set_bytes(self, *args) | set_bytes(self, data, size) - | data: uchar const * - | size: size_t + | Initialize this regval to an empty custom value. | + | @param data: uchar const * + | @param size: size_t | | set_bytes(self, v) - | v: bytevec_t const & + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & | | set_float(self, *args) | set_float(self, x) - | x: fpvalue_t const & + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) | set_int(self, x) - | x: uint64 + | Set int value (ival) + | + | @param x: (C++: uint64) | | set_unavailable(self, *args) | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: regval_t &) + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47126,13 +46910,13 @@ class regval_t(__builtin__.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> fpvalue_t + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype | | thisown | The membership flag @@ -47164,7 +46948,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -47180,66 +46964,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -47253,19 +47043,20 @@ class scattered_segm_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) set_debug_event_code(ev, id) - @param ev (C++: debug_event_t *) - @param id (C++: event_id_t) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -47289,13 +47080,13 @@ class thread_name_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -47303,124 +47094,37 @@ class thread_name_t(__builtin__.object) | __swig_destroy__ = | delete_thread_name_t(self) -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -47434,741 +47138,756 @@ class IDB_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | adding_segm(self, *args) + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) + | savebase(self) | The database is being saved. | | segm_added(self, *args) + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -48199,1285 +47918,1260 @@ class IDP_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) + | ev_calcrel(self) -> int | Reserved. | | ev_can_have_type(self, *args) - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_merge_handlers(self, *args) + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_asm_or_lst(self, *args) - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_get_procmod(self, *args) - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_jump_func(self, *args) + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) - | Called if the user specified an option string in the command line: - | -p:. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p:. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_setup_til(self, *args) - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_update_call_stack(self, *args) - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) | hook(self) -> bool @@ -49603,736 +49297,750 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __repr__ = _swig_repr(self) | | adding_segm(self, *args) + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) + | savebase(self) | The database is being saved. | | segm_added(self, *args) + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -50374,160 +50082,163 @@ class asm_t(__builtin__.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -50540,6 +50251,7 @@ Help on function assemble in module ida_idp: assemble(*args) assemble(ea, cs, ip, use32, line) -> bool Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -50552,48 +50264,51 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) cfg_get_cc_header_path(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) cfg_get_cc_parm(compid, name) -> char const * - compid: comp_t - name: char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) cfg_get_cc_predefined_macros(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function clr_module_data in module ida_idp: clr_module_data(*args) + clr_module_data(data_id) -> void * Unregister pointer to database specific module data. - clr_module_data(data_id) -> void * - @param data_id: an data_id that was assigned by set_module_data() - (C++: int) - @return: previously registered pointer for the current database. it - can be deallocated now. Multiple calls to this function with - the same id are forbidden. + @param data_id: (C++: int) an data_id that was assigned by set_module_data() + @return: previously registered pointer for the current database. it can be + deallocated now. Multiple calls to this function with the same id are + forbidden. Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) delay_slot_insn(ea, bexec, fexec) -> bool - ea: ea_t * - bexec: bool * - fexec: bool * + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) + gen_idb_event(code) the kernel will use this function to generate idb_events - gen_idb_event(code) - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t Help on function get_ash in module ida_idp: @@ -50604,43 +50319,47 @@ Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) get_idb_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) get_idb_notifier_ud_addr(hooks) -> PyObject * - hooks: IDB_Hooks * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) get_idp_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) get_idp_notifier_ud_addr(hooks) -> PyObject * - hooks: IDP_Hooks * + + @param hooks: IDP_Hooks * Help on function get_module_data in module ida_idp: get_module_data(*args) + get_module_data(data_id) -> void * Get pointer to the database specific module data. - get_module_data(data_id) -> void * - @param data_id: data id that was initialized by set_module_data() - (C++: int) - @return: previously registered pointer for the current database + @param data_id: (C++: int) data id that was initialized by set_module_data() + @return: previously registered pointer for the current database Help on function get_ph in module ida_idp: @@ -50651,105 +50370,180 @@ Help on function get_reg_info in module ida_idp: get_reg_info(*args) get_reg_info(regname, bitrange) -> char const * - regname: char const * - bitrange: bitrange_t * + + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - get_reg_name(reg, width, reghi=-1) -> str - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) - Does an instruction with the specified feature modify the i-th - operand? - has_cf_chg(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) - Does an instruction with the specified feature use a value of the i-th - operand? - has_cf_use(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) + has_insn_feature(icode, bit) -> bool Does the specified instruction have the specified feature? - has_insn_feature(icode, bit) -> bool - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: int) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - is_align_insn(ea) -> int - @param ea (C++: ea_t) + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) + is_basic_block_end(insn, call_insn_stops_block) -> bool Is the instruction the end of a basic block? - is_basic_block_end(insn, call_insn_stops_block) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) + is_call_insn(insn) -> bool Is the instruction a "call"? - is_call_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) + is_indirect_jump_insn(insn) -> bool Is the instruction an indirect jump? - is_indirect_jump_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) + is_ret_insn(insn, strict=True) -> bool Is the instruction a "return"? - is_ret_insn(insn, strict=True) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(__builtin__.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_num_range_t(self) + +Help on class params_t in module ida_idp: + +class params_t(__builtin__.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_params_t(self) Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) + parse_reg_name(ri, regname) -> bool Get register info by name. - parse_reg_name(ri, regname) -> bool - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success Help on __ph in module ida_idp object: @@ -50800,21 +50594,24 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) ph_calcrel(ea) - ea: ea_t + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) ph_find_op_value(insn, op) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - op: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) ph_find_reg_value(insn, reg) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - reg: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: @@ -50849,7 +50646,7 @@ ph_get_id(*args) Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) - ph_get_instruc() -> PyObject * + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -50868,7 +50665,7 @@ ph_get_instruc_start(*args) Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) - ph_get_operand_info(ea, n) -> PyObject * + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -50881,9 +50678,10 @@ Help on function ph_get_reg_accesses in module ida_idp: ph_get_reg_accesses(*args) ph_get_reg_accesses(accvec, insn, flags) -> ssize_t - accvec: reg_accesses_t * - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - flags: int + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int Help on function ph_get_reg_code_sreg in module ida_idp: @@ -50912,7 +50710,7 @@ ph_get_reg_last_sreg(*args) Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) - ph_get_regnames() -> PyObject * + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: @@ -50937,8 +50735,9 @@ Help on function process_config_directive in module ida_idp: process_config_directive(*args) process_config_directive(directive, priority=2) - directive: char const * - priority: int + + @param directive: char const * + @param priority: int Help on class processor_t in module ida_idp: @@ -51142,709 +50941,705 @@ class processor_t(IDP_Hooks) | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) + | ev_calcrel(self) -> int | Reserved. | | ev_clean_tbit(self, *args) + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_merge_handlers(self, *args) + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_gen_asm_or_lst(self, *args) - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_procmod(self, *args) - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_setup_til(self, *args) - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_update_call_stack(self, *args) - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) | hook(self) -> bool @@ -51879,20 +51674,23 @@ class reg_access_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __init__(self, *args) | __init__(self) -> reg_access_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __repr__ = _swig_repr(self) | | have_common_bits(self, *args) | have_common_bits(self, r) -> bool - | @param r (C++: const reg_access_t &) + | + | @param r: reg_access_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -51904,16 +51702,16 @@ class reg_access_t(__builtin__.object) | list of weak references to the object (if defined) | | access_type - | reg_access_t_access_type_get(self) -> access_type_t + | access_type | | opnum - | reg_access_t_opnum_get(self) -> uchar + | opnum | | range - | reg_access_t_range_get(self) -> bitrange_t + | range | | regnum - | reg_access_t_regnum_get(self) -> int + | regnum | | thisown | The membership flag @@ -51933,15 +51731,19 @@ class reg_access_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reg_access_vec_t - | x: qvector< reg_access_t > const & + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51951,33 +51753,39 @@ class reg_access_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) | capacity(self) -> size_t @@ -51990,78 +51798,85 @@ class reg_access_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) | extract(self) -> reg_access_t | | find(self, *args) | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) | truncate(self) @@ -52118,11 +51933,13 @@ class reg_accesses_t(reg_access_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52132,31 +51949,37 @@ class reg_accesses_t(reg_access_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) | capacity(self) -> size_t @@ -52169,78 +51992,85 @@ class reg_accesses_t(reg_access_vec_t) | | end(self, *args) | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) | extract(self) -> reg_access_t | | find(self, *args) | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) | truncate(self) @@ -52263,36 +52093,43 @@ class reg_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52304,10 +52141,10 @@ class reg_info_t(__builtin__.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -52322,49 +52159,48 @@ Help on function register_cfgopts in module ida_idp: register_cfgopts(*args) register_cfgopts(opts, nopts, cb=None, obj=None) -> bool - opts: cfgopt_t const [] - nopts: size_t - cb: config_changed_cb_t * - obj: void * + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * Help on function set_module_data in module ida_idp: set_module_data(*args) - Starting from IDA v7.5 all modules should use the following 3 - functions to handle idb specific static data because now the kernel - supports opening and working with multiple idbs files simultaneously. - See the source code of the processor modules in the SDK for the usage - examples. Register pointer to database specific module data. - set_module_data(data_id, data_ptr) -> void * - @param data_id: initially the pointed-to value must be 0, the kernel - will fill it with a unique id. once assigned, the - data_id does not change. (C++: int *) - @param data_ptr: pointer to the data to register (C++: void *) - @return: data_ptr. The registered pointer can later be retrieved using - get_module_data() + Starting from IDA v7.5 all modules should use the following 3 functions to + handle idb specific static data because now the kernel supports opening and + working with multiple idbs files simultaneously. See the source code of the + processor modules in the SDK for the usage examples. Register pointer to + database specific module data. + + @param data_id: (C++: int *) initially the pointed-to value must be 0, the kernel will fill + it with a unique id. once assigned, the data_id does not change. + @param data_ptr: (C++: void *) pointer to the data to register + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() Help on function set_processor_type in module ida_idp: set_processor_type(*args) - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function sizeof_ldbl in module ida_idp: @@ -52374,1032 +52210,21 @@ sizeof_ldbl(*args) Help on function str2reg in module ida_idp: str2reg(*args) + str2reg(p) -> int Get any reg number (-1 on error) - str2reg(p) -> int - @param p (C++: const char *) + @param p: (C++: const char *) char const * -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_CHG7 -""" -The instruction modifies the 7th operand. -""" - -ida_idp.CF_CHG8 -""" -The instruction modifies the 8th operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CF_USE7 -""" -The instruction uses value of the 7th operand. -""" - -ida_idp.CF_USE8 -""" -The instruction uses value of the 8th operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.HKCB_GLOBAL -""" -is global event listener? if true, the listener will survive database -closing and opening. it will stay in the memory until explicitly -unhooked. otherwise the kernel will delete it as soon as the owner is -unloaded. should be used only with PLUGIN_FIX plugins. -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_RISCV -""" -RISC-V. -""" - -ida_idp.PLFM_RL78 -""" -Renesas RL78. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_XTENSA -""" -Tensilica Xtensa. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PR2_CODE16_BIT -""" -e.g. ARM Thumb, MIPS16 - -low bit of code addresses has special meaning -""" - -ida_idp.PR2_IDP_OPTS -""" -the module has processor-specific configuration options -""" - -ida_idp.PR2_MACRO -""" -processor supports macro instructions -""" - -ida_idp.PR2_MAPPINGS -""" -the processor module uses memory mapping -""" - -ida_idp.PR2_REALCVT -""" -the module has a custom 'ev_realcvt' implementation (otherwise -IEEE-754 format is assumed) -""" - -ida_idp.PR2_REL_BITS -""" -(Lumina) calcrel info has bits granularity, not bytes - construction -flag only -""" - -ida_idp.PR2_USE_CALCREL -""" -(Lumina) the module supports calcrel info -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_OUTER -""" -has outer operands (currently only mc68k) -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback +Module "ida_ieee"s docstring: """ +IEEE floating point functions.""" -ida_idp.PR_USE_TBYTE -""" -'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on function ecleaz in module ida_ieee: ecleaz(*args) ecleaz(x) - @param x (C++: eNI) + + @param x: unsigned short [(6+3)] Help on class fpvalue_shorts_array_t in module ida_ieee: @@ -53410,11 +52235,13 @@ class fpvalue_shorts_array_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> fpvalue_shorts_array_t - | data: unsigned short (&)[FPVAL_NWORDS] + | + | @param data: unsigned short (&)[FPVAL_NWORDS] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53426,15 +52253,19 @@ class fpvalue_shorts_array_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned short const & + | + | @param i: size_t + | @param v: unsigned short const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53449,7 +52280,7 @@ class fpvalue_shorts_array_t(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | fpvalue_shorts_array_t_data_get(self) -> unsigned short (&)[FPVAL_NWORDS] + | data | | thisown | The membership flag @@ -53469,43 +52300,53 @@ class fpvalue_t(__builtin__.object) | | __add__(self, *args) | __add__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __getitem__(self, i) | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __init__(self, *args) | __init__(self) -> fpvalue_t - | in: bytevec12_t const & + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __mul__(self, *args) | __mul__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __repr__ = _swig_repr(self) | @@ -53516,11 +52357,13 @@ class fpvalue_t(__builtin__.object) | | __sub__(self, *args) | __sub__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __truediv__(self, *args) | __truediv__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | _get_10bytes(self, *args) | _get_10bytes(self) @@ -53536,124 +52379,149 @@ class fpvalue_t(__builtin__.object) | | _set_10bytes(self, *args) | _set_10bytes(self, _in) - | in: bytevec10_t const & + | + | Parameters + | ---------- + | in: bytevec10_t const & | | _set_bytes(self, *args) | _set_bytes(self, _in) - | in: bytevec12_t const & + | + | Parameters + | ---------- + | in: bytevec12_t const & | | _set_float(self, *args) | _set_float(self, v) - | v: double + | + | Parameters + | ---------- + | v: double | | assign(self, *args) | assign(self, r) - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | eabs(self, *args) + | eabs(self) | Calculate absolute value. | | fadd(self, *args) + | fadd(self, y) -> fpvalue_error_t | Arithmetic operations. | - | fadd(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | @param y: (C++: const fpvalue_t &) fpvalue_t const & | | fdiv(self, *args) | fdiv(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | fmul(self, *args) | fmul(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | from_10bytes(self, *args) + | from_10bytes(self, fpval) -> fpvalue_error_t | Conversions for 10-byte floating point values. | - | from_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_12bytes(self, *args) + | from_12bytes(self, fpval) -> fpvalue_error_t | Conversions for 12-byte floating point values. | - | from_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_int64(self, *args) | from_int64(self, x) - | @param x (C++: int64) + | + | @param x: int64 | | from_str(self, *args) + | from_str(self, p) -> fpvalue_error_t | Convert string to IEEE. | - | from_str(self, p) -> fpvalue_error_t - | p: char const * + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. | | from_sval(self, *args) + | from_sval(self, x) | Convert integer to IEEE. | - | from_sval(self, x) - | @param x (C++: sval_t) + | @param x: (C++: sval_t) | | from_uint64(self, *args) | from_uint64(self, x) - | @param x (C++: uint64) + | + | @param x: uint64 | | fsub(self, *args) | fsub(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | get_kind(self, *args) + | get_kind(self) -> fpvalue_kind_t | Get value kind. | | is_negative(self, *args) + | is_negative(self) -> bool | Is negative value? | | mul_pow2(self, *args) + | mul_pow2(self, power_of_2) -> fpvalue_error_t | Multiply by a power of 2. | - | mul_pow2(self, power_of_2) -> fpvalue_error_t - | @param power_of_2 (C++: int32) + | @param power_of_2: (C++: int32) | | negate(self, *args) + | negate(self) | Negate. | | to_10bytes(self, *args) | to_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_12bytes(self, *args) | to_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_int64(self, *args) | to_int64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | to_str(self, *args) + | to_str(self, mode) | Convert IEEE to string. | - | to_str(self, mode) - | @param mode: broken down into: low byte: number of digits after '.' - | second byte: FPNUM_LENGTH third byte: FPNUM_DIGITS - | (C++: uint) + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS | | to_sval(self, *args) + | to_sval(self, round=False) -> fpvalue_error_t | Convert IEEE to integer (+-0.5 if round) | - | to_sval(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | @param round: (C++: bool) | | to_uint64(self, *args) | to_uint64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53686,7 +52554,7 @@ class fpvalue_t(__builtin__.object) | uint64 | | w - | fpvalue_t_w_get(self) -> uint16 [6] + | w | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -53694,17 +52562,18 @@ class fpvalue_t(__builtin__.object) | __swig_destroy__ = | delete_fpvalue_t(self) -=== ida_ieee EPYDOC INJECTIONS === -ida_ieee.E_SPECIAL_EXP -""" -Exponent in 'fpvalue_t' for NaN and Inf. +Module "ida_kernwin"s docstring: """ +Defines the interface between the kernel and the UI. + +It contains: +* the UI dispatcher notification codes (ui_notification_t) +* convenience functions for UI services +* structures which hold information about the lines (disassembly, structures, +enums) generated by the kernel +* functions to interact with the user (dialog boxes) +* some string and conversion functions.""" -ida_ieee.IEEE_EXONE -""" -The exponent of 1.0. -""" -=== ida_ieee EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(__builtin__.object) @@ -53767,7 +52636,7 @@ class Choose(__builtin__.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -53777,7 +52646,7 @@ class Choose(__builtin__.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -54042,7 +52911,9 @@ class CustomIDAMemo(View_Hooks) | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -54051,10 +52922,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -54096,7 +52967,7 @@ class Form(__builtin__.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param close_normally | 1: form is closed normally as if the user pressed Enter | 0: form is closed abnormally as if the user pressed Esc | @return: None @@ -54144,8 +53015,7 @@ class Form(__builtin__.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @return: - color button, radio controls: integer | - file/dir input, string input and string label: string | - embedded chooser control (0-based indices of selected items): integer list | - for multilinetext control: textctrl_info_t @@ -54171,7 +53041,7 @@ class Form(__builtin__.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param value | - embedded chooser: a 0-base indices list to select embedded chooser items | - multilinetext: a textctrl_info_t | - dropdown list: an integer designating the selection index if readonly @@ -54536,7 +53406,9 @@ class IDAViewWrapper(CustomIDAMemo) | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -54545,10 +53417,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -54704,7 +53576,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) TWidget__from_ptrval__(ptrval) -> TWidget * - ptrval: size_t + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -54717,274 +53590,292 @@ class UI_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __real_database_closed = database_closed(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | __repr__ = _swig_repr(self) | | create_desktop_widget(self, *args) - | create a widget, to be placed in the widget tree (at desktop- - | creation time.) - | | create_desktop_widget(self, title, cfg) -> PyObject * - | @param title (C++: const char *) - | @param cfg (C++: const jobj_t *) + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) + | current_widget_changed(self, widget, prev_widget) | The currently-active TWidget changed. | - | current_widget_changed(self, widget, prev_widget) - | @param widget (C++: TWidget *) - | @param prev_widget (C++: TWidget *) + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) | | database_closed = __wrapper(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | database_inited(self, *args) - | database initialization has completed. the kernel is about to run - | idc scripts - | | database_inited(self, is_new_database, idc_script) - | @param is_new_database (C++: int) - | @param idc_script: - may be NULL (C++: const char *) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param idc_script: (const char *) - may be nullptr + | @return: void See also ui_initing_database. This event is called for both new + | and old databases. | | debugger_menu_change(self, *args) + | debugger_menu_change(self, enable) | debugger menu modification detected | - | debugger_menu_change(self, enable) - | @param enable: true: debugger menu has been added, or a different - | debugger has been selected false: debugger menu will be - | removed (user switched to "No debugger") (C++: bool) + | @param enable: (bool) true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be removed + | (user switched to "No debugger") | | desktop_applied(self, *args) + | desktop_applied(self, name, from_idb, type) | a desktop has been applied | - | desktop_applied(self, name, from_idb, type) - | @param name: the desktop name (C++: const char *) - | @param from_idb: the desktop was stored in the IDB (false if it comes - | from the registry) (C++: bool) - | @param type: the desktop type (1-disassembly, 2-debugger, 3-merge) - | (C++: int) + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) | | destroying_plugmod(self, *args) + | destroying_plugmod(self, plugmod, entry) | The plugin object is about to be destroyed | - | destroying_plugmod(self, plugmod, entry) - | @param plugmod (C++: const plugmod_t *) - | @param entry (C++: const plugin_t *) + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) | | destroying_procmod(self, *args) + | destroying_procmod(self, procmod) | The processor module is about to be destroyed | - | destroying_procmod(self, procmod) - | @param procmod (C++: const procmod_t *) + | @param procmod: (const procmod_t *) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | finish_populating_widget_popup(self, *args) - | IDA is about to be done populating the context menu for a widget. - | This is your chance to 'attach_action_to_popup()' . - | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is about to be done populating the context menu for a widget. This is + | your chance to attach_action_to_popup(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) - | get item-specific attributes for a chooser. This callback is - | generated only after enable_chooser_attrs() - | | get_chooser_item_attrs(self, chooser, n, attrs) - | @param chooser (C++: const chooser_base_t *) - | @param n (C++: size_t) - | @param attrs (C++: chooser_item_attrs_t *) + | get item-specific attributes for a chooser. This callback is generated only + | after enable_chooser_attrs() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) + | get_custom_viewer_hint(self, viewer, place) -> PyObject * | ui wants to display a hint for a viewer (idaview or custom). Every | subscriber is supposed to append the hint lines to HINT and increment - | IMPORTANT_LINES accordingly. Completely overwriting the existing lines - | in HINT is possible but not recommended. If the REG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the source-level debugger-generated hints. The - | following keywords might appear at the beginning of the returned - | hints: HIGHLIGHT textwhere text will be highlighted CAPTION - | captioncaption for the hint widget + | IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT + | is possible but not recommended. If the REG_HINTS_MARKER sequence is found in + | the returned hints string, it will be replaced with the contents of the + | "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned + | hints string, it will be replaced with the contents of the source-level + | debugger-generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT text + | where text will be highlighted CAPTION caption + | caption for the hint widget | - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | @param viewer: viewer (C++: TWidget*) - | @param place: current position in the viewer (C++: place_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | @param viewer: (TWidget*) viewer + | @param place: (place_t *) current position in the viewer + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | get_ea_hint(self, *args) - | ui wants to display a simple hint for an address. Use this event - | to generate a custom hint See also more generic 'ui_get_item_hint' - | | get_ea_hint(self, ea) -> PyObject * - | @param ea (C++: ea_t) + | ui wants to display a simple hint for an address. Use this event to generate + | a custom hint See also more generic ui_get_item_hint + | + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) - | ui wants to display multiline hint for an item. See also more - | generic 'ui_get_custom_viewer_hint' - | | get_item_hint(self, ea, max_lines) -> PyObject * - | @param ea: or item id like a structure or enum member (C++: ea_t) - | @param max_lines: maximal number of lines (C++: int) + | ui wants to display multiline hint for an item. See also more generic + | ui_get_custom_viewer_hint + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint | | get_lines_rendering_info(self, *args) + | get_lines_rendering_info(self, out, widget, info) | get lines rendering information | - | get_lines_rendering_info(self, out, widget, info) - | @param out (C++: lines_rendering_output_t *) - | @param widget (C++: const TWidget *) - | @param info (C++: const lines_rendering_input_t *) + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) + | get_widget_config(self, widget, cfg) -> PyObject * | retrieve the widget configuration (it will be passed back at | ui_create_desktop_widget-, and ui_set_widget_config-time) | - | get_widget_config(self, widget, cfg) -> PyObject * - | @param widget (C++: const TWidget *) - | @param cfg (C++: jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) | hook(self) -> bool | | idcstart(self, *args) + | idcstart(self) | Start of IDC engine work. | | idcstop(self, *args) + | idcstop(self) | Stop of IDC engine work. | | initing_database(self, *args) + | initing_database(self) | database initialization has started. + | + | @return: void See also ui_database_inited. This event is called for both new and + | old databases. | | plugin_loaded(self, *args) + | plugin_loaded(self, plugin_info) | The plugin was loaded in memory. | - | plugin_loaded(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) + | plugin_unloading(self, plugin_info) | The plugin is about to be unloaded | - | plugin_unloading(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) - | IDA is populating the context menu for a widget. This is your - | chance to 'attach_action_to_popup()' .Have a look at - | ui_finish_populating_widget_popup, if you want to augment the context - | menu with your own actions after the menu has had a chance to be - | properly populated by the owning component or plugin (which typically - | does it on ui_populating_widget_popup.) - | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is populating the context menu for a widget. This is your chance to + | attach_action_to_popup(). + | + | Have a look at ui_finish_populating_widget_popup, if you want to augment the + | context menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically does it on + | ui_populating_widget_popup.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) + | postprocess_action(self) | an ida ui action has been handled | | preprocess_action(self, *args) + | preprocess_action(self, name) -> int | ida ui is about to handle a user action. | - | preprocess_action(self, name) -> int - | @param name: ui action name. these names can be looked up in - | ida[tg]ui.cfg (C++: const char *) - | @retval: 0 - ok - | @retval: nonzero - a plugin has handled the command + | @param name: (const char *) ui action name. these names can be looked up in + | ida[tg]ui.cfg + | @retval 0: ok + | @retval nonzero: a plugin has handled the command | | range(self, *args) - | The disassembly range has been changed (\inf{min_ea} ... - | \inf{max_ea}). UI should redraw the scrollbars. See also: - | 'ui_lock_range_refresh' + | range(self) + | The disassembly range has been changed ( idainfo::min_ea ... + | idainfo::max_ea). UI should redraw the scrollbars. See also: + | ui_lock_range_refresh | | ready_to_run(self, *args) - | all UI elements have been initialized. Automatic plugins may hook - | to this event to perform their tasks. + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) - | Resume the suspended graphical interface. Only the text version. - | Interface should respond to it + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) - | The kernel has saved the database. This callback just informs the - | interface. Note that at the time this notification is sent, the - | internal paths are not updated yet, and calling - | get_path(PATH_TYPE_IDB) will return the previous path. - | | saved(self, path) - | @param path: the database path (C++: const char *) + | The kernel has saved the database. This callback just informs the interface. + | Note that at the time this notification is sent, the internal paths are not + | updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path. + | + | @param path: (const char *) the database path | | saving(self, *args) - | The kernel is flushing its buffers to the disk. The user interface - | should save its state. Parameters: none Returns: none + | saving(self) + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) + | screen_ea_changed(self, ea, prev_ea) | The "current address" changed | - | screen_ea_changed(self, ea, prev_ea) - | @param ea (C++: ea_t) - | @param prev_ea (C++: ea_t) + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) + | set_widget_config(self, widget, cfg) | set the widget configuration | - | set_widget_config(self, widget, cfg) - | @param widget (C++: const TWidget *) - | @param cfg (C++: const jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) - | Suspend graphical interface. Only the text version. Interface - | should respond to it. + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) | unhook(self) -> bool | | updated_actions(self, *args) + | updated_actions(self) | IDA is done updating actions. | | updating_actions(self, *args) - | IDA is about to update all actions. If your plugin needs to - | perform expensive operations more than once (e.g., once per action it - | registers), you should do them only once, right away. - | | updating_actions(self, ctx) - | @param ctx (C++: action_update_ctx_t *) + | IDA is about to update all actions. If your plugin needs to perform + | expensive operations more than once (e.g., once per action it registers), you + | should do them only once, right away. + | + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) - | TWidget is about to close. This event precedes ui_widget_invisible. - | Use this to perform some possible actions relevant to the lifecycle of - | this widget - | | widget_closing(self, widget) - | @param widget (C++: TWidget *) + | TWidget is about to close. This event precedes ui_widget_invisible. Use this to + | perform some possible actions relevant to the lifecycle of this widget + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) + | widget_invisible(self, widget) | TWidget is being closed. Use this event to destroy the window controls | - | widget_invisible(self, widget) - | @param widget (C++: TWidget *) + | @param widget: (TWidget *) | | widget_visible(self, *args) - | TWidget is displayed on the screen. Use this event to populate the - | window with controls - | | widget_visible(self, widget) - | @param widget (C++: TWidget *) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55015,12 +53906,15 @@ class View_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | dump_state(self, *args) - | dump_state(self) -> qstring + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) | hook(self) -> bool @@ -55029,87 +53923,87 @@ class View_Hooks(__builtin__.object) | unhook(self) -> bool | | view_activated(self, *args) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, *args) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, *args) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, *args) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55167,34 +54061,49 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) _ask_addr(addr, format) -> bool - addr: ea_t * - format: char const * + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) _ask_long(value, format) -> bool - value: sval_t * - format: char const * + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) _ask_seg(sel, format) -> bool - sel: sel_t * - format: char const * + + Parameters + ---------- + sel: sel_t * + format: char const * Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: _kludge_force_declare_dirspec_t(*args) _kludge_force_declare_dirspec_t(arg1) - arg1: dirspec_t const * + + Parameters + ---------- + arg1: dirspec_t const * Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: _kludge_force_declare_dirtree_t(*args) _kludge_force_declare_dirtree_t(arg1) - arg1: dirtree_t const * + + Parameters + ---------- + arg1: dirtree_t const * Help on class action_ctx_base_cur_sel_t in module ida_kernwin: @@ -55221,13 +54130,13 @@ class action_ctx_base_cur_sel_t(__builtin__.object) | list of weak references to the object (if defined) | | _from - | action_ctx_base_cur_sel_t__from_get(self) -> twinpos_t + | _from | | thisown | The membership flag | | to - | action_ctx_base_cur_sel_t_to_get(self) -> twinpos_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55260,7 +54169,7 @@ class action_ctx_base_source_t(__builtin__.object) | list of weak references to the object (if defined) | | chooser - | action_ctx_base_source_t_chooser_get(self) -> chooser_base_t + | chooser | | thisown | The membership flag @@ -55283,22 +54192,14 @@ class action_ctx_base_t(__builtin__.object) | | __repr__ = _swig_repr(self) | - | _get_form(self, *args) - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) + | has_flag(self, flag) -> bool | Check if the given flag is set. | - | has_flag(self, flag) -> bool - | @param flag (C++: uint32) + | @param flag: (C++: uint32) | | reset(self, *args) + | reset(self) | Invalidate all context info. | | ---------------------------------------------------------------------- @@ -55311,82 +54212,79 @@ class action_ctx_base_t(__builtin__.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum | | cur_enum_member - | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg | | cur_sel - | action_ctx_base_t_cur_sel_get(self) -> action_ctx_base_cur_sel_t + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | dirtree_selection - | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname | | source - | action_ctx_base_t_source_get(self) -> action_ctx_base_source_t + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55403,13 +54301,14 @@ class action_desc_t(__builtin__.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | name: char const * - | label: char const * - | handler: PyObject * - | shortcut: char const * - | tooltip: char const * - | icon: int - | flags: int + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -55423,31 +54322,31 @@ class action_desc_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> void const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55465,8 +54364,22 @@ class action_handler_t(__builtin__.object) | __init__(self) | | activate(self, ctx) + | Activate an action. This function implements the core behavior of an action. It + | is called when the action is triggered, from a menu, from a popup menu, from the + | toolbar, or programmatically. + | + | @return: non-zero: all IDA windows will be refreshed | | update(self, ctx) + | Update an action. This is called when the context of the UI changed, and we need + | to let the action update some of its properties if needed (label, icon, ...) + | + | In addition, this lets IDA know whether the action is enabled, and when it + | should be queried for availability again. + | + | Note: This callback is not meant to change anything in the application's state, + | except by calling one (or many) of the "update_action_*()" functions on this + | very action. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55480,16 +54393,16 @@ class action_handler_t(__builtin__.object) Help on function activate_widget in module ida_kernwin: activate_widget(*args) - Activate widget (only gui version) ( 'ui_activate_widget' ). - activate_widget(widget, take_focus) - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) - add_hotkey(hotkey, pyfunc) -> PyObject * + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -55501,28 +54414,28 @@ add_hotkey(*args) Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. + add_spaces(s, len) -> str + Add space characters to the colored string so that its length will be at least + 'len' characters. Don't trim the string if it is longer than 'len'. - add_spaces(s, len) -> PyObject * - s: char const * - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) + addon_count() -> int Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -55547,34 +54460,34 @@ class addon_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55585,83 +54498,114 @@ class addon_info_t(__builtin__.object) Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: ask_addr(defval, format) - # ---------------------------------------------------------------------- + Output a formatted string to the output window (msg) preprended with "**DATABASE + IS CORRUPTED: " Display a dialog box and wait for the user to input an address + (ui_ask_addr). + + @retval 0: the user pressed Esc. + @retval 1: ok, the user entered an address Help on function ask_buttons in module ida_kernwin: ask_buttons(*args) - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - ask_buttons(Yes, No, Cancel, deflt, format) -> int - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + Display a dialog box and get choice from maximum three possibilities + (ui_ask_buttons). + @note: for all buttons: + * use "" or nullptr to take the default name for the button. + * use 'format' to hide the cancel button + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) printf-style format string for question. It may have some + prefixes, see below. + @return: one of Button IDs specifying the selected button (Esc key returns + Cancel/3rd button value) Help on function ask_file in module ida_kernwin: ask_file(*args) ask_file(for_saving, defval, format) -> char * - @param for_saving (C++: bool) - @param defval (C++: const char *) - @param format (C++: const char *) + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: ask_for_feedback(*args) - Show a message box asking to send the input file tosupport@hex- - rays.com. - ask_for_feedback(format) - @param format: the reason why the input file is bad (C++: const char - *) + Show a message box asking to send the input file to \link{mailto:support@hex- + rays.com,support@hex-rays.com}. + + @param format: (C++: const char *) the reason why the input file is bad Help on function ask_form in module ida_kernwin: ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + " keyword, then the return values are the same as in the ask_yn() + function (Button IDs) + + @retval 0: the user pressed Esc, no memory to display or form syntax error a + dialog box (a warning is displayed in this case). all variables + retain their original values. + @retval 1: ok, all input fields are filled and validated. + @retval -1: the form had BUTTON CANCEL and the user cancelled the dialog Help on function ask_ident in module ida_kernwin: ask_ident(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an identifier. If the user + enters a non-valid identifier, this function displays a warning and allows the + user to correct it. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: ask_long(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an number (ui_ask_long). The + number is represented in C-style. This function allows to enter any IDC + expression and properly calculates it. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered a valid number. Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_str in module ida_kernwin: ask_str(*args) - ask_str(defval, hist, prompt) -> PyObject * + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) - ask_text(max_size, defval, prompt) -> PyObject * + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -55672,106 +54616,97 @@ ask_text(*args) Help on function ask_yn in module ida_kernwin: ask_yn(*args) + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). + attach_action_to_menu(menupath, name, flags=0) -> bool + Attach a previously-registered action to the menu (ui_attach_action_to_menu). + @note: You should not change top level menu, or the Edit,Plugins submenus If you + want to modify the debugger menu, do it at the ui_debugger_menu_change + event (ida might destroy your menu item if you do it elsewhere). - attach_action_to_menu(menupath, name, flags) -> bool - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success + @param menupath: (C++: const char *) path to the menu item after or before which the insertion will + take place. + * Example: Debug/StartProcess + * Whitespace, punctuation are ignored. + * It is allowed to specify only the prefix of the menu item. + * Comparison is case insensitive. + * menupath may start with the following prefixes: + * [S] - modify the main menu of the structure window + * [E] - modify the main menu of the enum window + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) - Insert a previously-registered action into the widget's popup menu ( - 'ui_attach_action_to_popup' ). This function has two "modes": 'single- - shot', and 'permanent'. - attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success + Insert a previously-registered action into the widget's popup menu + (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and + 'permanent'. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup menu + * if non-nullptr, the action is added to this popup menu invocation (i.e., + 'single-shot') + * if nullptr, the action is added to a list of actions that should always be + present in context menus for this widget (i.e., 'permanent'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - attach_action_to_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success + Create & insert an action into the widget's popup menu + (ui_attach_dynamic_action_to_popup). + @note: action_desc_t::handler for 'desc' must be instantiated using 'new', as it + will be 'delete'd when the action is unregistered. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup + @param desc: (C++: const action_desc_t &) created with DYNACTION_DESC_LITERAL + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ constants (see Set menu flags) + @return: success Help on function banner in module ida_kernwin: banner(*args) - Show a banner dialog box ( 'ui_banner' ). - banner(wait) -> bool - @param wait: time to wait before closing (C++: int) - @retval: 1 - ok - @retval: 0 - esc was pressed + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) - Issue a beeping sound ( 'ui_beep' ). - beep(beep_type=beep_default) - @param beep_type: beep_t (C++: beep_t) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: @@ -55779,108 +54714,114 @@ call_nav_colorizer(*args) call_nav_colorizer(dict, ea, nbytes) -> uint32 To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - cancel_exec_request(req_id) -> bool - @param req_id: request id (C++: int) - @retval: true - successfully canceled - @retval: false - request has already been processed. + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. Help on function cancel_thread_exec_requests in module ida_kernwin: cancel_thread_exec_requests(*args) - Try to cancel asynchronous exec requests created by the specified - thread. - cancel_thread_exec_requests(tid) -> int - @param tid: thread id (C++: qthread_t) - @return: number of the canceled requests. + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) choose_activate(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) choose_choose(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) choose_close(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) choose_create_embedded_chobj(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - choose_entry(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - choose_enum(title, default_id) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) - Choose an enum, restricted by value & size ( 'ui_choose' , - 'chtype_enum_by_value_and_size' ). If the given value cannot be found - initially, this function will ask if the user would like to import a - standard enum. - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uint64) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) - choose_find(title) -> PyObject * - title: char const * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) - Choose a function ( 'ui_choose' , 'chtype_func' ). - choose_func(title, default_ea) -> func_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) choose_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: @@ -55893,71 +54834,75 @@ choose_idasgn(*args) Help on function choose_name in module ida_kernwin: choose_name(*args) - Choose a name ( 'ui_choose' , 'chtype_name' ). - choose_name(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) choose_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - choose_segm(title, default_ea) -> segment_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - choose_srcp(title) -> sreg_range_t * - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - choose_stkvar_xref(pfn, mptr) -> ea_t - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - choose_struc(title) -> struc_t * - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). + + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - choose_xref(to) -> ea_t - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected Help on class chooser_base_t in module ida_kernwin: @@ -55971,6 +54916,7 @@ class chooser_base_t(__builtin__.object) | __repr__ = _swig_repr(self) | | ask_item_attrs(self, *args) + | ask_item_attrs(self) -> bool | should chooser generate ui_get_chooser_item_attrs events? | | can_del(self, *args) @@ -55983,6 +54929,7 @@ class chooser_base_t(__builtin__.object) | can_filter(self) -> bool | | can_ins(self, *args) + | can_ins(self) -> bool | is an operation allowed? | | can_refresh(self, *args) @@ -55992,27 +54939,29 @@ class chooser_base_t(__builtin__.object) | can_sort(self) -> bool | | get_builtin_number(self, *args) + | get_builtin_number(self) -> uint | get number of the built-in chooser | | get_count(self, *args) + | get_count(self) -> size_t | get the number of elements in the chooser | | get_ea(self, *args) - | get an address of an element. Used to set breakpoint in any chooser - | which implements this callback. - | | get_ea(self, arg2) -> ea_t - | arg2: size_t - | @return: the effective address, BADADDR if the element has no address + | get an address of an element. Used to set breakpoint in any chooser which + | implements this callback. + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address | | get_quick_filter_initial_mode(self, *args) | get_quick_filter_initial_mode(self) -> int | | get_row(self, *args) + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) | get a description of an element. | - | get_row(self, n) -> PyObject * - | @param n: element number (0.. get_count() -1) (C++: size_t) + | @param n: (C++: size_t) element number (0..get_count()-1) | | has_diff_capability(self, *args) | has_diff_capability(self) -> bool @@ -56020,35 +54969,42 @@ class chooser_base_t(__builtin__.object) | has_dirtree(self, *args) | has_dirtree(self) -> bool | + | is_dirtree_persisted(self, *args) + | is_dirtree_persisted(self) -> bool + | | is_force_default(self, *args) + | is_force_default(self) -> bool | should selection of the already opened non-modal chooser be changed? | | is_modal(self, *args) + | is_modal(self) -> bool | is choose modal? | | is_multi(self, *args) + | is_multi(self) -> bool | is multi-selection allowed? | | is_noidb(self, *args) + | is_noidb(self) -> bool | can use the chooser before opening the database? | | is_quick_filter_visible_initially(self, *args) | is_quick_filter_visible_initially(self) -> bool | | is_same(self, *args) + | is_same(self, other) -> bool | do the current and the given objects hold the same data? | - | is_same(self, other) -> bool - | @param other (C++: const chooser_base_t *) + | @param other: (C++: const chooser_base_t *) chooser_base_t const * | | is_status_bar_hidden(self, *args) | is_status_bar_hidden(self) -> bool | | popup_allowed(self, *args) + | popup_allowed(self, i) -> bool | is a popup action allowed? | - | popup_allowed(self, i) -> bool - | @param i (C++: int) + | @param i: (C++: int) | | should_rename_trigger_edit(self, *args) | should_rename_trigger_edit(self) -> bool @@ -56066,46 +55022,46 @@ class chooser_base_t(__builtin__.object) | list of weak references to the object (if defined) | | columns - | chooser_base_t_columns_get(self) -> int + | columns | | deflt_col - | chooser_base_t_deflt_col_get(self) -> int + | deflt_col | | header - | chooser_base_t_header_get(self) -> char const *const * + | header | | height - | chooser_base_t_height_get(self) -> int + | height | | icon - | chooser_base_t_icon_get(self) -> int + | icon | | popup_names - | chooser_base_t_popup_names_get(self) -> qstring [chooser_base_t::NSTDPOPUPS] + | popup_names | | thisown | The membership flag | | title - | chooser_base_t_title_get(self) -> char const * + | title | | width - | chooser_base_t_width_get(self) -> int + | width | | widths - | chooser_base_t_widths_get(self) -> int const * + | widths | | x0 - | chooser_base_t_x0_get(self) -> int + | x0 | | x1 - | chooser_base_t_x1_get(self) -> int + | x1 | | y0 - | chooser_base_t_y0_get(self) -> int + | y0 | | y1 - | chooser_base_t_y1_get(self) -> int + | y1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56145,10 +55101,10 @@ class chooser_item_attrs_t(__builtin__.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag @@ -56163,7 +55119,8 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) clear_refresh_request(mask) - @param mask (C++: uint64) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -56197,7 +55154,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | This callback is mandatory. | | @param line: typed line(s) - | @return Boolean: True-executed line, False-ask for more lines + | @return: Boolean: True-executed line, False-ask for more lines | | OnKeydown(self, line, x, sellen, vkey, shift) | A keyboard key has been pressed @@ -56211,8 +55168,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param vkey: virtual key code. if the key has been handled, it should be returned as zero | @param shift: shift state | - | @return: - | None - Nothing was changed + | @return: None - Nothing was changed | tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. | It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line) | @@ -56226,9 +55182,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -56250,105 +55206,97 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) Help on function close_chooser in module ida_kernwin: close_chooser(*args) - Close a non-modal chooser ( 'ui_close_chooser' ). - close_chooser(title) -> bool - @param title: window title of chooser to close (C++: const char *) - @return: success + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) - Close widget ( 'ui_close_widget' , only gui version). - close_widget(widget, options) - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) - Create a code viewer ( 'ui_create_code_viewer' ). A code viewer - contains on the left side a widget representing the line numbers, and - on the right side, the child widget passed as parameter. It will - inherit its title from the child widget. - create_code_viewer(custview, flags=0, parent=None) -> TWidget * - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + Create a code viewer (ui_create_code_viewer). A code viewer contains on the left + side a widget representing the line numbers, and on the right side, the child + widget passed as parameter. It will inherit its title from the child widget. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) + create_empty_widget(title, icon=-1) -> TWidget * Create an empty widget, serving as a container for custom user widgets - create_empty_widget(title, icon=-1) -> TWidget * - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) - Create a menu with the given name, label and optional position, either - in the menubar, or as a submenu. If 'menupath' is non-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + create_menu(name, label, menupath=None) -> bool + Create a menu with the given name, label and optional position, either in the + menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information + about where the menu should be positioned. First, IDA will try and resolve the + corresponding menu by its name. If such an existing menu is found and is present + in the menubar, then the new menu will be inserted in the menubar before it. + Otherwise, IDA will try to resolve 'menupath' as it would for + attach_action_to_menu() and, if found, add the new menu like so: // The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment..." command create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - or - // The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(...)", "My menu", "Edit/Comments/"); - If the above fails, the new menu will be appended to the menubar. - create_menu(name, label, menupath=None) -> bool - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) + create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position - create_toolbar(name, label, before=None, flags=0) -> bool - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) - Append 'loc' to the viewer's history, and cause the viewer to display - it. - custom_viewer_jump(v, loc, flags=0) -> bool - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success Help on function del_hotkey in module ida_kernwin: @@ -56364,58 +55312,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) + delete_menu(name) -> bool Delete an existing menu - delete_menu(name) -> bool - @param name: name of menu (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu + @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) + delete_toolbar(name) -> bool Delete an existing toolbar - delete_toolbar(name) -> bool - @param name: name of toolbar (C++: const char *) - @return: success + @param name: (C++: const char *) name of toolbar + @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - detach_action_from_menu(menupath, name) -> bool - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) - Remove a previously-registered action, from the list of 'permanent' - context menu actions for this widget ( 'ui_detach_action_from_popup' - ). This only makes sense if the action has been added to 'widget's - list of permanent popup actions by calling attach_action_to_popup in - 'permanent' mode. - detach_action_from_popup(widget, name) -> bool - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + Remove a previously-registered action, from the list of 'permanent' context menu + actions for this widget (ui_detach_action_from_popup). This only makes sense if + the action has been added to 'widget's list of permanent popup actions by + calling attach_action_to_popup in 'permanent' mode. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - detach_action_from_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on class disabled_script_timeout_t in module ida_kernwin: @@ -56444,7 +55392,9 @@ class disasm_line_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | other: disasm_line_t const & + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -56458,19 +55408,19 @@ class disasm_line_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -56490,11 +55440,14 @@ class disasm_text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> disasm_line_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | x: qvector< disasm_line_t > const & + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56506,19 +55459,20 @@ class disasm_text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: disasm_line_t const & + | + | @param i: size_t + | @param v: disasm_line_t const & | | at(self, *args) | at(self, _idx) -> disasm_line_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) | capacity(self) -> size_t @@ -56531,16 +55485,16 @@ class disasm_text_t(__builtin__.object) | | end(self, *args) | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) | erase(self, it) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator | + | @param it: qvector< disasm_line_t >::iterator | | erase(self, first, last) -> disasm_line_t - | first: qvector< disasm_line_t >::iterator - | last: qvector< disasm_line_t >::iterator + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) | extract(self) -> disasm_line_t @@ -56550,47 +55504,56 @@ class disasm_text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=disasm_line_t()) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & | | inject(self, *args) | inject(self, s, len) - | s: disasm_line_t * - | len: size_t + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator - | x: disasm_line_t const & + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: disasm_line_t const & | + | @param _newsize: size_t + | @param x: disasm_line_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< disasm_line_t > & + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) | truncate(self) @@ -56616,57 +55579,60 @@ class disasm_text_t(__builtin__.object) Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) - Display copyright warning ( 'ui_copywarn' ). + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no Help on function display_widget in module ida_kernwin: display_widget(*args) + display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before - display_widget(widget, options, dest_ctrl=None) - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param dest_ctrl: (C++: const char *) where to dock: if nullptr or invalid then use the active + docker if there is not create a new tab relative to current + active tab Help on function ea2str in module ida_kernwin: ea2str(*args) + ea2str(ea) -> str Convert linear address to UTF-8 string. - ea2str(ea) -> str - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) - Push current location in the history and jump to the given location ( - 'ui_ea_viewer_history_push_and_jump' ). This will jump in the given ea - viewer and also in other synchronized views. - ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + Push current location in the history and jump to the given location + (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and + also in other synchronized views. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - enable_chooser_item_attrs(chooser_caption, enable) -> bool - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success + Enable item-specific attributes for chooser items + (ui_enable_chooser_item_attrs). For example: color list items differently + depending on a criterium. + If enabled, the chooser will generate ui_get_chooser_item_attrs + events that can be intercepted by a plugin to modify the item attributes. + This event is generated only in the GUI version of IDA. + Specifying CH_ATTRS bit at the chooser creation time has the same effect. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -56688,19 +55654,19 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56712,184 +55678,189 @@ class enumplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -56901,7 +55872,7 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: @@ -56919,7 +55890,7 @@ execute_sync(*args) If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -56938,334 +55909,371 @@ execute_ui_requests(*args) Help on function find_widget in module ida_kernwin: find_widget(*args) - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - find_widget(caption) -> TWidget * - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + Find widget with the specified caption (only gui version) (ui_find_widget). NB: + this callback works only with the tabbed widgets! + + @param caption: (C++: const char *) title of tab, or window title if widget is not tabbed + @return: pointer to the TWidget, nullptr if none is found Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) formchgcbfa_close(p_fa, close_normally) - p_fa: size_t - close_normally: int + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) formchgcbfa_enable_field(p_fa, fid, enable) -> bool - p_fa: size_t - fid: int - enable: bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - p_fa: size_t - fid: int - ft: int - sz: size_t + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) formchgcbfa_get_focused_field(p_fa) -> int - p_fa: size_t + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - p_fa: size_t - fid: int - x: int - y: int - w: int - h: int + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) formchgcbfa_refresh_field(p_fa, fid) - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - p_fa: size_t - fid: int - ft: int - py_val: PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) formchgcbfa_set_focused_field(p_fa, fid) -> bool - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) formchgcbfa_show_field(p_fa, fid, show) -> bool - p_fa: size_t - fid: int - show: bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) + gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range. - gen_disasm_text(text, ea1, ea2, truncate_lines) - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) - Get an action's checkability ( 'ui_get_action_attr' ). - get_action_checkable(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) - Get an action's checked state ( 'ui_get_action_attr' ). - get_action_checked(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) - Get an action's icon ( 'ui_get_action_attr' ). - get_action_icon(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) - Get an action's label ( 'ui_get_action_attr' ). - get_action_label(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) - Get an action's shortcut ( 'ui_get_action_attr' ). - get_action_shortcut(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) - Get an action's state ( 'ui_get_action_attr' ). - get_action_state(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) - Get an action's tooltip ( 'ui_get_action_attr' ). - get_action_tooltip(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) - Get an action's visibility ( 'ui_get_action_attr' ). - get_action_visibility(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. + get_active_modal_widget() -> TWidget * + Get the current, active modal TWidget instance. Note that in this context, the + "wait dialog" is not considered: this function will return nullptr even if it is + currently shown. + + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) - Get info about a registered addon with a given product code. info->cb - must be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info(id, info) -> bool - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found + Get info about a registered addon with a given product code. info->cb must be + valid! NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) - Get info about a registered addon with specific index. info->cb must - be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info_idx(index, info) -> bool - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range + Get info about a registered addon with specific index. info->cb must be valid! + NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. + get_chooser_data(chooser_caption, n) -> [str, ...] + Get the text corresponding to the index N in the chooser data. Use -1 to get the + header. - get_chooser_data(chooser_caption, n) -> PyObject * - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This attemps to find the choser by its title - and, if found, returns the result of calling its - 'chooser_base_t::get_chooser_obj()' method.This is object is chooser- - specific. - get_chooser_obj(chooser_caption) -> void * - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + Get the underlying object of the specified chooser (ui_get_chooser_obj). + + This attemps to find the choser by its title and, if found, returns the result + of calling its chooser_base_t::get_chooser_obj() method. + + @note: This is object is chooser-specific. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) - Get current line from the disassemble window ( 'ui_get_curline' ). + get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). + + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) - Get a pointer to the current widget ( 'ui_get_current_widget' ). + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based + + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - get_custom_viewer_curline(custom_viewer, mouse) -> char const * - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + Get current line of custom viewer (ui_get_custom_viewer_curline). The returned + line contains color codes + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: get_custom_viewer_location(*args) - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + Get the current location in a custom viewer (ui_get_custom_viewer_location). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' - get_custom_viewer_place(custom_viewer, mouse) -> place_t - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + Get current place in a custom viewer (ui_get_curplace). + + See also the more complete get_custom_viewer_location() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param pitem: (C++: const place_t *) a place corresponding to the item + @return: -1 if 'pitem' is not included in the line + -2 if 'pitem' points at the entire line + >= 0 for the X coordinate within the pline, where pitem points Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - get_ea_viewer_history_info(nback, nfwd, v) -> bool - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - @retval: false - if the given ea viewer does not exist - @retval: true - otherwise + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) + get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view. - get_hexdump_ea(hexdump_num) -> ea_t - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) - get_highlight(v) -> PyObject * + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error. Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) + get_kernel_version() -> str Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) - Get keyboard key code by its name ( 'ui_get_key_code' ) - get_key_code(keyname) -> ushort - @param keyname (C++: const char *) + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) + get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address. - get_navband_ea(pixel) -> ea_t - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: @@ -57279,150 +56287,170 @@ get_navband_pixel(*args) Help on function get_opnum in module ida_kernwin: get_opnum(*args) - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) - Get current line of output window ( 'ui_get_output_curline' ). - get_output_curline(mouse) -> str - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + get_output_cursor() -> bool + Get coordinates of the output window's cursor (ui_get_output_cursor). + @note: coordinates are 0-based + @note: this function will succeed even if the output window is not visible + + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection Help on function get_place_class in module ida_kernwin: get_place_class(*args) - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - get_place_class(out_flags, out_sdk_version, id) -> place_t - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + Get information about a previously-registered place_t class. See also + register_place_class(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) - Get the place class ID for the place that has been registered as - 'name'. - get_place_class_id(name) -> int - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) - See 'get_place_class()' - get_place_class_template(id) -> place_t - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_synced_group in module ida_kernwin: get_synced_group(*args) + get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with - get_synced_group(w) -> synced_group_t - @param w: the widget (C++: const TWidget *) - @return: the group of widgets/registers, or NULL + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - get_tab_size(path) -> int - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) + get_user_input_event(out) -> bool + Get the current user input event (mouse button press, key press, ...) It is + sometimes desirable to be able to tell when a certain situation happens (e.g., + 'view_curpos' gets triggered); this function exists to provide that context (GUI + version only) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) get_user_strlist_options(out) - @param out (C++: strwinsetup_t *) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - get_view_renderer_type(v) -> tcc_renderer_type_t - @param v (C++: TWidget *) + Get the type of renderer currently in use in the given view + (ui_get_renderer_type) + + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - get_viewer_place_type(viewer) -> tcc_place_type_t - @param viewer (C++: TWidget *) + Get the type of place_t instances a viewer uses & creates + (ui_get_viewer_place_type). + + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - get_viewer_user_data(viewer) -> void * - @param viewer (C++: TWidget *) + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) - Get the TWidget's title ( 'ui_get_widget_title' ). - get_widget_title(widget) -> str - @param widget (C++: TWidget *) + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) - Get the type of the TWidget * ( 'ui_get_widget_type' ). - get_widget_type(widget) -> twidget_type_t - @param widget (C++: TWidget *) + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) + get_window_id(name=None) -> void * Get the system-specific window ID (GUI version only) - get_window_id(name=None) -> void * - @param name (C++: const char *) - @return: the low-level window ID + @param the: name of the window (nullptr means the main IDA window) + @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) + hide_wait_box() Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -57445,7 +56473,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -57460,184 +56488,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -57649,46 +56682,220 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) info(format) - @param format (C++: const char *) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_keyboard_data... + | delete_input_event_keyboard_data_t(self) + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_mouse_data_t> + | delete_input_event_mouse_data_t(self) + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_shortcut_data... + | delete_input_event_shortcut_data_t(self) + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(__builtin__.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | _source_as_size(self, *args) + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_t> + | delete_input_event_t(self) Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) - Install command line interpreter ( 'ui_install_cli' ) - install_command_interpreter(py_obj) -> int - py_obj: PyObject * + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - @param tmplate (C++: const place_t *) - @param flags (C++: int) - @param owner (C++: const plugin_t *) - @param sdk_version (C++: int) + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) + is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*. - is_action_enabled(s) -> bool - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) + is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget? - is_chooser_widget(t) -> bool - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: @@ -57699,32 +56906,33 @@ is_idaq(*args) Help on function is_idaview in module ida_kernwin: is_idaview(*args) - Is the given custom view an idaview? ( 'ui_is_idaview' ) - is_idaview(v) -> bool - @param v (C++: TWidget *) + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) + is_msg_inited() -> bool Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) - See 'get_place_class()' - is_place_class_ea_capable(id) -> bool - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) + is_refresh_requested(mask) -> bool Get a refresh request state - is_refresh_requested(mask) -> bool - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -57738,7 +56946,7 @@ class jobj_wrapper_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57755,29 +56963,28 @@ class jobj_wrapper_t(__builtin__.object) Help on function jumpto in module ida_kernwin: jumpto(*args) - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function l_compare2 in module ida_kernwin: l_compare2(*args) l_compare2(t1, t2, ud) -> int - @param t1 (C++: const place_t *) - @param t2 (C++: const place_t *) - @param ud (C++: void *) + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * Help on class line_rendering_output_entries_refs_t in module ida_kernwin: @@ -57788,15 +56995,19 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> line_rendering_output_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> line_rendering_output_entries_refs_t - | x: qvector< line_rendering_output_entry_t * > const & + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57806,30 +57017,40 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: line_rendering_output_entry_t *const & + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & | | _internal_push_back(self, *args) | _internal_push_back(self, e) - | e: line_rendering_output_entry_t * + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | at(self, *args) | at(self, _idx) -> line_rendering_output_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -57853,40 +57074,45 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator | + | @param it: qvector< line_rendering_output_entry_t * >::iterator | | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator - | first: qvector< line_rendering_output_entry_t * >::iterator - | last: qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator | | extract(self, *args) | extract(self) -> line_rendering_output_entry_t ** | | find(self, *args) | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & | + | @param x: line_rendering_output_entry_t *const & | | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | inject(self, *args) | inject(self, s, len) - | s: line_rendering_output_entry_t ** - | len: size_t + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & | | pop_back(self, *args) | pop_back(self) @@ -57898,23 +57124,26 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: line_rendering_output_entry_t *const & | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< line_rendering_output_entry_t * > & + | + | @param r: qvector< line_rendering_output_entry_t * > & | | truncate(self, *args) | truncate(self) @@ -57946,25 +57175,28 @@ class line_rendering_output_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __init__(self, *args) | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _flags: uint32 - | _bg_color: bgcolor_t | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _cpx: int - | _nchars: int - | _flags: uint32 - | _bg_color: bgcolor_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __repr__ = _swig_repr(self) | @@ -57987,19 +57219,19 @@ class line_rendering_output_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | bg_color - | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | bg_color | | cpx - | line_rendering_output_entry_t_cpx_get(self) -> int + | cpx | | flags - | line_rendering_output_entry_t_flags_get(self) -> uint32 + | flags | | line - | line_rendering_output_entry_t_line_get(self) -> twinline_t + | line | | nchars - | line_rendering_output_entry_t_nchars_get(self) -> int + | nchars | | thisown | The membership flag @@ -58019,63 +57251,75 @@ class linearray_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ud) -> linearray_t - | _ud: void * + | + | @param _ud: void * | | __repr__ = _swig_repr(self) | | beginning(self, *args) + | beginning(self) -> bool | Are we at the beginning? | | down(self, *args) + | down(self) -> qstring const * | Get a line from down direction. place is ok BEFORE | | ending(self, *args) | ending(self) -> bool | | get_bg_color(self, *args) - | Get current background color. (the same behavior as with 'get_place()' - | : good before 'down()' and after 'up()' ) + | get_bg_color(self) -> bgcolor_t + | Get current background color. (the same behavior as with get_place(): good + | before down() and after up()) | | get_dlnnum(self, *args) - | Get default line number. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_dlnnum(self) -> int + | Get default line number. (the same behavior as with get_place(): good before + | down() and after up()) | | get_linecnt(self, *args) + | get_linecnt(self) -> int | Get number of lines for the current place. (the same behavior as with - | 'get_place()' : good before 'down()' and after 'up()' ) + | get_place(): good before down() and after up()) | | get_pfx_color(self, *args) - | Get current prefix color. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_pfx_color(self) -> bgcolor_t + | Get current prefix color. (the same behavior as with get_place(): good before + | down() and after up()) | | get_place(self, *args) - | Get the current place. If called before 'down()' , then returns place - | of line which will be returned by 'down()' . If called after 'up()' , - | then returns place if line returned by 'up()' . + | get_place(self) -> place_t + | Get the current place. If called before down(), then returns place of line which + | will be returned by down(). If called after up(), then returns place if line + | returned by up(). | | set_place(self, *args) - | Position the array. This function must be called before calling any - | other member functions. 'linearray_t' doesn't own 'place_t' - | structures. The caller must take care of 'place_t' objects. - | | set_place(self, new_at) -> int - | @param new_at: new position of the array (C++: const place_t *) - | @return: the delta of lines that the linearray_t had to adjust the - | place by. For example, if the place_t has a lnnum of 5, - | but it turns out, upon generating lines, that the number of - | lines for that particular place is only 2, then 3 will be - | returned. + | Position the array. This function must be called before calling any other member + | functions. + | + | linearray_t doesn't own place_t structures. The caller must take care of place_t + | objects. + | + | @param new_at: (C++: const place_t *) new position of the array + | @return: the delta of lines that the linearray_t had to adjust the place by. + | For example, if the place_t has a lnnum of 5, but it turns out, upon generating + | lines, + | that the number of lines for that particular place is only 2, then 3 will be + | returned. | | set_userdata(self, *args) + | set_userdata(self, userd) | Change the user data. | - | set_userdata(self, userd) - | @param userd (C++: void *) + | @param userd: (C++: void *) | | up(self, *args) + | up(self) -> qstring const * | Get a line from up direction. place is ok AFTER | | userdata(self, *args) + | userdata(self) -> void * | Get pointer to user data. | | ---------------------------------------------------------------------- @@ -58118,13 +57362,13 @@ class lines_rendering_input_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | lines_rendering_input_t_cb_get(self) -> int + | cb | | sections_lines - | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | sections_lines | | sync_group - | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | sync_group | | thisown | The membership flag @@ -58144,14 +57388,16 @@ class lines_rendering_output_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __init__(self, *args) | __init__(self) -> lines_rendering_output_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __repr__ = _swig_repr(self) | @@ -58160,7 +57406,8 @@ class lines_rendering_output_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: lines_rendering_output_t &) + | + | @param r: lines_rendering_output_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58172,10 +57419,10 @@ class lines_rendering_output_t(__builtin__.object) | list of weak references to the object (if defined) | | entries - | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | entries | | flags - | lines_rendering_output_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag @@ -58193,38 +57440,35 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format + Load an icon and return its id (ui_load_custom_icon). - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it + @return: icon id Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file. - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) - Get shortcut code previously created by 'ui_get_key_code' . - lookup_key_code(key, shift, is_qt) -> ushort - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -58237,270 +57481,296 @@ msg(*args) Help on function msg_clear in module ida_kernwin: msg_clear(*args) + msg_clear() Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - msg_get_lines(count=-1) -> PyObject * - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) + msg_save(path) -> bool Save the "Output" window contents into a file - msg_save(path) -> bool - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success + @param path: (C++: qstring &) The path of the file to save the contents into. An empty path means + that the user will be prompted for the destination and, if the file + already exists, the user will be asked to confirm before overriding + its contents. Upon return, 'path' will contain the path that the + user chose. + @return: success Help on function nomem in module ida_kernwin: nomem(*args) nomem(format) - @param format (C++: const char *) + + @param format: char const * Help on function open_bookmarks_window in module ida_kernwin: open_bookmarks_window(*args) - Open the bookmarks window ( 'ui_open_builtin' ). - open_bookmarks_window(w) -> TWidget * - @param w (C++: TWidget *) - @return: pointer to resulting window + Open the bookmarks window (ui_open_builtin). + + @param ea: index of entry to select by default + @return: pointer to resulting window Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) - Open the breakpoints window ( 'ui_open_builtin' ). - open_bpts_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) - Open the function calls window ( 'ui_open_builtin' ). - open_calls_window(ea) -> TWidget * - @param ea (C++: ea_t) - @return: pointer to resulting window + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) - Open a disassembly view ( 'ui_open_builtin' ). - open_disasm_window(window_title, ranges=None) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) - Open the enums window ( 'ui_open_builtin' ). - open_enums_window(const_id=BADADDR) -> TWidget * - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) - Open the exports window ( 'ui_open_builtin' ). - open_exports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_form in module ida_kernwin: open_form(*args) + Display a dockable modeless dialog box and return a handle to it. + + @return: handle to the form or nullptr. the handle can be used with TWidget Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) - Open the frame window for the given function ( 'ui_open_builtin' ). - open_frame_window(pfn, offset) -> TWidget * - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window if 'pfn' is a valid function and the window + was displayed, + nullptr otherwise Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) - Open the 'Functions' window ( 'ui_open_builtin' ). - open_funcs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) - Open a hexdump view ( 'ui_open_builtin' ). - open_hexdump_window(window_title) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) - Open the exports window ( 'ui_open_builtin' ). - open_imports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) - Open the local types window ( 'ui_open_builtin' ). - open_loctypes_window(ordinal) -> TWidget * - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) - Open the modules window ( 'ui_open_builtin' ). + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_names_window in module ida_kernwin: open_names_window(*args) - Open the names window ( 'ui_open_builtin' ). - open_names_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) - Open the navigation band window ( 'ui_open_builtin' ). - open_navband_window(ea, zoom) -> TWidget * - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) - Open the notepad window ( 'ui_open_builtin' ). + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) - Open the problems window ( 'ui_open_builtin' ). - open_problems_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) - Open the segments window ( 'ui_open_builtin' ). - open_segments_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) - Open the segment registers window ( 'ui_open_builtin' ). - open_segregs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) - Open the selectors window ( 'ui_open_builtin' ). + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) - Open the signatures window ( 'ui_open_builtin' ). + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) - Open the call stack window ( 'ui_open_builtin' ). + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) - Open the 'Strings' window ( 'ui_open_builtin' ). - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) - Open the structs window ( 'ui_open_builtin' ). - open_structs_window(id=BADADDR, offset=0) -> TWidget * - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) - Open the threads window ( 'ui_open_builtin' ). + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) - Open the type libraries window ( 'ui_open_builtin' ). + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) - Open the tracing window ( 'ui_open_builtin' ). + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_url in module ida_kernwin: open_url(*args) - Open the given url ( 'ui_open_url' ) - open_url(url) - @param url (C++: const char *) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) - Open the cross references window ( 'ui_open_builtin' ). - open_xrefs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -58514,184 +57784,189 @@ class place_t(__builtin__.object) | __repr__ = _swig_repr(self) | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58703,7 +57978,7 @@ class place_t(__builtin__.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -58718,38 +57993,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) place_t_as_enumplace_t(p) -> enumplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) place_t_as_idaplace_t(p) -> idaplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) place_t_as_simpleline_place_t(p) -> simpleline_place_t - p: place_t * + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) place_t_as_structplace_t(p) -> structplace_t - p: place_t * + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) plgform_close(py_link, options) - py_link: PyObject * - options: int + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) plgform_get_widget(py_link) -> TWidget * - py_link: PyObject * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -58760,10 +58041,11 @@ Help on function plgform_show in module ida_kernwin: plgform_show(*args) plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool - py_link: PyObject * - py_obj: PyObject * - caption: char const * - options: int + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: @@ -58771,15 +58053,17 @@ process_ui_action(*args) process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean Help on function py_chooser_base_t_get_row in module ida_kernwin: py_chooser_base_t_get_row(*args) py_chooser_base_t_get_row(chobj, n) -> PyObject * - chobj: chooser_base_t const * - n: size_t + + @param chobj: chooser_base_t const * + @param n: size_t Help on function py_get_ask_form in module ida_kernwin: @@ -58795,192 +58079,217 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) py_load_custom_icon_data(data, format) -> int - data: PyObject * - format: char const * + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) py_load_custom_icon_fn(filename) -> int - filename: char const * + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) py_register_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) py_ss_restore_callback(err_msg, userdata) - err_msg: char const * - userdata: void * + + @param err_msg: char const * + @param userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) py_unregister_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) pyidag_bind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) pyidag_unbind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) pyscv_add_line(py_this, py_sl) -> bool - py_this: PyObject * - py_sl: PyObject * + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) pyscv_clear_lines(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) pyscv_close(py_this) - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) pyscv_count(py_this) -> size_t - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) pyscv_del_line(py_this, nline) -> bool - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) pyscv_edit_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - py_this: PyObject * - mouse: bool - notags: bool + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) pyscv_get_current_word(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) pyscv_get_line(py_this, nline) -> PyObject * - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) pyscv_get_pos(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) pyscv_get_selection(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) pyscv_get_widget(py_this) -> TWidget * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) pyscv_init(py_link, title) -> PyObject * - py_link: PyObject * - title: char const * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) pyscv_insert_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) pyscv_is_focused(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) pyscv_jumpto(py_this, ln, x, y) -> bool - py_this: PyObject * - ln: size_t - x: int - y: int + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) pyscv_patch_line(py_this, nline, offs, value) -> bool - py_this: PyObject * - nline: size_t - offs: size_t - value: int + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) pyscv_refresh(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) pyscv_show(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str Performs some cleanup operations to a line. - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line + @param cmt_char: (C++: char) character that denotes the start of a comment: + * the entire text is removed if the line begins with this character (ignoring + leading spaces) + * all text after (and including) this character is removed if flag CLNL_FINDCMT + is set + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -59007,14 +58316,13 @@ class quick_widget_commands_t Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - read_range_selection(v) -> bool - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - @retval: 0 - no range is selected - @retval: 1 - ok, start ea and end ea are filled + Get the address range for the selected range boundaries, this is the convenient + function for read_selection() + + @param v: (C++: TWidget *) view, nullptr means the last active window containing addresses + @retval 0: no range is selected + @retval 1: ok, start ea and end ea are filled Help on function read_selection in module ida_kernwin: @@ -59046,19 +58354,18 @@ read_selection(*args) disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - refresh_chooser(title) -> bool - @param title: title of chooser (C++: const char *) - @return: success + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -59068,82 +58375,87 @@ refresh_choosers(*args) Help on function refresh_custom_viewer in module ida_kernwin: refresh_custom_viewer(*args) - Refresh custom ida viewer ( 'ui_refresh_custom_viewer' ) - refresh_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) - Refresh marked windows ( 'ui_refreshmarked' ) + refresh_idaview() + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) - Refresh navigation band if changed ( 'ui_refresh_navband' ). - refresh_navband(force) - @param force: refresh regardless (C++: bool) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) - Create a new action ( 'ui_register_action' ). After an action has been - created, it is possible to attach it to menu items ( - 'attach_action_to_menu()' ), or to popup menus ( - 'attach_action_to_popup()' ).Because the actions will need to call the - handler's activate() and update() methods at any time, you shouldn't - build your action handler on the stack.Please see the SDK's "ht_view" - plugin for an example how to register actions. - register_action(desc) -> bool - @param desc: action to register (C++: const action_desc_t &) - @return: success + Create a new action (ui_register_action). After an action has been created, it + is possible to attach it to menu items (attach_action_to_menu()), or to popup + menus (attach_action_to_popup()). + + Because the actions will need to call the handler's activate() and update() + methods at any time, you shouldn't build your action handler on the stack. + + Please see the SDK's "ht_view" plugin for an example how to register actions. + + @param desc: (C++: const action_desc_t &) action to register + @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) - Register an add-on. Show its info in the About box. For plugins, - should be called from init() function (repeated calls with the same - product code overwrite previous entries) returns: index of the add-on - in the list, or -1 on error - register_addon(info) -> int - @param info (C++: const addon_info_t *) + Register an add-on. Show its info in the About box. For plugins, should be + called from init() function (repeated calls with the same product code overwrite + previous entries) returns: index of the add-on in the list, or -1 on error + + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) - Helper.You are not encouraged to use this, as it mixes flags for both - 'register_action()' , and 'attach_action_to_menu()' .The only reason - for its existence is to make it simpler to port existing plugins to - the new actions API. - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: void *) - @param action_desc_t_flags (C++: int) + Helper. + + You are not encouraged to use this, as it mixes flags for both + register_action(), and attach_action_to_menu(). + + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) - register_timer(interval, py_callback) -> PyObject * + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param py_callback: A Python callable that takes no parameters and returns an integer. The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval @@ -59152,10 +58464,10 @@ register_timer(*args) Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) - Remove command line interpreter ( 'ui_install_cli' ) - remove_command_interpreter(cli_idx) - cli_idx: int + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -59166,14 +58478,16 @@ class renderer_pos_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -59187,16 +58501,16 @@ class renderer_pos_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -59210,42 +58524,42 @@ class renderer_pos_info_t(__builtin__.object) Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - repaint_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) + replace_wait_box(format) Replace the label of "Please wait dialog box". - replace_wait_box(format) - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) + request_refresh(mask, cnd=True) Request a refresh of a builtin window. - request_refresh(mask, cnd=True) - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool + Restore a database snapshot. Note: This call is asynchronous. When it is + completed, the callback will be triggered. - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - pyfunc_or_none: PyObject * - pytuple_or_none: PyObject * - @return: false if restoration could not be started (snapshot file was - not found). If the returned value is True then check if - the operation succeeded from the callback. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was not + found). + If the returned value is True then check if the operation succeeded from the + callback. Help on class section_lines_refs_t in module ida_kernwin: @@ -59256,15 +58570,19 @@ class section_lines_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> section_lines_refs_t - | x: qvector< twinline_t const * > const & + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59274,26 +58592,33 @@ class section_lines_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const *const & + | + | @param i: size_t + | @param v: twinline_t const *const & | | _del(self, *args) | _del(self, x) -> bool - | x: twinline_t const *const & + | + | Parameters + | ---------- + | x: twinline_t const *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | at(self, *args) | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59317,70 +58642,81 @@ class section_lines_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator | + | @param it: qvector< twinline_t const * >::iterator | | erase(self, first, last) -> qvector< twinline_t const * >::iterator - | first: qvector< twinline_t const * >::iterator - | last: qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator | | extract(self, *args) | extract(self) -> twinline_t const ** | | find(self, *args) | find(self, x) -> qvector< twinline_t const * >::iterator - | x: twinline_t const *const & | + | @param x: twinline_t const *const & | | find(self, x) -> qvector< twinline_t const * >::const_iterator - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | inject(self, *args) | inject(self, s, len) - | s: twinline_t const ** - | len: size_t + | + | @param s: twinline_t const ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator - | x: twinline_t const *const & + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const *const & | + | @param _newsize: size_t + | @param x: twinline_t const *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< twinline_t const * > & + | + | @param r: qvector< twinline_t const * > & | | truncate(self, *args) | truncate(self) @@ -59412,15 +58748,19 @@ class sections_lines_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> section_lines_refs_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sections_lines_refs_t - | x: qvector< section_lines_refs_t > const & + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59430,26 +58770,33 @@ class sections_lines_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: section_lines_refs_t const & + | + | @param i: size_t + | @param v: section_lines_refs_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: section_lines_refs_t const & + | + | Parameters + | ---------- + | x: section_lines_refs_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | at(self, *args) | at(self, _idx) -> section_lines_refs_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59473,74 +58820,86 @@ class sections_lines_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator | + | @param it: qvector< section_lines_refs_t >::iterator | | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator - | first: qvector< section_lines_refs_t >::iterator - | last: qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator | | extract(self, *args) | extract(self) -> section_lines_refs_t | | find(self, *args) | find(self, x) -> qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & | + | @param x: section_lines_refs_t const & | | find(self, x) -> qvector< section_lines_refs_t >::const_iterator - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=section_lines_refs_t()) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | has(self, *args) | has(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | inject(self, *args) | inject(self, s, len) - | s: section_lines_refs_t * - | len: size_t + | + | @param s: section_lines_refs_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: section_lines_refs_t const & | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< section_lines_refs_t > & + | + | @param r: qvector< section_lines_refs_t > & | | truncate(self, *args) | truncate(self) @@ -59566,93 +58925,87 @@ class sections_lines_refs_t(__builtin__.object) Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) - Set "Cancelled" flag ( 'ui_set_cancelled' ) + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data + Set a handler for a code viewer event (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param handler_or_data: (C++: void *) can be a handler or data. see examples in Functions: + custom viewer handlers + @return: old value of the handler or data Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_is_source(code_viewer) -> bool - @param code_viewer (C++: TWidget *) + Specify that the given code viewer is used to display source code + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) - Set handlers for code viewer line events. Any of these handlers may be - NULL - set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + Set handlers for code viewer line events. Any of these handlers may be nullptr + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_alignment(code_viewer, align) -> bool - @param code_viewer (C++: TWidget *) - @param align (C++: int) + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + Set space allowed for icons in the margin of a code viewer + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_radix(code_viewer, radix) -> bool - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - set_code_viewer_user_data(code_viewer, ud) -> bool - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - set_custom_viewer_qt_aware(custom_viewer) -> bool - @param custom_viewer (C++: TWidget *) + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: @@ -59660,32 +59013,36 @@ set_dock_pos(*args) set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - set_highlight(viewer, str, flags) -> bool - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) - set_nav_colorizer(new_py_colorizer) -> PyObject * + set_nav_colorizer(new_py_colorizer) -> dict or None Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -59711,37 +59068,41 @@ set_nav_colorizer(*args) return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - set_view_renderer_type(v, rt) - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - show_wait_box(message) - message: char const * + Display a dialog box with "Please wait...". If the text message starts with + "HIDECANCEL\n", the cancel button + won't be added to the dialog box and user_cancelled() will always + return false (but can be caled to refresh UI). + Plugins must call hide_wait_box() to close the dialog box, otherwise + the user interface will remain disabled. + Note that, if the wait dialog is already visible, show_wait_box() will + 1) push the currently-displayed text on a stack + 2) display the new text + Then, when hide_wait_box() is called, if that stack isn't empty its top + label will be popped and restored in the wait dialog. + This implies that a plugin should call hide_wait_box() exactly as many + times as it called show_wait_box(), or the wait dialog might remain + visible and block the UI. + Also, in case the plugin knows the wait dialog is currently displayed, + alternatively it can call replace_wait_box(), to replace the text of the + dialog without pushing the currently-displayed text on the stack. + + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -59795,8 +59156,7 @@ class simplecustviewer_t(__builtin__.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @return: Returns a tuple (colored_line, fgcolor, bgcolor) or None | | GetLineNo(self, mouse=0) | Calls GetPos() and returns the current line number or -1 on failure @@ -59808,8 +59168,7 @@ class simplecustviewer_t(__builtin__.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -59883,7 +59242,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -59898,184 +59257,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60087,7 +59451,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -60098,12 +59462,14 @@ class simpleline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | c: color_t - | str: char const * + | __init__(self, c, str) -> simpleline_t | + | @param c: color_t + | @param str: char const * | | __init__(self, str) -> simpleline_t - | str: char const * + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -60117,13 +59483,13 @@ class simpleline_t(__builtin__.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -60140,28 +59506,30 @@ str2ea(*args) str2ea(str, screenEA=BADADDR) -> ea_t Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) - Find a line with the specified code in the 'strarray_t' array. If the - last element of the array has code==0 then it is considered as the - default entry.If no default entry exists and the code is not found, - 'strarray()' returns "". - strarray(array, array_size, code) -> char const * - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + Find a line with the specified code in the strarray_t array. If the last element + of the array has code==0 then it is considered as the default entry. + If no default entry exists and the code is not found, strarray() returns "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -60185,10 +59553,10 @@ class strarray_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -60219,10 +59587,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -60237,184 +59605,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60426,7 +59799,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -60437,19 +59810,22 @@ class sync_source_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t - | _view: TWidget const * | + | @param _view: TWidget const * | | __init__(self, _regname) -> sync_source_t - | _regname: char const * + | + | @param _regname: char const * | | __ne__(self, *args) | __ne__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -60492,15 +59868,19 @@ class sync_source_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sync_source_vec_t - | x: qvector< sync_source_t > const & + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60510,33 +59890,39 @@ class sync_source_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60549,65 +59935,68 @@ class sync_source_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) | extract(self) -> sync_source_t | | find(self, *args) | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | inject(self, *args) | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) | truncate(self) @@ -60633,13 +60022,13 @@ class sync_source_vec_t(__builtin__.object) Help on function sync_sources in module ida_kernwin: sync_sources(*args) + sync_sources(what, _with, sync) -> bool [Un]synchronize sources - sync_sources(what, _with, sync) -> bool - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success Help on class synced_group_t in module ida_kernwin: @@ -60660,15 +60049,18 @@ class synced_group_t(sync_source_vec_t) | | has(self, *args) | has(self, ss) -> bool - | @param ss (C++: const sync_source_t &) + | + | @param ss: sync_source_t const & | | has_register(self, *args) | has_register(self, r) -> bool - | @param r (C++: const char *) + | + | @param r: char const * | | has_widget(self, *args) | has_widget(self, v) -> bool - | @param v (C++: const TWidget *) + | + | @param v: TWidget const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60687,11 +60079,13 @@ class synced_group_t(sync_source_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60701,31 +60095,37 @@ class synced_group_t(sync_source_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60738,61 +60138,63 @@ class synced_group_t(sync_source_vec_t) | | end(self, *args) | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) | extract(self) -> sync_source_t | | find(self, *args) | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | inject(self, *args) | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) | truncate(self) @@ -60809,12 +60211,13 @@ class synced_group_t(sync_source_vec_t) Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) - Take a database snapshot ( 'ui_take_database_snapshot' ). + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - take_database_snapshot(ss) -> PyObject * - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success Help on class text_t in module ida_kernwin: @@ -60825,11 +60228,14 @@ class text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> text_t - | x: qvector< twinline_t > const & + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60841,19 +60247,20 @@ class text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const & + | + | @param i: size_t + | @param v: twinline_t const & | | at(self, *args) | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> twinline_t - | begin(self) -> twinline_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60866,16 +60273,16 @@ class text_t(__builtin__.object) | | end(self, *args) | end(self) -> twinline_t - | end(self) -> twinline_t | | erase(self, *args) | erase(self, it) -> twinline_t - | it: qvector< twinline_t >::iterator | + | @param it: qvector< twinline_t >::iterator | | erase(self, first, last) -> twinline_t - | first: qvector< twinline_t >::iterator - | last: qvector< twinline_t >::iterator + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator | | extract(self, *args) | extract(self) -> twinline_t @@ -60885,47 +60292,56 @@ class text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=twinline_t()) - | x: twinline_t const & + | + | @param x: twinline_t const & | | inject(self, *args) | inject(self, s, len) - | s: twinline_t * - | len: size_t + | + | @param s: twinline_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> twinline_t - | it: qvector< twinline_t >::iterator - | x: twinline_t const & + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: twinline_t const & + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const & | + | @param _newsize: size_t + | @param x: twinline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< twinline_t > & + | + | @param r: qvector< twinline_t > & | | truncate(self, *args) | truncate(self) @@ -61057,8 +60473,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) textctrl_info_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -61069,58 +60486,67 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) textctrl_info_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) textctrl_info_t_get_clink(_self) -> textctrl_info_t * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) textctrl_info_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) textctrl_info_t_get_flags(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) textctrl_info_t_get_tabsize(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) textctrl_info_t_get_text(_self) -> char const * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) textctrl_info_t_set_flags(_self, flags) -> bool - self: PyObject * - flags: unsigned int + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) textctrl_info_t_set_tabsize(_self, tabsize) -> bool - self: PyObject * - tabsize: unsigned int + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) textctrl_info_t_set_text(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on class twinline_t in module ida_kernwin: @@ -61131,9 +60557,11 @@ class twinline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> twinline_t - | t: place_t * - | pc: color_t - | bc: bgcolor_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t | | __repr__ = _swig_repr(self) | @@ -61147,19 +60575,19 @@ class twinline_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | twinline_t_at_get(self) -> place_t + | at | | bg_color - | twinline_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | twinline_t_is_default_get(self) -> bool + | is_default | | line - | twinline_t_line_get(self) -> qstring * + | line | | prefix_color - | twinline_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -61179,12 +60607,14 @@ class twinpos_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> twinpos_t - | t: place_t * + | __init__(self, t) -> twinpos_t | + | @param t: place_t * | | __init__(self, t, x0) -> twinpos_t - | t: place_t * - | x0: int + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -61208,13 +60638,13 @@ class twinpos_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -61225,21 +60655,17 @@ class twinpos_t(__builtin__.object) Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) - Display a load file dialog and load file ( 'ui_load_file' ). - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - @retval: true - file was successfully loaded - @retval: false - otherwise + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param ploaders: (C++: load_info_t **) list of loaders which accept file, may be changed for loaders + of temp_file + @retval true: file was successfully loaded + @retval false: otherwise Help on class ui_requests_t in module ida_kernwin: @@ -61274,29 +60700,29 @@ class ui_requests_t(__builtin__.object) Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) - Unmark selection ( 'ui_unmarksel' ) + unmark_selection() + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) - Delete a previously-registered action ( 'ui_unregister_action' ). - unregister_action(name) -> bool - @param name: name of action (C++: const char *) - @return: success + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success Help on function unregister_timer in module ida_kernwin: @@ -61311,87 +60737,91 @@ unregister_timer(*args) Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) - Update an action's checkability ( 'ui_update_action_attr' ). - update_action_checkable(name, checkable) -> bool - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) - Update an action's checked state ( 'ui_update_action_attr' ). - update_action_checked(name, checked) -> bool - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) - Update an action's icon ( 'ui_update_action_attr' ). - update_action_icon(name, icon) -> bool - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) - Update an action's label ( 'ui_update_action_attr' ). - update_action_label(name, label) -> bool - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) - Update an action's shortcut ( 'ui_update_action_attr' ). - update_action_shortcut(name, shortcut) -> bool - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) - Update an action's state ( 'ui_update_action_attr' ). - update_action_state(name, state) -> bool - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) - Update an action's tooltip ( 'ui_update_action_attr' ). - update_action_tooltip(name, tooltip) -> bool - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) - Update an action's visibility ( 'ui_update_action_attr' ). - update_action_visibility(name, visible) -> bool - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) - Test the ctrl-break flag ( 'ui_test_cancelled' ). + user_cancelled() -> bool + Test the ctrl-break flag (ui_test_cancelled). + @retval 1: Ctrl-Break is detected, a message is displayed + @retval 2: Ctrl-Break is detected again, a message is not displayed + @retval 0: Ctrl-Break is not detected Help on class view_mouse_event_location_t in module ida_kernwin: @@ -61415,10 +60845,10 @@ class view_mouse_event_location_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -61451,28 +60881,28 @@ class view_mouse_event_t(__builtin__.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -61492,1433 +60922,16 @@ warning(*args) The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION -""" -'cur_enum_member' and 'dirtree_selection' fields are present -""" - -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_HAS_SOURCE -""" -'source' field is present -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_GLOBAL -""" -available even if no IDB is present - -Register the action globally, so that it's -""" - -ida_kernwin.ADF_NO_HIGHLIGHT -""" -according to what's under the cursor (listings only.) - -After activating, do not update the highlight -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OT_MASK -""" -Owner type mask. -""" - -ida_kernwin.ADF_OT_PLUGIN -""" -Owner is a 'plugin_t' . -""" - -ida_kernwin.ADF_OT_PLUGMOD -""" -Owner is a 'plugmod_t' . -""" - -ida_kernwin.ADF_OT_PROCMOD -""" -Owner is a 'procmod_t' . -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BOOKMARKS -""" -a persistent 'Bookmarks' widget -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -tracing view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CDVF_LINEICONS -""" -icons can be drawn over the line control -""" - -ida_kernwin.CDVF_NOLINES -""" -don't show line numbers -""" - -ida_kernwin.CDVF_STATUSBAR -""" -keep the status bar in the custom viewer -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_DRAGHINT -""" -the column number that will be used to build hints for the dragging -undo label. This should be provided for at most one column for any -given chooser. -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_INODENAME -""" -if CH_HAS_DIRTREE has been specified, this instructs the chooser that -this column shows the inode name. This should be provided for at most -one column for any given chooser. -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_HAS_DIFF -""" -The chooser can be used in a diffing/merging workflow. -""" - -ida_kernwin.CH_HAS_DIRTREE -""" -The chooser can provide a 'dirtree_t' , meaning a tree-like structure -can be provided to the user (instead of a flat table) -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_FILTER -""" -The chooser will not have filtering abilities. -""" - -ida_kernwin.CH_NO_SORT -""" -The chooser will not have sorting abilities. -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RENAME_IS_EDIT -""" -triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call -the edit() callback for the corresponding row. -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CH_TM_FOLDERS_ONLY -""" -chooser will show in folders-only mode -""" - -ida_kernwin.CH_TM_FULL_TREE -""" -chooser will show in no-tree mode -""" - -ida_kernwin.CH_TM_NO_TREE -""" -chooser will show up in no-tree mode -""" - -ida_kernwin.CK_EXTRA1 -""" -extra background overlay #1 -""" - -ida_kernwin.CK_EXTRA10 -""" -extra background overlay #10 -""" - -ida_kernwin.CK_EXTRA11 -""" -extra background overlay #11 -""" - -ida_kernwin.CK_EXTRA12 -""" -extra background overlay #12 -""" - -ida_kernwin.CK_EXTRA13 -""" -extra background overlay #13 -""" - -ida_kernwin.CK_EXTRA14 -""" -extra background overlay #14 -""" - -ida_kernwin.CK_EXTRA15 -""" -extra background overlay #15 -""" - -ida_kernwin.CK_EXTRA16 -""" -extra background overlay #16 -""" - -ida_kernwin.CK_EXTRA2 -""" -extra background overlay #2 -""" - -ida_kernwin.CK_EXTRA3 -""" -extra background overlay #3 -""" - -ida_kernwin.CK_EXTRA4 -""" -extra background overlay #4 -""" - -ida_kernwin.CK_EXTRA5 -""" -extra background overlay #5 -""" - -ida_kernwin.CK_EXTRA6 -""" -extra background overlay #6 -""" - -ida_kernwin.CK_EXTRA7 -""" -extra background overlay #7 -""" - -ida_kernwin.CK_EXTRA8 -""" -extra background overlay #8 -""" - -ida_kernwin.CK_EXTRA9 -""" -extra background overlay #9 -""" - -ida_kernwin.CK_TRACE -""" -traced address -""" - -ida_kernwin.CK_TRACE_OVL -""" -overlay trace address -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.CVNF_ACT -""" -activate (i.e., switch to) the viewer. Activation is performed before -the new 'lochist_entry_t' instance is actually copied to the viewer's -'lochist_t' (otherwise, if the viewer was invisible its -on_location_changed() handler wouldn't be called.) -""" - -ida_kernwin.CVNF_JUMP -""" -'lochist_t' before going to the new location - -push the current position in this viewer's -""" - -ida_kernwin.CVNF_LAZY -""" -try and move the cursor to a line displaying the 'place_t' if -possible. This might disregard the Y position in case of success -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_SZHINT -""" -When floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IDCHK_ARG -""" -bad argument(s) -""" - -ida_kernwin.IDCHK_KEY -""" -bad hotkey name -""" - -ida_kernwin.IDCHK_MAX -""" -too many IDC hotkeys -""" - -ida_kernwin.IDCHK_OK -""" -ok -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BOOKMARKS -""" -bookmarks list (59) -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -tracing view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.LROEF_CPS_RANGE -""" -background for range of chars -""" - -ida_kernwin.LROEF_FULL_LINE -""" -full line background -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. the request must be created using -the 'new' operator to use it with this flag. it can be used in -'cancel_exec_request()' . This flag can be used to delay the code -execution until the next UI loop run even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.PCF_EA_CAPABLE -""" -toea() implementation returns meaningful data -""" - -ida_kernwin.PCF_MAKEPLACE_ALLOCATES -""" -makeplace() returns a freshly allocated (i.e., non-static) instance. -All new code should pass that flag to 'register_place_class()' , and -the corresponding makeplace() class implementation should return new -instances. -""" - -ida_kernwin.RENADDR_HR -""" -dialog for "Pseudocode" additional flags: 0x01 Library function 0x02 -Mark as decompiled -""" - -ida_kernwin.RENADDR_IDA -""" -dialog for "IDA View" -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.SVF_COPY_LINES -""" -keep a local copy of '*lines' -""" - -ida_kernwin.SVF_LINES_BYPTR -""" -remember the 'lines' ptr. do not make a copy of '*lines' -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" - -ida_kernwin.WCLS_DELETE_LATER -""" -assign the deletion of the widget to the UI loop ///< -""" - -ida_kernwin.WCLS_DONT_SAVE_SIZE -""" -don't save size of the window -""" - -ida_kernwin.WCLS_NO_CONTEXT -""" -don't change the current context (useful for toolbars) -""" - -ida_kernwin.WCLS_SAVE -""" -save state in desktop config -""" - -ida_kernwin.WOPN_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will close -""" - -ida_kernwin.WOPN_DP_BEFORE -""" -place widget before dst_form in the tab bar instead of after used with -'WOPN_DP_INSIDE' and 'WOPN_DP_TAB' -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.WOPN_DP_BOTTOM -""" -Dock widget below dest_ctrl. -""" - -ida_kernwin.WOPN_DP_FLOATING -""" -Make widget floating. -""" - -ida_kernwin.WOPN_DP_INSIDE -""" -Create a new tab bar with both widget and dest_ctrl. -""" - -ida_kernwin.WOPN_DP_LEFT -""" -Dock widget to the left of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_RIGHT -""" -Dock widget to the right of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_SZHINT -""" -when floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.WOPN_DP_TAB -""" -Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab -bar (otherwise the same as 'WOPN_DP_INSIDE' ) -""" - -ida_kernwin.WOPN_DP_TOP -""" -Dock widget above dest_ctrl. -""" - -ida_kernwin.WOPN_NOT_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will not close -""" - -ida_kernwin.WOPN_PERSIST -""" -widget will remain available when starting or stopping debugger -sessions -""" - -ida_kernwin.WOPN_RESTORE -""" -if the widget was the only widget in a floating area the last time it -was closed, it will be restored as floating, with the same -position+size as before -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -62929,246 +60942,247 @@ COLSTR(str, tag) Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) + add_extra_cmt(ea, isprev, format) -> bool Add anterior/posterior comment line(s). - add_extra_cmt(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) + add_extra_line(ea, isprev, format) -> bool Add anterior/posterior non-comment line(s). - add_extra_line(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) + add_pgm_cmt(format) -> bool Add anterior comment line(s) at the start of program. - add_pgm_cmt(format) -> bool - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function calc_bg_color in module ida_lines: calc_bg_color(*args) + calc_bg_color(ea) -> bgcolor_t Get background color for line at 'ea' - calc_bg_color(ea) -> bgcolor_t - @param ea (C++: ea_t) - @return: RGB color + @param ea: (C++: ea_t) + @return: RGB color Help on function calc_prefix_color in module ida_lines: calc_prefix_color(*args) + calc_prefix_color(ea) -> color_t Get prefix color for line at 'ea' - calc_prefix_color(ea) -> color_t - @param ea (C++: ea_t) - @return: Line prefix colors + @param ea: (C++: ea_t) + @return: Line prefix colors Help on function create_encoding_helper in module ida_lines: create_encoding_helper(*args) create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - encidx: int - nr: enum encoder_t::notify_recerr_t + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_extra_cmts in module ida_lines: delete_extra_cmts(*args) delete_extra_cmts(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) generate_disasm_line(ea, flags=0) -> str - ea: ea_t - flags: int + + @param ea: ea_t + @param flags: int Help on function generate_disassembly in module ida_lines: generate_disassembly(*args) - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) Generate disassembly lines (many lines) and put them into a buffer @param ea: address to generate disassembly for @param max_lines: how many lines max to generate @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_first_free_extra_cmtidx in module ida_lines: get_first_free_extra_cmtidx(*args) get_first_free_extra_cmtidx(ea, start) -> int - ea: ea_t - start: int + + @param ea: ea_t + @param start: int Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function install_user_defined_prefix in module ida_lines: install_user_defined_prefix(*args) - User-defined line-prefixes are displayed just after the autogenerated - line prefixes in the disassembly listing. There is no need to call - this function explicitly. Use the 'user_defined_prefix_t' class. - install_user_defined_prefix(prefix_len, udp, owner) -> bool - @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: - size_t) - @param udp: object to generate user-defined prefix (C++: struct - user_defined_prefix_t *) - @param owner: pointer to the plugin_t that owns UDP if non-NULL, - then the object will be uninstalled and destroyed when - the plugin gets unloaded (C++: const void *) + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded Help on function requires_color_esc in module ida_lines: requires_color_esc(c) Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean + Is the given char a color escape character? Help on function set_user_defined_prefix in module ida_lines: set_user_defined_prefix(*args) - set_user_defined_prefix(width, pycb) -> PyObject * + set_user_defined_prefix(width, pycb) -> bool Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * Help on function tag_addr in module ida_lines: tag_addr(*args) + tag_addr(ea) -> PyObject * Insert an address mark into a string. - tag_addr(ea) -> PyObject * - @param ea: address to include (C++: ea_t) + @param ea: (C++: ea_t) address to include Help on function tag_advance in module ida_lines: tag_advance(*args) - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - tag_advance(line, cnt) -> int - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer Help on function tag_remove in module ida_lines: tag_remove(*args) - Remove color escape sequences from a string. + tag_remove(nonnul_instr) -> str - tag_remove(nonnul_instr) -> PyObject * - nonnul_instr: char const * - @return: length of resulting string, -1 if error + @param nonnul_instr: char const * Help on function tag_skipcode in module ida_lines: tag_skipcode(*args) - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - tag_skipcode(line) -> int - @param line (C++: const char *) - @return: moved pointer + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer Help on function tag_skipcodes in module ida_lines: tag_skipcodes(*args) + tag_skipcodes(line) -> int Move the pointer past all color codes. - tag_skipcodes(line) -> int - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr Help on function tag_strlen in module ida_lines: tag_strlen(*args) - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - tag_strlen(line) -> ssize_t - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on class user_defined_prefix_t in module ida_lines: @@ -63181,24 +61195,25 @@ class user_defined_prefix_t(__builtin__.object) | | __init__(self, *args) | __init__(self, prefix_len, owner) -> user_defined_prefix_t - | prefix_len: size_t - | owner: void const * + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | | get_user_defined_prefix(self, *args) + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) | This callback must be overridden by the derived class. | - | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) - | @param ea: the current address (C++: ea_t) - | @param insn: the current instruction. if the current item is not an - | instruction, then insn.itype is zero. - an - | ida_ua.insn_t, or an address (C++: const insn_t &) - | @param lnnum (C++: int) - | @param indent: see explanations for gen_printf() (C++: int) - | @param line: the line to be generated. the line usually contains color - | tags. this argument can be examined to decide whether to - | generate the prefix. (C++: const char *) + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63218,492 +61233,201 @@ class user_defined_prefix_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_user_defined_prefix_t> | delete_user_defined_prefix_t(self) -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.COLOR_CODE -""" -Single instruction. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.COLOR_CURITEM -""" -Current item. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.COLOR_CURLINE -""" -Current line. -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.COLOR_DATA -""" -Data bytes. -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) - Unload database to a binary file. This function works for wide byte - processors too. - base2file(fp, pos, ea1, ea2) -> int - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) + build_snapshot_tree(root) -> bool Build the snapshot tree. - build_snapshot_tree(root) -> bool - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) clr_database_flag(dbfl) - @param dbfl (C++: uint32) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - extract_module_from_archive(fname, is_remote=False) -> PyObject * - fname: char const * - @param is_remote: is the input file remote? (C++: bool) - @retval: true - ok - @retval: false - something bad happened (error message has been - displayed to the user) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it - enabled).The storage type of the specified range will be changed to - STT_VA. - file2base(li, pos, ea1, ea2, patchable) -> int - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - @retval: 1 - ok - @retval: 0 - read error, a warning is displayed + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) + find_plugin(name, load_if_needed=False) -> plugin_t * Find a user-defined plugin and optionally load it. - find_plugin(name, load_if_needed=False) -> plugin_t * - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) + flush_buffers() -> int Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) + gen_exe_file(fp) -> int Generate an exe file (unload the database in binary form). - gen_exe_file(fp) -> int - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - @retval: 1 - ok - @retval: 0 - failed + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) - Generate an output file. 'OFILE_EXE' : - gen_file(otype, fp, ea1, ea2, flags) -> int - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - @retval: 0 - can't generate exe file - @retval: 1 - ok + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) - Get the input file type. This function can recognize libraries and zip - files. - get_basic_file_type(li) -> filetype_t - @param li (C++: linput_t *) + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) + get_elf_debug_file_directory() -> char const * Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) + get_file_type_name() -> str Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. + + @return: size of answer, this function always succeeds Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - get_fileregion_ea(offset) -> ea_t - @param offset (C++: qoff64_t) + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - get_fileregion_offset(ea) -> qoff64_t - @param ea (C++: ea_t) + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) + get_path(pt) -> char const * Get the file path - get_path(pt) -> char const * - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - get_plugin_options(plugin) -> char const * - @param plugin (C++: const char *) + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -63727,22 +61451,22 @@ class idp_desc_t(__builtin__.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -63775,13 +61499,13 @@ class idp_name_t(__builtin__.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -63795,71 +61519,69 @@ class idp_name_t(__builtin__.object) Help on function is_database_flag in module ida_loader: is_database_flag(*args) + is_database_flag(dbfl) -> bool Get the current database flag - is_database_flag(dbfl) -> bool - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) + is_trusted_idb() -> bool Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) - Load a binary file into the database. This function usually is called - from ui. - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - @retval: true - ok - @retval: false - failed (couldn't open the file) + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - load_ids_module(fname) -> int - @param fname: name of file to apply (C++: char *) - @retval: 1 - ok - @retval: 0 - some error (a message is displayed). if the ids file does - not exist, no message is displayed + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) - load_plugin(name) -> PyObject * + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -63884,13 +61606,13 @@ class loader_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -63903,12 +61625,12 @@ Help on function mem2base in module ida_loader: mem2base(*args) mem2base(py_mem, ea, fpos=-1) -> int Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -63933,37 +61655,37 @@ class plugin_info_t(__builtin__.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -63977,18 +61699,16 @@ class plugin_info_t(__builtin__.object) Help on function process_archive in module ida_loader: process_archive(*args) - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter: + + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. Help on class qvector_snapshotvec_t in module ida_loader: @@ -63999,15 +61719,19 @@ class qvector_snapshotvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> snapshot_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | x: qvector< snapshot_t * > const & + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64017,26 +61741,33 @@ class qvector_snapshotvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: snapshot_t *const & + | + | @param i: size_t + | @param v: snapshot_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: snapshot_t *const & + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | at(self, *args) | at(self, _idx) -> snapshot_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64060,70 +61791,81 @@ class qvector_snapshotvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator | + | @param it: qvector< snapshot_t * >::iterator | | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | first: qvector< snapshot_t * >::iterator - | last: qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) | extract(self) -> snapshot_t ** | | find(self, *args) | find(self, x) -> qvector< snapshot_t * >::iterator - | x: snapshot_t *const & | + | @param x: snapshot_t *const & | | find(self, x) -> qvector< snapshot_t * >::const_iterator - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | inject(self, *args) | inject(self, s, len) - | s: snapshot_t ** - | len: size_t + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator - | x: snapshot_t *const & + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: snapshot_t *const & | + | @param _newsize: size_t + | @param x: snapshot_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< snapshot_t * > & + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) | truncate(self) @@ -64149,57 +61891,81 @@ class qvector_snapshotvec_t(__builtin__.object) Help on function reload_file in module ida_loader: reload_file(*args) - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - reload_file(file, is_remote) -> bool - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) run_plugin(plg, arg) -> bool Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - save_database(outfile, flags, root=None, attr=None) -> bool - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) + set_database_flag(dbfl, cnd=True) Set or clear database flag - set_database_flag(dbfl, cnd=True) - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) + set_path(pt, path) Set the file path - set_path(pt, path) - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -64210,30 +61976,36 @@ class snapshot_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -64250,19 +62022,19 @@ class snapshot_t(__builtin__.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -64273,233 +62045,34 @@ class snapshot_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_snapshot_t> | delete_snapshot_t(self) -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_lumina"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" -'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" -'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" -'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" -'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" -'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" -'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" -'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" -'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on function apply_metadata in module ida_lumina: apply_metadata(*args) apply_metadata(ea, fi, flags=0) - @param ea (C++: ea_t) - @param fi (C++: const func_info_t &) - @param flags (C++: uint32) + + @param ea: ea_t + @param fi: func_info_t const & + @param flags: uint32 Help on function backup_metadata in module ida_lumina: backup_metadata(*args) backup_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function calc_func_metadata in module ida_lumina: calc_func_metadata(*args) calc_func_metadata(out_fi, pfn, append_metadata=None) -> asize_t - @param out_fi (C++: func_info_t *) - @param pfn (C++: const func_t *) - @param append_metadata (C++: metadata_appender_t *) + + @param out_fi: func_info_t * + @param pfn: func_t const * + @param append_metadata: metadata_appender_t * Help on function create_simple_diff_handler in module ida_lumina: @@ -64510,22 +62083,25 @@ Help on function create_simple_idb_diff_handler in module ida_lumina: create_simple_idb_diff_handler(*args) create_simple_idb_diff_handler(pfn) -> simple_idb_diff_handler_t - @param pfn (C++: const func_t *) + + @param pfn: func_t const * Help on function diff_metadata in module ida_lumina: diff_metadata(*args) diff_metadata(handler, left, right, flags=0) -> bool - @param handler (C++: func_md_diff_handler_t &) - @param left (C++: const func_info_t &) - @param right (C++: const func_info_t &) - @param flags (C++: uint32) + + @param handler: func_md_diff_handler_t & + @param left: func_info_t const & + @param right: func_info_t const & + @param flags: uint32 Help on function ea_to_ea64 in module ida_lumina: ea_to_ea64(*args) ea_to_ea64(ea) -> ea64_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on class extra_cmt_t in module ida_lumina: @@ -64548,10 +62124,10 @@ class extra_cmt_t(insn_site_t) | Data descriptors defined here: | | next - | extra_cmt_t_next_get(self) -> qstring * + | next | | prev - | extra_cmt_t_prev_get(self) -> qstring * + | prev | | thisown | The membership flag @@ -64567,7 +62143,8 @@ class extra_cmt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -64579,10 +62156,10 @@ class extra_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class extra_cmts_t in module ida_lumina: @@ -64593,11 +62170,14 @@ class extra_cmts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> extra_cmt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> extra_cmts_t - | x: qvector< extra_cmt_t > const & + | __init__(self, x) -> extra_cmts_t + | + | @param x: qvector< extra_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64609,19 +62189,20 @@ class extra_cmts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: extra_cmt_t const & + | + | @param i: size_t + | @param v: extra_cmt_t const & | | at(self, *args) | at(self, _idx) -> extra_cmt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> extra_cmt_t - | begin(self) -> extra_cmt_t | | capacity(self, *args) | capacity(self) -> size_t @@ -64634,16 +62215,16 @@ class extra_cmts_t(__builtin__.object) | | end(self, *args) | end(self) -> extra_cmt_t - | end(self) -> extra_cmt_t | | erase(self, *args) | erase(self, it) -> extra_cmt_t - | it: qvector< extra_cmt_t >::iterator | + | @param it: qvector< extra_cmt_t >::iterator | | erase(self, first, last) -> extra_cmt_t - | first: qvector< extra_cmt_t >::iterator - | last: qvector< extra_cmt_t >::iterator + | + | @param first: qvector< extra_cmt_t >::iterator + | @param last: qvector< extra_cmt_t >::iterator | | extract(self, *args) | extract(self) -> extra_cmt_t @@ -64653,47 +62234,56 @@ class extra_cmts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=extra_cmt_t()) - | x: extra_cmt_t const & + | + | @param x: extra_cmt_t const & | | inject(self, *args) | inject(self, s, len) - | s: extra_cmt_t * - | len: size_t + | + | @param s: extra_cmt_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> extra_cmt_t - | it: qvector< extra_cmt_t >::iterator - | x: extra_cmt_t const & + | + | @param it: qvector< extra_cmt_t >::iterator + | @param x: extra_cmt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: extra_cmt_t const & + | + | @param x: extra_cmt_t const & + | + | push_back(self) -> extra_cmt_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: extra_cmt_t const & | + | @param _newsize: size_t + | @param x: extra_cmt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< extra_cmt_t > & + | + | @param r: qvector< extra_cmt_t > & | | truncate(self, *args) | truncate(self) @@ -64720,43 +62310,49 @@ Help on function extract_extra_cmts_from_metadata in module ida_lumina: extract_extra_cmts_from_metadata(*args) extract_extra_cmts_from_metadata(out, ptr) - @param out (C++: extra_cmts_t *) - @param ptr (C++: const uchar *) + + @param out: extra_cmts_t * + @param ptr: uchar const * Help on function extract_frame_desc_from_metadata in module ida_lumina: extract_frame_desc_from_metadata(*args) extract_frame_desc_from_metadata(out, ptr) - @param out (C++: frame_desc_t *) - @param ptr (C++: const uchar *) + + @param out: frame_desc_t * + @param ptr: uchar const * Help on function extract_insn_cmts_from_metadata in module ida_lumina: extract_insn_cmts_from_metadata(*args) extract_insn_cmts_from_metadata(out, ptr) - @param out (C++: insn_cmts_t *) - @param ptr (C++: const uchar *) + + @param out: insn_cmts_t * + @param ptr: uchar const * Help on function extract_insn_opreprs_from_metadata in module ida_lumina: extract_insn_opreprs_from_metadata(*args) extract_insn_opreprs_from_metadata(out, ptr) - @param out (C++: insn_ops_reprs_t *) - @param ptr (C++: const uchar *) + + @param out: insn_ops_reprs_t * + @param ptr: uchar const * Help on function extract_type_from_metadata in module ida_lumina: extract_type_from_metadata(*args) extract_type_from_metadata(out, _in) -> bool - @param out (C++: md_type_parts_t *) - in: bytevec_t const & + + @param out: tinfo_t * + @param in: bytevec_t const & Help on function extract_user_stkpnts_from_metadata in module ida_lumina: extract_user_stkpnts_from_metadata(*args) extract_user_stkpnts_from_metadata(out, ptr) - @param out (C++: user_stkpnts_t *) - @param ptr (C++: const uchar *) + + @param out: user_stkpnts_t * + @param ptr: uchar const * Help on class frame_desc_t in module ida_lumina: @@ -64766,7 +62362,12 @@ class frame_desc_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_desc_t + | __init__(self, __frsize=0, __argsize=asize_t(-1), __frregs=0, __members=frame_mems_t()) -> frame_desc_t + | + | @param __frsize: sval_t + | @param __argsize: asize_t + | @param __frregs: ushort + | @param __members: frame_mems_t | | __repr__ = _swig_repr(self) | @@ -64780,16 +62381,16 @@ class frame_desc_t(__builtin__.object) | list of weak references to the object (if defined) | | argsize - | frame_desc_t_argsize_get(self) -> asize_t + | argsize | | frregs - | frame_desc_t_frregs_get(self) -> ushort + | frregs | | frsize - | frame_desc_t_frsize_get(self) -> sval_t + | frsize | | members - | frame_desc_t_members_get(self) -> frame_mems_t + | members | | thisown | The membership flag @@ -64808,7 +62409,15 @@ class frame_mem_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_mem_t + | __init__(self, __name=None, __type=serialized_tinfo(), __cmt=None, __rptcmt=None, __offset=ea64_t(-1), __info=oprepr_t(), __nbytes=asize_t(-1)) -> frame_mem_t + | + | @param __name: char const * + | @param __type: serialized_tinfo + | @param __cmt: char const * + | @param __rptcmt: char const * + | @param __offset: ea64_t + | @param __info: oprepr_t + | @param __nbytes: asize_t | | __repr__ = _swig_repr(self) | @@ -64822,28 +62431,28 @@ class frame_mem_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | frame_mem_t_cmt_get(self) -> qstring * + | cmt | | info - | frame_mem_t_info_get(self) -> oprepr_t + | info | | name - | frame_mem_t_name_get(self) -> qstring * + | name | | nbytes - | frame_mem_t_nbytes_get(self) -> asize_t + | nbytes | | offset - | frame_mem_t_offset_get(self) -> ea64_t + | offset | | rptcmt - | frame_mem_t_rptcmt_get(self) -> qstring * + | rptcmt | | thisown | The membership flag | | type - | frame_mem_t_type_get(self) -> serialized_tinfo + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -64860,11 +62469,14 @@ class frame_mems_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> frame_mem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> frame_mems_t - | x: qvector< frame_mem_t > const & + | __init__(self, x) -> frame_mems_t + | + | @param x: qvector< frame_mem_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64876,19 +62488,20 @@ class frame_mems_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: frame_mem_t const & + | + | @param i: size_t + | @param v: frame_mem_t const & | | at(self, *args) | at(self, _idx) -> frame_mem_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> frame_mem_t - | begin(self) -> frame_mem_t | | capacity(self, *args) | capacity(self) -> size_t @@ -64901,16 +62514,16 @@ class frame_mems_t(__builtin__.object) | | end(self, *args) | end(self) -> frame_mem_t - | end(self) -> frame_mem_t | | erase(self, *args) | erase(self, it) -> frame_mem_t - | it: qvector< frame_mem_t >::iterator | + | @param it: qvector< frame_mem_t >::iterator | | erase(self, first, last) -> frame_mem_t - | first: qvector< frame_mem_t >::iterator - | last: qvector< frame_mem_t >::iterator + | + | @param first: qvector< frame_mem_t >::iterator + | @param last: qvector< frame_mem_t >::iterator | | extract(self, *args) | extract(self) -> frame_mem_t @@ -64920,47 +62533,56 @@ class frame_mems_t(__builtin__.object) | | grow(self, *args) | grow(self, x=frame_mem_t()) - | x: frame_mem_t const & + | + | @param x: frame_mem_t const & | | inject(self, *args) | inject(self, s, len) - | s: frame_mem_t * - | len: size_t + | + | @param s: frame_mem_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> frame_mem_t - | it: qvector< frame_mem_t >::iterator - | x: frame_mem_t const & + | + | @param it: qvector< frame_mem_t >::iterator + | @param x: frame_mem_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: frame_mem_t const & + | + | @param x: frame_mem_t const & + | + | push_back(self) -> frame_mem_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: frame_mem_t const & | + | @param _newsize: size_t + | @param x: frame_mem_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< frame_mem_t > & + | + | @param r: qvector< frame_mem_t > & | | truncate(self, *args) | truncate(self) @@ -64996,7 +62618,9 @@ class func_info_and_frequency_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_frequency_t + | __init__(self, __frequency=0) -> func_info_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -65004,7 +62628,7 @@ class func_info_and_frequency_t(func_info_t) | Data descriptors defined here: | | frequency - | func_info_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -65025,13 +62649,13 @@ class func_info_and_frequency_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_frequency_vec_t in module ida_lumina: @@ -65042,11 +62666,14 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_and_frequency_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_frequency_vec_t - | x: qvector< func_info_and_frequency_t > const & + | __init__(self, x) -> func_info_and_frequency_vec_t + | + | @param x: qvector< func_info_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65058,19 +62685,20 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: func_info_and_frequency_t const & + | + | @param i: size_t + | @param v: func_info_and_frequency_t const & | | at(self, *args) | at(self, _idx) -> func_info_and_frequency_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> func_info_and_frequency_t - | begin(self) -> func_info_and_frequency_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65083,16 +62711,16 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> func_info_and_frequency_t - | end(self) -> func_info_and_frequency_t | | erase(self, *args) | erase(self, it) -> func_info_and_frequency_t - | it: qvector< func_info_and_frequency_t >::iterator | + | @param it: qvector< func_info_and_frequency_t >::iterator | | erase(self, first, last) -> func_info_and_frequency_t - | first: qvector< func_info_and_frequency_t >::iterator - | last: qvector< func_info_and_frequency_t >::iterator + | + | @param first: qvector< func_info_and_frequency_t >::iterator + | @param last: qvector< func_info_and_frequency_t >::iterator | | extract(self, *args) | extract(self) -> func_info_and_frequency_t @@ -65102,47 +62730,56 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_and_frequency_t()) - | x: func_info_and_frequency_t const & + | + | @param x: func_info_and_frequency_t const & | | inject(self, *args) | inject(self, s, len) - | s: func_info_and_frequency_t * - | len: size_t + | + | @param s: func_info_and_frequency_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_and_frequency_t - | it: qvector< func_info_and_frequency_t >::iterator - | x: func_info_and_frequency_t const & + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | @param x: func_info_and_frequency_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: func_info_and_frequency_t const & + | + | @param x: func_info_and_frequency_t const & + | + | push_back(self) -> func_info_and_frequency_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_and_frequency_t const & | + | @param _newsize: size_t + | @param x: func_info_and_frequency_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< func_info_and_frequency_t > & + | + | @param r: qvector< func_info_and_frequency_t > & | | truncate(self, *args) | truncate(self) @@ -65178,7 +62815,9 @@ class func_info_and_pattern_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_pattern_t + | __init__(self, __pattern_id=pattern_id_t()) -> func_info_and_pattern_t + | + | @param __pattern_id: pattern_id_t | | __repr__ = _swig_repr(self) | @@ -65186,7 +62825,7 @@ class func_info_and_pattern_t(func_info_t) | Data descriptors defined here: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -65207,13 +62846,13 @@ class func_info_and_pattern_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_pattern_vec_t in module ida_lumina: @@ -65224,11 +62863,14 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_and_pattern_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_pattern_vec_t - | x: qvector< func_info_and_pattern_t > const & + | __init__(self, x) -> func_info_and_pattern_vec_t + | + | @param x: qvector< func_info_and_pattern_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65240,19 +62882,20 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: func_info_and_pattern_t const & + | + | @param i: size_t + | @param v: func_info_and_pattern_t const & | | at(self, *args) | at(self, _idx) -> func_info_and_pattern_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> func_info_and_pattern_t - | begin(self) -> func_info_and_pattern_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65265,16 +62908,16 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> func_info_and_pattern_t - | end(self) -> func_info_and_pattern_t | | erase(self, *args) | erase(self, it) -> func_info_and_pattern_t - | it: qvector< func_info_and_pattern_t >::iterator | + | @param it: qvector< func_info_and_pattern_t >::iterator | | erase(self, first, last) -> func_info_and_pattern_t - | first: qvector< func_info_and_pattern_t >::iterator - | last: qvector< func_info_and_pattern_t >::iterator + | + | @param first: qvector< func_info_and_pattern_t >::iterator + | @param last: qvector< func_info_and_pattern_t >::iterator | | extract(self, *args) | extract(self) -> func_info_and_pattern_t @@ -65284,47 +62927,56 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_and_pattern_t()) - | x: func_info_and_pattern_t const & + | + | @param x: func_info_and_pattern_t const & | | inject(self, *args) | inject(self, s, len) - | s: func_info_and_pattern_t * - | len: size_t + | + | @param s: func_info_and_pattern_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_and_pattern_t - | it: qvector< func_info_and_pattern_t >::iterator - | x: func_info_and_pattern_t const & + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | @param x: func_info_and_pattern_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: func_info_and_pattern_t const & + | + | @param x: func_info_and_pattern_t const & + | + | push_back(self) -> func_info_and_pattern_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_and_pattern_t const & | + | @param _newsize: size_t + | @param x: func_info_and_pattern_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< func_info_and_pattern_t > & + | + | @param r: qvector< func_info_and_pattern_t > & | | truncate(self, *args) | truncate(self) @@ -65355,7 +63007,10 @@ class func_info_base_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_base_t + | __init__(self, __name=None, __metadata=metadata_t()) -> func_info_base_t + | + | @param __name: char const * + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -65369,10 +63024,10 @@ class func_info_base_t(__builtin__.object) | list of weak references to the object (if defined) | | metadata - | func_info_base_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_base_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -65397,7 +63052,9 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_pattern_and_frequency_t + | __init__(self, __frequency=0) -> func_info_pattern_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -65405,7 +63062,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors defined here: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -65420,7 +63077,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -65432,13 +63089,13 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_pattern_and_frequency_vec_t in module ida_lumina: @@ -65449,11 +63106,14 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_pattern_and_frequency_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_pattern_and_frequency_vec_t - | x: qvector< func_info_pattern_and_frequency_t > const & + | __init__(self, x) -> func_info_pattern_and_frequency_vec_t + | + | @param x: qvector< func_info_pattern_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65465,19 +63125,20 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: func_info_pattern_and_frequency_t const & + | + | @param i: size_t + | @param v: func_info_pattern_and_frequency_t const & | | at(self, *args) | at(self, _idx) -> func_info_pattern_and_frequency_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> func_info_pattern_and_frequency_t - | begin(self) -> func_info_pattern_and_frequency_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65490,16 +63151,16 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> func_info_pattern_and_frequency_t - | end(self) -> func_info_pattern_and_frequency_t | | erase(self, *args) | erase(self, it) -> func_info_pattern_and_frequency_t - | it: qvector< func_info_pattern_and_frequency_t >::iterator | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator | | erase(self, first, last) -> func_info_pattern_and_frequency_t - | first: qvector< func_info_pattern_and_frequency_t >::iterator - | last: qvector< func_info_pattern_and_frequency_t >::iterator + | + | @param first: qvector< func_info_pattern_and_frequency_t >::iterator + | @param last: qvector< func_info_pattern_and_frequency_t >::iterator | | extract(self, *args) | extract(self) -> func_info_pattern_and_frequency_t @@ -65509,47 +63170,56 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_pattern_and_frequency_t()) - | x: func_info_pattern_and_frequency_t const & + | + | @param x: func_info_pattern_and_frequency_t const & | | inject(self, *args) | inject(self, s, len) - | s: func_info_pattern_and_frequency_t * - | len: size_t + | + | @param s: func_info_pattern_and_frequency_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_pattern_and_frequency_t - | it: qvector< func_info_pattern_and_frequency_t >::iterator - | x: func_info_pattern_and_frequency_t const & + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | @param x: func_info_pattern_and_frequency_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: func_info_pattern_and_frequency_t const & + | + | @param x: func_info_pattern_and_frequency_t const & + | + | push_back(self) -> func_info_pattern_and_frequency_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_pattern_and_frequency_t const & | + | @param _newsize: size_t + | @param x: func_info_pattern_and_frequency_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< func_info_pattern_and_frequency_t > & + | + | @param r: qvector< func_info_pattern_and_frequency_t > & | | truncate(self, *args) | truncate(self) @@ -65580,7 +63250,11 @@ class func_info_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_t + | __init__(self, __name=None, __size=0, __metadata=metadata_t()) -> func_info_t + | + | @param __name: char const * + | @param __size: uint32 + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -65594,13 +63268,13 @@ class func_info_t(__builtin__.object) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size | | thisown | The membership flag @@ -65620,11 +63294,14 @@ class func_info_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_vec_t - | x: qvector< func_info_t > const & + | __init__(self, x) -> func_info_vec_t + | + | @param x: qvector< func_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65636,19 +63313,20 @@ class func_info_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: func_info_t const & + | + | @param i: size_t + | @param v: func_info_t const & | | at(self, *args) | at(self, _idx) -> func_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> func_info_t - | begin(self) -> func_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65661,16 +63339,16 @@ class func_info_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> func_info_t - | end(self) -> func_info_t | | erase(self, *args) | erase(self, it) -> func_info_t - | it: qvector< func_info_t >::iterator | + | @param it: qvector< func_info_t >::iterator | | erase(self, first, last) -> func_info_t - | first: qvector< func_info_t >::iterator - | last: qvector< func_info_t >::iterator + | + | @param first: qvector< func_info_t >::iterator + | @param last: qvector< func_info_t >::iterator | | extract(self, *args) | extract(self) -> func_info_t @@ -65680,47 +63358,56 @@ class func_info_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_t()) - | x: func_info_t const & + | + | @param x: func_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: func_info_t * - | len: size_t + | + | @param s: func_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_t - | it: qvector< func_info_t >::iterator - | x: func_info_t const & + | + | @param it: qvector< func_info_t >::iterator + | @param x: func_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: func_info_t const & + | + | @param x: func_info_t const & + | + | push_back(self) -> func_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_t const & | + | @param _newsize: size_t + | @param x: func_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< func_info_t > & + | + | @param r: qvector< func_info_t > & | | truncate(self, *args) | truncate(self) @@ -65754,66 +63441,76 @@ class func_md_diff_handler_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_md_diff_handler_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65837,7 +63534,8 @@ Help on function get_lumina_rpc_packet_t_index_from_base in module ida_lumina: get_lumina_rpc_packet_t_index_from_base(*args) get_lumina_rpc_packet_t_index_from_base(code) -> uchar - @param code (C++: lumina_rpc_packet_t) + + @param code: enum lumina_rpc_packet_t Help on function get_server_connection in module ida_lumina: @@ -65848,13 +63546,15 @@ Help on function get_server_connection2 in module ida_lumina: get_server_connection2(*args) get_server_connection2(feature) -> lumina_client_t - @param feature (C++: lumina_feature_t) + + @param feature: enum lumina_feature_t Help on function has_backup_metadata in module ida_lumina: has_backup_metadata(*args) has_backup_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on class input_file_t in module ida_lumina: @@ -65864,7 +63564,10 @@ class input_file_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> input_file_t + | __init__(self, __path=None, __md5=md5_t()) -> input_file_t + | + | @param __path: char const * + | @param __md5: md5_t | | __repr__ = _swig_repr(self) | @@ -65878,10 +63581,10 @@ class input_file_t(__builtin__.object) | list of weak references to the object (if defined) | | md5 - | input_file_t_md5_get(self) -> md5_t * + | md5 | | path - | input_file_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -65913,7 +63616,7 @@ class insn_cmt_t(insn_site_t) | Data descriptors defined here: | | cmt - | insn_cmt_t_cmt_get(self) -> qstring * + | cmt | | thisown | The membership flag @@ -65929,7 +63632,8 @@ class insn_cmt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -65941,10 +63645,10 @@ class insn_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_cmts_t in module ida_lumina: @@ -65955,11 +63659,14 @@ class insn_cmts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> insn_cmt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_cmts_t - | x: qvector< insn_cmt_t > const & + | __init__(self, x) -> insn_cmts_t + | + | @param x: qvector< insn_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65971,19 +63678,20 @@ class insn_cmts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: insn_cmt_t const & + | + | @param i: size_t + | @param v: insn_cmt_t const & | | at(self, *args) | at(self, _idx) -> insn_cmt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> insn_cmt_t - | begin(self) -> insn_cmt_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65996,16 +63704,16 @@ class insn_cmts_t(__builtin__.object) | | end(self, *args) | end(self) -> insn_cmt_t - | end(self) -> insn_cmt_t | | erase(self, *args) | erase(self, it) -> insn_cmt_t - | it: qvector< insn_cmt_t >::iterator | + | @param it: qvector< insn_cmt_t >::iterator | | erase(self, first, last) -> insn_cmt_t - | first: qvector< insn_cmt_t >::iterator - | last: qvector< insn_cmt_t >::iterator + | + | @param first: qvector< insn_cmt_t >::iterator + | @param last: qvector< insn_cmt_t >::iterator | | extract(self, *args) | extract(self) -> insn_cmt_t @@ -66015,47 +63723,56 @@ class insn_cmts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=insn_cmt_t()) - | x: insn_cmt_t const & + | + | @param x: insn_cmt_t const & | | inject(self, *args) | inject(self, s, len) - | s: insn_cmt_t * - | len: size_t + | + | @param s: insn_cmt_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> insn_cmt_t - | it: qvector< insn_cmt_t >::iterator - | x: insn_cmt_t const & + | + | @param it: qvector< insn_cmt_t >::iterator + | @param x: insn_cmt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: insn_cmt_t const & + | + | @param x: insn_cmt_t const & + | + | push_back(self) -> insn_cmt_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: insn_cmt_t const & | + | @param _newsize: size_t + | @param x: insn_cmt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< insn_cmt_t > & + | + | @param r: qvector< insn_cmt_t > & | | truncate(self, *args) | truncate(self) @@ -66099,13 +63816,13 @@ class insn_ops_repr_t(insn_site_t) | Data descriptors defined here: | | flags - | insn_ops_repr_t_flags_get(self) -> flags_t + | flags | | op0 - | insn_ops_repr_t_op0_get(self) -> opinfo_t + | op0 | | op1 - | insn_ops_repr_t_op1_get(self) -> opinfo_t + | op1 | | thisown | The membership flag @@ -66121,7 +63838,8 @@ class insn_ops_repr_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -66133,10 +63851,10 @@ class insn_ops_repr_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_ops_reprs_t in module ida_lumina: @@ -66147,11 +63865,14 @@ class insn_ops_reprs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> insn_ops_repr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_ops_reprs_t - | x: qvector< insn_ops_repr_t > const & + | __init__(self, x) -> insn_ops_reprs_t + | + | @param x: qvector< insn_ops_repr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66163,19 +63884,20 @@ class insn_ops_reprs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: insn_ops_repr_t const & + | + | @param i: size_t + | @param v: insn_ops_repr_t const & | | at(self, *args) | at(self, _idx) -> insn_ops_repr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> insn_ops_repr_t - | begin(self) -> insn_ops_repr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -66188,16 +63910,16 @@ class insn_ops_reprs_t(__builtin__.object) | | end(self, *args) | end(self) -> insn_ops_repr_t - | end(self) -> insn_ops_repr_t | | erase(self, *args) | erase(self, it) -> insn_ops_repr_t - | it: qvector< insn_ops_repr_t >::iterator | + | @param it: qvector< insn_ops_repr_t >::iterator | | erase(self, first, last) -> insn_ops_repr_t - | first: qvector< insn_ops_repr_t >::iterator - | last: qvector< insn_ops_repr_t >::iterator + | + | @param first: qvector< insn_ops_repr_t >::iterator + | @param last: qvector< insn_ops_repr_t >::iterator | | extract(self, *args) | extract(self) -> insn_ops_repr_t @@ -66207,47 +63929,56 @@ class insn_ops_reprs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=insn_ops_repr_t()) - | x: insn_ops_repr_t const & + | + | @param x: insn_ops_repr_t const & | | inject(self, *args) | inject(self, s, len) - | s: insn_ops_repr_t * - | len: size_t + | + | @param s: insn_ops_repr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> insn_ops_repr_t - | it: qvector< insn_ops_repr_t >::iterator - | x: insn_ops_repr_t const & + | + | @param it: qvector< insn_ops_repr_t >::iterator + | @param x: insn_ops_repr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: insn_ops_repr_t const & + | + | @param x: insn_ops_repr_t const & + | + | push_back(self) -> insn_ops_repr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: insn_ops_repr_t const & | + | @param _newsize: size_t + | @param x: insn_ops_repr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< insn_ops_repr_t > & + | + | @param r: qvector< insn_ops_repr_t > & | | truncate(self, *args) | truncate(self) @@ -66284,7 +64015,8 @@ class insn_site_t(__builtin__.object) | | toea(self, *args) | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66296,10 +64028,10 @@ class insn_site_t(__builtin__.object) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off | | thisown | The membership flag @@ -66323,34 +64055,39 @@ class lumina_client_t(__builtin__.object) | | get_pop(self, *args) | get_pop(self, nresults=10) -> pkt_get_pop_result_t - | @param nresults (C++: uint32) + | + | @param nresults: uint32 | | is_pattern_id(self, *args) | is_pattern_id(self, pid, md5) -> bool - | @param pid (C++: const pattern_id_t &) - | @param md5 (C++: const md5_t &) + | + | @param pid: pattern_id_t const & + | @param md5: md5_t const & | | pull_md(self, *args) | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t - | @param pattern_ids (C++: pattern_ids_t &) - | @param pull_md_flags (C++: uint32) | + | @param pattern_ids: pattern_ids_t & + | @param pull_md_flags: uint32 | | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t - | funcs: eavec_t * - | @param pull_md_flags (C++: uint32) + | + | @param funcs: eavec_t * + | @param pull_md_flags: uint32 | | push_md(self, *args) | push_md(self, result, opts, append_metadata=None, flags=0) -> bool - | @param result (C++: push_md_result_t *) - | @param opts (C++: const push_md_opts_t &) - | @param append_metadata (C++: metadata_appender_t *) - | @param flags (C++: uint32) + | + | @param result: push_md_result_t * + | @param opts: push_md_opts_t const & + | @param append_metadata: metadata_appender_t * + | @param flags: uint32 | | set_pattern_id_md5(self, *args) | set_pattern_id_md5(self, out, md5) - | @param out (C++: pattern_id_t *) - | @param md5 (C++: const md5_t &) + | + | @param out: pattern_id_t * + | @param md5: md5_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66379,15 +64116,19 @@ class lumina_op_res_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lumina_op_res_t > const & + | + | @param r: qvector< lumina_op_res_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lumina_op_res_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lumina_op_res_vec_t - | x: qvector< lumina_op_res_t > const & + | __init__(self, x) -> lumina_op_res_vec_t + | + | @param x: qvector< lumina_op_res_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66397,26 +64138,33 @@ class lumina_op_res_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lumina_op_res_t > const & + | + | @param r: qvector< lumina_op_res_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lumina_op_res_t const & + | + | @param i: size_t + | @param v: lumina_op_res_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lumina_op_res_t const & + | + | Parameters + | ---------- + | x: lumina_op_res_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | at(self, *args) | at(self, _idx) -> lumina_op_res_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66440,74 +64188,86 @@ class lumina_op_res_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< lumina_op_res_t >::iterator - | it: qvector< lumina_op_res_t >::iterator | + | @param it: qvector< lumina_op_res_t >::iterator | | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator - | first: qvector< lumina_op_res_t >::iterator - | last: qvector< lumina_op_res_t >::iterator + | + | @param first: qvector< lumina_op_res_t >::iterator + | @param last: qvector< lumina_op_res_t >::iterator | | extract(self, *args) | extract(self) -> lumina_op_res_t * | | find(self, *args) | find(self, x) -> qvector< lumina_op_res_t >::iterator - | x: lumina_op_res_t const & | + | @param x: lumina_op_res_t const & | | find(self, x) -> qvector< lumina_op_res_t >::const_iterator - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lumina_op_res_t()) - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | has(self, *args) | has(self, x) -> bool - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | inject(self, *args) | inject(self, s, len) - | s: lumina_op_res_t * - | len: size_t + | + | @param s: lumina_op_res_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator - | it: qvector< lumina_op_res_t >::iterator - | x: lumina_op_res_t const & + | + | @param it: qvector< lumina_op_res_t >::iterator + | @param x: lumina_op_res_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & + | + | push_back(self) -> lumina_op_res_t & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lumina_op_res_t const & | + | @param _newsize: size_t + | @param x: lumina_op_res_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lumina_op_res_t > & + | + | @param r: qvector< lumina_op_res_t > & | | truncate(self, *args) | truncate(self) @@ -66539,14 +64299,16 @@ class md_type_parts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: md_type_parts_t const & + | + | @param r: md_type_parts_t const & | | __init__(self, *args) | __init__(self) -> md_type_parts_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: md_type_parts_t const & + | + | @param r: md_type_parts_t const & | | __repr__ = _swig_repr(self) | @@ -66560,16 +64322,16 @@ class md_type_parts_t(__builtin__.object) | list of weak references to the object (if defined) | | fields - | md_type_parts_t_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | md_type_parts_t_type_get(self) -> qtype * + | type | | userti - | md_type_parts_t_userti_get(self) -> bool + | userti | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -66586,7 +64348,8 @@ class metadata_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _md) -> metadata_iterator_t - | _md: metadata_t const & + | + | @param _md: metadata_t const & | | __repr__ = _swig_repr(self) | @@ -66606,13 +64369,13 @@ class metadata_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | data - | metadata_iterator_t_data_get(self) -> uchar const * + | data | | key - | metadata_iterator_t_key_get(self) -> mdkey_t + | key | | size - | metadata_iterator_t_size_get(self) -> size_t + | size | | thisown | The membership flag @@ -66627,10 +64390,11 @@ Help on function new_packet in module ida_lumina: new_packet(*args) new_packet(code, ptr=None, len=0, version=-1) -> rpc_packet_data_t * - @param code (C++: uchar) - @param ptr (C++: const uchar *) - @param len (C++: size_t) - @param version (C++: int) + + @param code: uchar + @param ptr: uchar const * + @param len: size_t + @param version: int Help on class oprepr_t in module ida_lumina: @@ -66654,10 +64418,10 @@ class oprepr_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | oprepr_t_flags_get(self) -> flags_t + | flags | | opinfo - | oprepr_t_opinfo_get(self) -> opinfo_t + | opinfo | | thisown | The membership flag @@ -66676,7 +64440,10 @@ class pattern_id_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pattern_id_t + | __init__(self, __type=PAT_TYPE_UNKNOWN, __data=bytevec_t()) -> pattern_id_t + | + | @param __type: enum pattern_type_t + | @param __data: bytevec_t | | __repr__ = _swig_repr(self) | @@ -66690,13 +64457,13 @@ class pattern_id_t(__builtin__.object) | list of weak references to the object (if defined) | | data - | pattern_id_t_data_get(self) -> bytevec_t * + | data | | thisown | The membership flag | | type - | pattern_id_t_type_get(self) -> pattern_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -66726,7 +64493,7 @@ class pkt_get_pop_result_t(__builtin__.object) | list of weak references to the object (if defined) | | results - | pkt_get_pop_result_t_results_get(self) -> pop_fun_vec_t * + | results | | thisown | The membership flag @@ -66759,7 +64526,7 @@ class pkt_get_pop_t(__builtin__.object) | list of weak references to the object (if defined) | | nresults - | pkt_get_pop_t_nresults_get(self) -> uint32 + | nresults | | thisown | The membership flag @@ -66792,16 +64559,16 @@ class pkt_helo_t(__builtin__.object) | list of weak references to the object (if defined) | | client_version - | pkt_helo_t_client_version_get(self) -> int + | client_version | | key - | pkt_helo_t_key_get(self) -> bytevec_t * + | key | | license_id - | pkt_helo_t_license_id_get(self) -> uchar [6] + | license_id | | record_conv - | pkt_helo_t_record_conv_get(self) -> bool + | record_conv | | thisown | The membership flag @@ -66834,10 +64601,10 @@ class pkt_pull_md_result_t(__builtin__.object) | list of weak references to the object (if defined) | | codes - | pkt_pull_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | results - | pkt_pull_md_result_t_results_get(self) -> func_info_and_frequency_vec_t + | results | | thisown | The membership flag @@ -66870,13 +64637,13 @@ class pkt_pull_md_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | pkt_pull_md_t_flags_get(self) -> uint32 + | flags | | keys - | pkt_pull_md_t_keys_get(self) -> mdkey_vec_t * + | keys | | pattern_ids - | pkt_pull_md_t_pattern_ids_get(self) -> pattern_ids_t * + | pattern_ids | | thisown | The membership flag @@ -66909,7 +64676,7 @@ class pkt_push_md_result_t(__builtin__.object) | list of weak references to the object (if defined) | | codes - | pkt_push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | thisown | The membership flag @@ -66942,22 +64709,22 @@ class pkt_push_md_t(__builtin__.object) | list of weak references to the object (if defined) | | contents - | pkt_push_md_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | ea64s - | pkt_push_md_t_ea64s_get(self) -> ea64vec_t * + | ea64s | | flags - | pkt_push_md_t_flags_get(self) -> uint32 + | flags | | hostname - | pkt_push_md_t_hostname_get(self) -> qstring * + | hostname | | idb - | pkt_push_md_t_idb_get(self) -> qstring * + | idb | | input - | pkt_push_md_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -66990,10 +64757,10 @@ class pkt_rpc_fail_t(__builtin__.object) | list of weak references to the object (if defined) | | error - | pkt_rpc_fail_t_error_get(self) -> qstring * + | error | | result - | pkt_rpc_fail_t_result_get(self) -> int + | result | | thisown | The membership flag @@ -67026,13 +64793,13 @@ class pkt_rpc_notify_t(__builtin__.object) | list of weak references to the object (if defined) | | text - | pkt_rpc_notify_t_text_get(self) -> qstring * + | text | | thisown | The membership flag | | type - | pkt_rpc_notify_t_type_get(self) -> rpc_notification_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -67085,7 +64852,11 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pop_fun_t + | __init__(self, __hostname=None, __input=input_file_t(), __ea64=ea64_t(-1)) -> pop_fun_t + | + | @param __hostname: char const * + | @param __input: input_file_t + | @param __ea64: ea64_t | | __repr__ = _swig_repr(self) | @@ -67093,13 +64864,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors defined here: | | ea64 - | pop_fun_t_ea64_get(self) -> ea64_t + | ea64 | | hostname - | pop_fun_t_hostname_get(self) -> qstring * + | hostname | | input - | pop_fun_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -67114,13 +64885,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors inherited from func_info_pattern_and_frequency_t: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -67132,13 +64903,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class push_md_opts_t in module ida_lumina: @@ -67149,7 +64920,8 @@ class push_md_opts_t(__builtin__.object) | | __init__(self, *args) | __init__(self, mfs=size_t(-1)) -> push_md_opts_t - | mfs: size_t + | + | @param mfs: size_t | | __repr__ = _swig_repr(self) | @@ -67163,10 +64935,10 @@ class push_md_opts_t(__builtin__.object) | list of weak references to the object (if defined) | | eas - | push_md_opts_t_eas_get(self) -> eavec_t * + | eas | | min_func_size - | push_md_opts_t_min_func_size_get(self) -> size_t + | min_func_size | | thisown | The membership flag @@ -67199,13 +64971,13 @@ class push_md_result_t(__builtin__.object) | list of weak references to the object (if defined) | | codes - | push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | contents - | push_md_result_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | eas - | push_md_result_t_eas_get(self) -> eavec_t * + | eas | | thisown | The membership flag @@ -67220,13 +64992,15 @@ Help on function revert_metadata in module ida_lumina: revert_metadata(*args) revert_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function score_metadata in module ida_lumina: score_metadata(*args) score_metadata(fi) -> uint32 - @param fi (C++: const func_info_t &) + + @param fi: func_info_t const & Help on class serialized_tinfo in module ida_lumina: @@ -67236,7 +65010,10 @@ class serialized_tinfo(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> serialized_tinfo + | __init__(self, __type=None, __fields=None) -> serialized_tinfo + | + | @param __type: type_t const * + | @param __fields: type_t const * | | __repr__ = _swig_repr(self) | @@ -67250,13 +65027,13 @@ class serialized_tinfo(__builtin__.object) | list of weak references to the object (if defined) | | fields - | serialized_tinfo_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | serialized_tinfo_type_get(self) -> qtype * + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -67282,69 +65059,78 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | thisown | The membership flag @@ -67390,10 +65176,10 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | Data descriptors defined here: | | header_generated - | simple_idb_diff_handler_t_header_generated_get(self) -> bool + | header_generated | | pfn - | simple_idb_diff_handler_t_pfn_get(self) -> func_t const * + | pfn | | thisown | The membership flag @@ -67409,69 +65195,78 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors inherited from simple_diff_handler_t: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | ---------------------------------------------------------------------- | Methods inherited from func_md_diff_handler_t: @@ -67495,7 +65290,10 @@ class skipped_func_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> skipped_func_t + | __init__(self, __pattern_id=pattern_id_t(), __count=0) -> skipped_func_t + | + | @param __pattern_id: pattern_id_t + | @param __count: uint32 | | __repr__ = _swig_repr(self) | @@ -67509,10 +65307,10 @@ class skipped_func_t(__builtin__.object) | list of weak references to the object (if defined) | | count - | skipped_func_t_count_get(self) -> uint32 + | count | | pattern_id - | skipped_func_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -67532,11 +65330,14 @@ class skipped_funcs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> skipped_func_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> skipped_funcs_t - | x: qvector< skipped_func_t > const & + | __init__(self, x) -> skipped_funcs_t + | + | @param x: qvector< skipped_func_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67548,19 +65349,20 @@ class skipped_funcs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: skipped_func_t const & + | + | @param i: size_t + | @param v: skipped_func_t const & | | at(self, *args) | at(self, _idx) -> skipped_func_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> skipped_func_t - | begin(self) -> skipped_func_t | | capacity(self, *args) | capacity(self) -> size_t @@ -67573,16 +65375,16 @@ class skipped_funcs_t(__builtin__.object) | | end(self, *args) | end(self) -> skipped_func_t - | end(self) -> skipped_func_t | | erase(self, *args) | erase(self, it) -> skipped_func_t - | it: qvector< skipped_func_t >::iterator | + | @param it: qvector< skipped_func_t >::iterator | | erase(self, first, last) -> skipped_func_t - | first: qvector< skipped_func_t >::iterator - | last: qvector< skipped_func_t >::iterator + | + | @param first: qvector< skipped_func_t >::iterator + | @param last: qvector< skipped_func_t >::iterator | | extract(self, *args) | extract(self) -> skipped_func_t @@ -67592,47 +65394,56 @@ class skipped_funcs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=skipped_func_t()) - | x: skipped_func_t const & + | + | @param x: skipped_func_t const & | | inject(self, *args) | inject(self, s, len) - | s: skipped_func_t * - | len: size_t + | + | @param s: skipped_func_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> skipped_func_t - | it: qvector< skipped_func_t >::iterator - | x: skipped_func_t const & + | + | @param it: qvector< skipped_func_t >::iterator + | @param x: skipped_func_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: skipped_func_t const & + | + | @param x: skipped_func_t const & + | + | push_back(self) -> skipped_func_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: skipped_func_t const & | + | @param _newsize: size_t + | @param x: skipped_func_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< skipped_func_t > & + | + | @param r: qvector< skipped_func_t > & | | truncate(self, *args) | truncate(self) @@ -67658,8 +65469,9 @@ class skipped_funcs_t(__builtin__.object) Help on function split_metadata in module ida_lumina: split_metadata(*args) - split_metadata(md) -> PyObject * - md: metadata_t const & + split_metadata(md) -> dict + + @param md: metadata_t const & Help on class user_identification_t in module ida_lumina: @@ -67669,7 +65481,11 @@ class user_identification_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> user_identification_t + | __init__(self, __license_id=None, __user_name=None, __email=None) -> user_identification_t + | + | @param __license_id: char const * + | @param __user_name: char const * + | @param __email: char const * | | __repr__ = _swig_repr(self) | @@ -67683,16 +65499,16 @@ class user_identification_t(__builtin__.object) | list of weak references to the object (if defined) | | email - | user_identification_t_email_get(self) -> qstring * + | email | | license_id - | user_identification_t_license_id_get(self) -> qstring * + | license_id | | thisown | The membership flag | | user_name - | user_identification_t_user_name_get(self) -> qstring * + | user_name | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -67721,7 +65537,7 @@ class user_stkpnt_t(insn_site_t) | Data descriptors defined here: | | delta - | user_stkpnt_t_delta_get(self) -> int64 + | delta | | thisown | The membership flag @@ -67737,7 +65553,8 @@ class user_stkpnt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -67749,10 +65566,10 @@ class user_stkpnt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class user_stkpnts_t in module ida_lumina: @@ -67763,11 +65580,14 @@ class user_stkpnts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> user_stkpnt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> user_stkpnts_t - | x: qvector< user_stkpnt_t > const & + | __init__(self, x) -> user_stkpnts_t + | + | @param x: qvector< user_stkpnt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67779,19 +65599,20 @@ class user_stkpnts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: user_stkpnt_t const & + | + | @param i: size_t + | @param v: user_stkpnt_t const & | | at(self, *args) | at(self, _idx) -> user_stkpnt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> user_stkpnt_t - | begin(self) -> user_stkpnt_t | | capacity(self, *args) | capacity(self) -> size_t @@ -67804,16 +65625,16 @@ class user_stkpnts_t(__builtin__.object) | | end(self, *args) | end(self) -> user_stkpnt_t - | end(self) -> user_stkpnt_t | | erase(self, *args) | erase(self, it) -> user_stkpnt_t - | it: qvector< user_stkpnt_t >::iterator | + | @param it: qvector< user_stkpnt_t >::iterator | | erase(self, first, last) -> user_stkpnt_t - | first: qvector< user_stkpnt_t >::iterator - | last: qvector< user_stkpnt_t >::iterator + | + | @param first: qvector< user_stkpnt_t >::iterator + | @param last: qvector< user_stkpnt_t >::iterator | | extract(self, *args) | extract(self) -> user_stkpnt_t @@ -67823,47 +65644,56 @@ class user_stkpnts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=user_stkpnt_t()) - | x: user_stkpnt_t const & + | + | @param x: user_stkpnt_t const & | | inject(self, *args) | inject(self, s, len) - | s: user_stkpnt_t * - | len: size_t + | + | @param s: user_stkpnt_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> user_stkpnt_t - | it: qvector< user_stkpnt_t >::iterator - | x: user_stkpnt_t const & + | + | @param it: qvector< user_stkpnt_t >::iterator + | @param x: user_stkpnt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: user_stkpnt_t const & + | + | @param x: user_stkpnt_t const & + | + | push_back(self) -> user_stkpnt_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: user_stkpnt_t const & | + | @param _newsize: size_t + | @param x: user_stkpnt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< user_stkpnt_t > & + | + | @param r: qvector< user_stkpnt_t > & | | truncate(self, *args) | truncate(self) @@ -67886,26 +65716,10 @@ class user_stkpnts_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_user_stkpnts_t> | delete_user_stkpnts_t(self) -=== ida_lumina EPYDOC INJECTIONS === -ida_lumina.AMDF_FORCE +Module "ida_moves"s docstring: """ -apply kvps regardless of what's currently in the IDB, possibly -removing some attributes currently present (e.g., name, or prototype -could be lost) """ -ida_lumina.AMDF_UPGRADE -""" -"quality" than what's currently in the IDB - -apply kvps that seem to be of higher -""" - -ida_lumina.PMF_PUSH_MODE_MASK -""" -Conflict resolution mode. -""" -=== ida_lumina EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(__builtin__.object) @@ -67922,45 +65736,52 @@ class bookmarks_t(__builtin__.object) | | erase(*args) | erase(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) | find_index(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) | get(out_entry, out_desc, index, ud) -> bool - | out_entry: lochist_entry_t * - | out_desc: qstring * - | index: uint32 * - | ud: void * + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) | get_desc(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | get_dirtree_id(*args) | get_dirtree_id(e, ud) -> dirtree_id_t - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) | mark(e, index, title, desc, ud) -> uint32 - | e: lochist_entry_t const & - | index: uint32 - | title: char const * - | desc: char const * - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) | size(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67978,57 +65799,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) bookmarks_t_erase(e, index, ud) -> bool - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) bookmarks_t_find_index(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - out_entry: lochist_entry_t * - out_desc: qstring * - index: uint32 * - ud: void * + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) bookmarks_t_get_desc(e, index, ud) -> str - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_get_dirtree_id in module ida_moves: bookmarks_t_get_dirtree_id(*args) bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - e: lochist_entry_t const & - index: uint32 - title: char const * - desc: char const * - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) bookmarks_t_size(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -68039,14 +65867,16 @@ class graph_location_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -68060,16 +65890,16 @@ class graph_location_info_t(__builtin__.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -68086,33 +65916,35 @@ class lochist_entry_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> lochist_entry_t - | p: place_t const * - | r: renderer_info_t const & + | __init__(self, p, r) -> lochist_entry_t | + | @param p: place_t const * + | @param r: renderer_info_t const & | | __init__(self, other) -> lochist_entry_t - | other: lochist_entry_t const & + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | | acquire_place(self, *args) | acquire_place(self, in_p) - | @param in_p (C++: place_t *) + | + | @param in_p: place_t * | | is_valid(self, *args) | is_valid(self) -> bool | | place(self, *args) | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) | set_place(self, p) - | @param p (C++: const place_t *) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68124,10 +65956,10 @@ class lochist_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag @@ -68152,8 +65984,9 @@ class lochist_t(__builtin__.object) | | back(self, *args) | back(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) | clear(self) @@ -68163,13 +65996,15 @@ class lochist_t(__builtin__.object) | | fwd(self, *args) | fwd(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) | get(self, out, index) -> bool - | @param out (C++: lochist_entry_t *) - | @param index (C++: uint32) + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) | get_current(self) -> lochist_entry_t @@ -68182,18 +66017,20 @@ class lochist_t(__builtin__.object) | | init(self, *args) | init(self, stream_name, _defpos, _ud, _flags) -> bool - | @param stream_name (C++: const char *) - | @param _defpos (C++: const place_t *) - | @param _ud (C++: void *) - | @param _flags (C++: uint32) + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) | is_history_enabled(self) -> bool | | jump(self, *args) | jump(self, try_to_unhide, e) - | @param try_to_unhide (C++: bool) - | @param e (C++: const lochist_entry_t &) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) | netcode(self) -> nodeidx_t @@ -68203,17 +66040,20 @@ class lochist_t(__builtin__.object) | | seek(self, *args) | seek(self, index, try_to_unhide) -> bool - | @param index (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) | set(self, index, e) - | @param index (C++: uint32) - | @param e (C++: const lochist_entry_t &) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) | set_current(self, e) - | @param e (C++: const lochist_entry_t &) + | + | @param e: lochist_entry_t const & | | size(self, *args) | size(self) -> uint32 @@ -68245,14 +66085,16 @@ class renderer_info_pos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -68266,13 +66108,13 @@ class renderer_info_pos_t(__builtin__.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -68292,14 +66134,21 @@ class renderer_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -68313,13 +66162,13 @@ class renderer_info_t(__builtin__.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -68339,17 +66188,20 @@ class segm_move_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | _from: ea_t - | _to: ea_t - | _sz: size_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -68363,16 +66215,16 @@ class segm_move_info_t(__builtin__.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -68389,15 +66241,19 @@ class segm_move_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | x: qvector< segm_move_info_t > const & + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68407,33 +66263,39 @@ class segm_move_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -68446,78 +66308,85 @@ class segm_move_info_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t | | find(self, *args) | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & | - | - | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -68559,7 +66428,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) | find(self, ea) -> segm_move_info_t - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68578,11 +66448,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68592,31 +66464,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -68629,16 +66507,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t @@ -68648,51 +66526,61 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -68706,22 +66594,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | __weakref__ | list of weak references to the object (if defined) +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) get_switch_info(out, ea) -> ssize_t - @param out (C++: switch_info_t *) - @param ea (C++: ea_t) + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) - Add a new encoding (e.g. "UTF-8"). + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - add_encoding(encoding) -> int - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -68745,13 +66651,13 @@ class array_parameters_t(__builtin__.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -68766,154 +66672,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) clr__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) clr__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) clr__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) clr__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) clr_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) clr_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) clr_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) clr_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) clr_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) clr_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) clr_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) clr_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) clr_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) clr_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) clr_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) clr_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) + clr_notcode(ea) Clear not-code mark. - clr_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) clr_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) clr_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) clr_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) clr_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) clr_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) clr_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) clr_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) clr_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -68924,11 +66854,13 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array - | data: short (&)[8] + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68940,15 +66872,19 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: short const & + | + | @param i: size_t + | @param v: short const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68963,7 +66899,7 @@ class custom_data_type_ids_fids_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -68989,9 +66925,13 @@ class custom_data_type_ids_t(__builtin__.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) + | get_dtid(self) -> tid_t + | | set(self, *args) | set(self, tid) - | @param tid (C++: tid_t) + | + | @param tid: tid_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69003,7 +66943,7 @@ class custom_data_type_ids_t(__builtin__.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -69020,122 +66960,142 @@ class custom_data_type_ids_t(__builtin__.object) Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) del_absbase(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) del_aflags(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) del_alignment(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) del_array_parameters(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) del_custom_data_type_ids(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) - Delete an encoding (1-based) - del_encoding(idx) -> bool - @param idx (C++: int) + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) del_ind_purged(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) del_item_color(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) del_op_tinfo(ea, n) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) del_refinfo(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) del_str_type(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) del_switch_info(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) del_switch_parent(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) del_tinfo(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) + delete_imports() Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) + ea2node(ea) -> nodeidx_t Get netnode for the specified address. - ea2node(ea) -> nodeidx_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) - Get encoding name for this strtype. - encoding_from_strtype(strtype) -> char const * - @param strtype (C++: int32) + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -69159,13 +67119,13 @@ class enum_const_t(__builtin__.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -69187,10 +67147,10 @@ enum_import_names(*args) Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) + find_custom_refinfo(name) -> int Get id of a custom refinfo type. - find_custom_refinfo(name) -> int - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: @@ -69200,90 +67160,108 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) get_absbase(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_aflags in module ida_nalt: get_aflags(*args) get_aflags(ea) -> aflags_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) get_alignment(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) + get_archive_path() -> str Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) get_array_parameters(out, ea) -> ssize_t - @param out (C++: array_parameters_t *) - @param ea (C++: ea_t) + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) + get_asm_inc_file() -> str Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) get_custom_data_type_ids(cdis, ea) -> int - @param cdis (C++: custom_data_type_ids_t *) - @param ea (C++: ea_t) + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * Get definition of a registered custom refinfo type. - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) + get_default_encoding_idx(bpu) -> int Get default encoding index for a specific string type. - get_default_encoding_idx(bpu) -> int - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument Help on function get_elapsed_secs in module ida_nalt: get_elapsed_secs(*args) + get_elapsed_secs() -> size_t Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - get_encoding_bpu(idx) -> int - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) + get_encoding_name(idx) -> char const * Get encoding name for specific index (1-based). - get_encoding_name(idx) -> char const * - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) + get_encoding_qty() -> int Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -69294,181 +67272,201 @@ get_gotea(*args) Help on function get_ida_notepad_text in module ida_nalt: get_ida_notepad_text(*args) - Get notead text. - - get_ida_notepad_text(text) -> ssize_t - @param text (C++: qstring *) + get_ida_notepad_text() -> str + Get notepad text. Help on function get_idb_ctime in module ida_nalt: get_idb_ctime(*args) + get_idb_ctime() -> time_t Get database creation timestamp. Help on function get_idb_nopens in module ida_nalt: get_idb_nopens(*args) + get_idb_nopens() -> size_t Get number of times the database is opened. Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) + get_ids_modnode() -> netnode Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) + get_imagebase() -> ea_t Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) - get_import_module_name(mod_index) -> PyObject * + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) + get_import_module_qty() -> uint Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) get_ind_purged(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_initial_ida_version in module ida_nalt: get_initial_ida_version(*args) - Get version of ida which created the database (string format like - "7.5") - - get_initial_ida_version(ver) -> ssize_t - @param ver (C++: qstring *) + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) + get_input_file_path() -> str Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) get_item_color(ea) -> bgcolor_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_loader_format_name in module ida_nalt: get_loader_format_name(*args) + get_loader_format_name() -> str Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) get_op_tinfo(tif, ea, n) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) get_refinfo(ri, ea, n) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - get_reftype_by_size(size) -> reftype_t - @param size (C++: size_t) + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) + get_root_filename() -> str Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_srcdbg_paths in module ida_nalt: get_srcdbg_paths(*args) + get_srcdbg_paths() -> str Get source debug paths. - - get_srcdbg_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_srcdbg_undesired_paths in module ida_nalt: get_srcdbg_undesired_paths(*args) + get_srcdbg_undesired_paths() -> str Get user-closed source files. - - get_srcdbg_undesired_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) + get_str_encoding_idx(strtype) -> uchar Get index of the string encoding for this string. - get_str_encoding_idx(strtype) -> uchar - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) get_str_term1(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) get_str_term2(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) get_str_type(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) get_str_type_code(strtype) -> uchar - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type_prefix_length in module ida_nalt: get_str_type_prefix_length(*args) get_str_type_prefix_length(strtype) -> size_t - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_strid in module ida_nalt: get_strid(*args) get_strid(ea) -> tid_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) get_strtype_bpu(strtype) -> int - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -69478,454 +67476,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) get_switch_parent(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) get_tinfo(tif, ea) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) getnode(ea) -> netnode - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_aflag_linnum in module ida_nalt: has_aflag_linnum(*args) has_aflag_linnum(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_lname in module ida_nalt: has_aflag_lname(*args) has_aflag_lname(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti in module ida_nalt: has_aflag_ti(*args) has_aflag_ti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti0 in module ida_nalt: has_aflag_ti0(*args) has_aflag_ti0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti1 in module ida_nalt: has_aflag_ti1(*args) has_aflag_ti1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) has_lname(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) has_ti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) has_ti0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) has_ti1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) hide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) hide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) is__bnot0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) is__bnot1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) is__invsign0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) is__invsign1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_aflag__bnot0 in module ida_nalt: is_aflag__bnot0(*args) is_aflag__bnot0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__bnot1 in module ida_nalt: is_aflag__bnot1(*args) is_aflag__bnot1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign0 in module ida_nalt: is_aflag__invsign0(*args) is_aflag__invsign0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign1 in module ida_nalt: is_aflag__invsign1(*args) is_aflag__invsign1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_align_flow in module ida_nalt: is_aflag_align_flow(*args) is_aflag_align_flow(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_colored_item in module ida_nalt: is_aflag_colored_item(*args) is_aflag_colored_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: is_aflag_data_guessed_by_hexrays(*args) is_aflag_data_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_fixed_spd in module ida_nalt: is_aflag_fixed_spd(*args) is_aflag_fixed_spd(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: is_aflag_func_guessed_by_hexrays(*args) is_aflag_func_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_border in module ida_nalt: is_aflag_hidden_border(*args) is_aflag_hidden_border(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_item in module ida_nalt: is_aflag_hidden_item(*args) is_aflag_hidden_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_libitem in module ida_nalt: is_aflag_libitem(*args) is_aflag_libitem(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero0 in module ida_nalt: is_aflag_lzero0(*args) is_aflag_lzero0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero1 in module ida_nalt: is_aflag_lzero1(*args) is_aflag_lzero1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_manual_insn in module ida_nalt: is_aflag_manual_insn(*args) is_aflag_manual_insn(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_noret in module ida_nalt: is_aflag_noret(*args) is_aflag_noret(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notcode in module ida_nalt: is_aflag_notcode(*args) is_aflag_notcode(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notproc in module ida_nalt: is_aflag_notproc(*args) is_aflag_notproc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_public_name in module ida_nalt: is_aflag_public_name(*args) is_aflag_public_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_retfp in module ida_nalt: is_aflag_retfp(*args) is_aflag_retfp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_terse_struc in module ida_nalt: is_aflag_terse_struc(*args) is_aflag_terse_struc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_tilcmt in module ida_nalt: is_aflag_tilcmt(*args) is_aflag_tilcmt(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: is_aflag_type_determined_by_hexrays(*args) is_aflag_type_determined_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: is_aflag_type_guessed_by_hexrays(*args) is_aflag_type_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_ida in module ida_nalt: is_aflag_type_guessed_by_ida(*args) is_aflag_type_guessed_by_ida(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_usersp in module ida_nalt: is_aflag_usersp(*args) is_aflag_usersp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_userti in module ida_nalt: is_aflag_userti(*args) is_aflag_userti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_weak_name in module ida_nalt: is_aflag_weak_name(*args) is_aflag_weak_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_zstroff in module ida_nalt: is_aflag_zstroff(*args) is_aflag_zstroff(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) is_align_flow(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) is_colored_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_data_guessed_by_hexrays in module ida_nalt: is_data_guessed_by_hexrays(*args) is_data_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) + is_finally_visible_item(ea) -> bool Is instruction visible? - is_finally_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) is_fixed_spd(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_func_guessed_by_hexrays in module ida_nalt: is_func_guessed_by_hexrays(*args) is_func_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) is_hidden_border(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) is_hidden_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) is_libitem(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) is_lzero0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) is_lzero1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) is_noret(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) + is_notcode(ea) -> bool Is the address marked as not-code? - is_notcode(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) is_notproc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) is_pascal(strtype) -> bool - @param strtype (C++: int32) + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) + is_reftype_target_optional(type) -> bool Can the target be calculated using operand value? - is_reftype_target_optional(type) -> bool - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) is_retfp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) is_terse_struc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) is_tilcmt(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_determined_by_hexrays in module ida_nalt: is_type_determined_by_hexrays(*args) is_type_determined_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_hexrays in module ida_nalt: is_type_guessed_by_hexrays(*args) is_type_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_ida in module ida_nalt: is_type_guessed_by_ida(*args) is_type_guessed_by_ida(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) is_usersp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) is_userti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) + is_visible_item(ea) -> bool Test visibility of item at given ea. - is_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) is_zstroff(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) node2ea(ndx) -> ea_t - @param ndx (C++: nodeidx_t) + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -69949,25 +68028,25 @@ class opinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -69998,11 +68077,13 @@ class printop_t(__builtin__.object) | | set_aflags_initialized(self, *args) | set_aflags_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | set_ti_initialized(self, *args) | set_ti_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70014,25 +68095,25 @@ class printop_t(__builtin__.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> aflags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -70054,14 +68135,21 @@ class refinfo_t(__builtin__.object) | | init(self, *args) | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | @param reft_and_flags (C++: uint32) - | @param _base (C++: ea_t) - | @param _target (C++: ea_t) - | @param _tdelta (C++: adiff_t) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) | is_custom(self) -> bool | + | is_no_ones(self, *args) + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) | is_pastend(self) -> bool | @@ -70075,14 +68163,16 @@ class refinfo_t(__builtin__.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) - | < 'is_reftype_target_optional()' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) | no_base_xref(self) -> bool | | set_type(self, *args) | set_type(self, rt) - | @param rt (C++: reftype_t) + | + | @param rt: reftype_t | | type(self, *args) | type(self) -> reftype_t @@ -70097,16 +68187,16 @@ class refinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -70120,420 +68210,477 @@ class refinfo_t(__builtin__.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) - Change name for an encoding (1-based) + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - rename_encoding(idx, encoding) -> bool - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) + retrieve_input_file_md5() -> str Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) + retrieve_input_file_sha256() -> str Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: retrieve_input_file_size(*args) + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) set__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) set__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) set__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) set__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) set_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) set_absbase(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) set_aflags(ea, flags) - @param ea (C++: ea_t) - @param flags (C++: aflags_t) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) set_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) set_alignment(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) + set_archive_path(file) -> bool Set archive file path from which input file was extracted. - set_archive_path(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) set_array_parameters(ea, _in) - @param ea (C++: ea_t) - in: array_parameters_t const * + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) + set_asm_inc_file(file) -> bool Set name of the include file. - set_asm_inc_file(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) set_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) set_custom_data_type_ids(ea, cdis) - @param ea (C++: ea_t) - @param cdis (C++: const custom_data_type_ids_t *) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * Help on function set_data_guessed_by_hexrays in module ida_nalt: set_data_guessed_by_hexrays(*args) set_data_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) - set default encoding for a string type - set_default_encoding_idx(bpu, idx) -> bool - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) set_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_func_guessed_by_hexrays in module ida_nalt: set_func_guessed_by_hexrays(*args) set_func_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) set_gotea(gotea) - @param gotea (C++: ea_t) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) set_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) set_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) set_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) set_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_ida_notepad_text in module ida_nalt: set_ida_notepad_text(*args) - Set notead text. - set_ida_notepad_text(text, size=0) - @param text (C++: const char *) - @param size (C++: size_t) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) + set_ids_modnode(id) Set ids modnode. - set_ids_modnode(id) - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) + set_imagebase(base) Set image base address. - set_imagebase(base) - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) set_item_color(ea, color) - @param ea (C++: ea_t) - @param color (C++: bgcolor_t) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) set_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_loader_format_name in module ida_nalt: set_loader_format_name(*args) + set_loader_format_name(name) Set file format name for loader modules. - set_loader_format_name(name) - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) set_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) set_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) set_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) + set_notcode(ea) Mark address so that it cannot be converted to instruction. - set_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) set_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) set_op_tinfo(ea, n, tif) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) + set_outfile_encoding_idx(idx) -> bool set encoding to be used when producing files - set_outfile_encoding_idx(idx) -> bool - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) set_refinfo_ex(ea, n, ri) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t *) + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) set_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_srcdbg_paths in module ida_nalt: set_srcdbg_paths(*args) + set_srcdbg_paths(paths) Set source debug paths. - set_srcdbg_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * Help on function set_srcdbg_undesired_paths in module ida_nalt: set_srcdbg_undesired_paths(*args) + set_srcdbg_undesired_paths(paths) Set user-closed source files. - set_srcdbg_undesired_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) set_str_type(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) set_switch_info(ea, _in) - @param ea (C++: ea_t) - in: switch_info_t const & + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) set_switch_parent(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) set_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) set_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) set_tinfo(ea, tif) -> bool - @param ea (C++: ea_t) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param tif: tinfo_t const * Help on function set_type_determined_by_hexrays in module ida_nalt: set_type_determined_by_hexrays(*args) set_type_determined_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_type_guessed_by_ida in module ida_nalt: set_type_guessed_by_ida(*args) set_type_guessed_by_ida(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) set_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) set_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) set_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) + set_visible_item(ea, visible) Change visibility of item at given ea. - set_visible_item(ea, visible) - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) set_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -70544,11 +68691,13 @@ class strpath_ids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array - | data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70560,15 +68709,19 @@ class strpath_ids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70583,7 +68736,7 @@ class strpath_ids_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -70619,13 +68772,13 @@ class strpath_t(__builtin__.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -70653,21 +68806,25 @@ class switch_info_t(__builtin__.object) | | _set_values_lowcase(self, *args) | _set_values_lowcase(self, values) - | values: ea_t + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) | assign(self, other) - | other: switch_info_t const & + | + | @param other: switch_info_t const & | | clear(self, *args) | clear(self) | | get_jrange_vrange(self, *args) + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool | get separate parts of the switch | - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | @param jrange (C++: range_t *) - | @param vrange (C++: range_t *) + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) | get_jtable_element_size(self) -> int @@ -70679,7 +68836,8 @@ class switch_info_t(__builtin__.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) - | See 'SWI_SHIFT_MASK' . possible answers: 0..3. + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) | get_version(self) -> int @@ -70713,30 +68871,35 @@ class switch_info_t(__builtin__.object) | | set_elbase(self, *args) | set_elbase(self, base) - | @param base (C++: ea_t) + | + | @param base: ea_t | | set_expr(self, *args) | set_expr(self, r, dt) - | @param r (C++: int) - | @param dt (C++: op_dtype_t) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) | set_jtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_jtable_size(self, *args) | set_jtable_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_shift(self, *args) - | See 'SWI_SHIFT_MASK' . - | | set_shift(self, shift) - | @param shift (C++: int) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) | set_vtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | use_std_table(self, *args) | use_std_table(self) -> bool @@ -70751,46 +68914,46 @@ class switch_info_t(__builtin__.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -70810,963 +68973,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) switch_info_t__from_ptrval__(ptrval) -> switch_info_t - ptrval: size_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) unhide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) unhide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function upd_abits in module ida_nalt: upd_abits(*args) upd_abits(ea, clr_bits, set_bits) - @param ea (C++: ea_t) - @param clr_bits (C++: aflags_t) - @param set_bits (C++: aflags_t) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t Help on function uses_aflag_modsp in module ida_nalt: uses_aflag_modsp(*args) uses_aflag_modsp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) uses_modsp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) validate_idb_names(do_repair) -> int - do_repair: bool + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_HR_DETERMINED -""" -the type is definitely guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_DATA -""" -the data type is guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_FUNC -""" -the function type is guessed by the decompiler -""" - -ida_nalt.AFL_IDA_GUESSED -""" -the type is guessed by IDA -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ); used only for addresses, not for -'member_t' -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_TYPE_GUESSED -""" -who guessed the type information? -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -the type information is definitive. (comes from the user or type -library) if not set see 'AFL_TYPE_GUESSED' -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference. see 'custom_refinfo_handler_t' . the id of the -custom refinfo is stored under the REFINFO_TYPE mask. -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference ID if REFINFO_CUSTOM set - -reference type (reftype_t), or custom -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -otherwise lowcase present - -sparse switch (value table present) -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_USER -""" -user specified switch (starting from version 2) -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(__builtin__.object) @@ -71802,22 +69062,20 @@ class NearestName(__builtin__.object) Help on function append_struct_fields in module ida_name: append_struct_fields(*args) + append_struct_fields(disp, n, path, flags, delta, appzero) -> str Append names of struct fields to a name if the name is a struct name. - append_struct_fields(disp, n, path, flags, delta, appzero) -> str - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -71833,41 +69091,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) cleanup_name(ea, name, flags=0) -> str - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: uint32) + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) del_debug_names(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) del_global_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) del_local_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str Demangle a name. - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -71878,8 +69137,10 @@ class ea_name_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | _ea: ea_t - | _name: qstring const & + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -71893,10 +69154,10 @@ class ea_name_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -71916,11 +69177,14 @@ class ea_name_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> ea_name_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | x: qvector< ea_name_t > const & + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71932,19 +69196,20 @@ class ea_name_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ea_name_t const & + | + | @param i: size_t + | @param v: ea_name_t const & | | at(self, *args) | at(self, _idx) -> ea_name_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) | capacity(self) -> size_t @@ -71957,16 +69222,16 @@ class ea_name_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) | erase(self, it) -> ea_name_t - | it: qvector< ea_name_t >::iterator | + | @param it: qvector< ea_name_t >::iterator | | erase(self, first, last) -> ea_name_t - | first: qvector< ea_name_t >::iterator - | last: qvector< ea_name_t >::iterator + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) | extract(self) -> ea_name_t @@ -71976,47 +69241,56 @@ class ea_name_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=ea_name_t()) - | x: ea_name_t const & + | + | @param x: ea_name_t const & | | inject(self, *args) | inject(self, s, len) - | s: ea_name_t * - | len: size_t + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ea_name_t - | it: qvector< ea_name_t >::iterator - | x: ea_name_t const & + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ea_name_t const & + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ea_name_t const & | + | @param _newsize: size_t + | @param x: ea_name_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ea_name_t > & + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) | truncate(self) @@ -72042,760 +69316,582 @@ class ea_name_vec_t(__builtin__.object) Help on function extract_name in module ida_name: extract_name(*args) + extract_name(line, x) -> str Extract a name or address from the specified string. - extract_name(line, x) -> str - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) force_name(ea, name, flags=0) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: int) + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) get_colored_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) get_colored_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) get_colored_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) get_debug_name(ea_ptr, how) -> str - @param ea_ptr (C++: ea_t *) - @param how (C++: debug_name_how_t) + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) get_debug_name_ea(name) -> ea_t - @param name (C++: const char *) + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) get_debug_names(names, ea1, ea2) - @param names (C++: ea_name_vec_t *) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - return_list: bool + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) + get_ea_name(ea, gtn_flags=0) -> qstring Get name at the specified address. - get_ea_name(ea, gtn_flags=0) -> qstring - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success Help on function get_long_name in module ida_name: get_long_name(*args) get_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_mangled_name_type in module ida_name: get_mangled_name_type(*args) get_mangled_name_type(name) -> mangled_name_type_t - name: char const * + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) get_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) + get_name_base_ea(_from, to) -> ea_t Get address of the name used in the expression for the address - get_name_base_ea(_from, to) -> ea_t - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) - Calculate flags for 'get_ea_name()' function. + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. Get name color. - get_name_color(_from, ea) -> color_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - get_name_value(_from, name) -> int - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - get_nice_colored_name(ea, flags=0) -> str - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) + get_nlist_ea(idx) -> ea_t Get address from the list at 'idx'. - get_nlist_ea(idx) -> ea_t - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) - Get index of the name in the listreturns the closest match. may return - idx >= size. - get_nlist_idx(ea) -> size_t - @param ea (C++: ea_t) + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) + get_nlist_name(idx) -> char const * Get name using idx. - get_nlist_name(idx) -> char const * - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) + get_nlist_size() -> size_t Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) get_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) get_visible_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) + hide_name(ea) Remove name from the list of names - hide_name(ea) - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) + is_ident(name) -> bool Is a valid name? (including ::MangleChars) - is_ident(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - is_ident_cp(cp) -> bool - @param cp (C++: wchar32_t) + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) + is_in_nlist(ea) -> bool Is the name included into the name list? - is_in_nlist(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool Is the name defined locally in the specified function? - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) is_public_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - is_strlit_cp(cp, specific_ranges=None) -> bool - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) + is_uname(name) -> bool Is valid user-specified name? (valid name & !dummy prefix). - is_uname(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) + is_valid_cp(cp, kind, data=None) -> bool Is the given codepoint acceptable in the given context? - is_valid_cp(cp, kind, data=None) -> bool - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) + is_valid_typename(name) -> bool Is valid type name? - is_valid_typename(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) + is_visible_cp(cp) -> bool Can a character be displayed in a name? (present in ::NameChars) - is_visible_cp(cp) -> bool - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) is_weak_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) make_name_auto(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) make_name_non_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) make_name_non_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) make_name_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) make_name_user(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) make_name_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) + rebuild_nlist() Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) + reorder_dummy_names() Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) set_debug_name(ea, name) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - set_dummy_name(_from, ea) -> bool - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - @retval: 1 - ok, dummy name is generated or the byte already had a - name - @retval: 0 - failure, invalid address or tail byte + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - set_name(ea, name, flags=0) -> bool - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, - non-auto. (C++: int) - @retval: 1 - ok, name is changed - @retval: 0 - failure, a warning is displayed + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) + show_name(ea) Insert name to the list of names. - show_name(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - validate_name(name, type, flags=0) -> PyObject * - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? +(Namely, Btree). To learn more about Balanced Trees: +\link{http://www.bluerwhite.org/btree/} -meaningful only if the name refers to a structure. -""" +We don't use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Usually there is a trivial mapping +of the linear addresses used in the program to netnodes. If we have additional +information about an address (a comment is attached to it, for example), this +information is stored in the corresponding netnode. See nalt.hpp to see how the +kernel uses netnodes. Also, some netnodes have no corresponding linear address +(however, they still have an id). They are used to store information not related +to a particular address. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblog/getblob and other blob-related functions. -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +Advanced info: -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) exist(n) -> bool - n: netnode const & + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -72806,570 +69902,813 @@ class netnode(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __eq__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __init__(self, *args) | __init__(self, num=nodeidx_t(-1)) -> netnode - | num: nodeidx_t | + | @param num: nodeidx_t | | __init__(self, _name, namlen=0, do_create=False) -> netnode - | _name: char const * - | namlen: size_t - | do_create: bool + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __ne__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | | altdel(self, *args) | altdel(self, alt, tag=atag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool | | altdel_all(self, *args) | altdel_all(self, tag=atag) -> bool - | tag: uchar + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) | altdel_ea(self, ea, tag=atag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) | altdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) | altfirst(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) | altfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altlast(self, *args) | altlast(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) | altlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altnext(self, *args) | altnext(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) | altnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) | altprev(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) | altprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) | altset(self, alt, value, tag=atag) -> bool - | alt: nodeidx_t - | value: nodeidx_t - | tag: uchar + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) | altset_ea(self, ea, value, tag=atag) -> bool - | ea: ea_t - | value: nodeidx_t - | tag: uchar + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) | altset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: nodeidx_t - | tag: uchar + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) | altshift(self, _from, to, size, tag=atag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) | altval(self, alt, tag=atag) -> nodeidx_t - | alt: nodeidx_t - | tag: uchar + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) | altval_ea(self, ea, tag=atag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) | altval_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) | blobsize(self, _start, tag) -> size_t - | _start: nodeidx_t - | tag: uchar + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) | blobsize_ea(self, ea, tag) -> size_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) | chardel(self, alt, tag) -> bool - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) | chardel_ea(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) | chardel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) | charfirst(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charfirst_idx8(self, *args) | charfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast(self, *args) | charlast(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast_idx8(self, *args) | charlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charnext(self, *args) | charnext(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) | charnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) | charprev(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) | charprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) | charset(self, alt, val, tag) -> bool - | alt: nodeidx_t - | val: uchar - | tag: uchar + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) | charset_ea(self, ea, val, tag) -> bool - | ea: ea_t - | val: uchar - | tag: uchar + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) | charset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: uchar - | tag: uchar + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) | charshift(self, _from, to, size, tag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) | charval(self, alt, tag) -> uchar - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) | charval_ea(self, ea, tag) -> uchar - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) | charval_idx8(self, alt, tag) -> uchar - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) | copyto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) | create(self, _name, namlen=0) -> bool - | _name: char const * - | namlen: size_t + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool | | delblob(self, *args) | delblob(self, _start, tag) -> int - | _start: nodeidx_t - | tag: uchar + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) | delblob_ea(self, ea, tag) -> int - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) | eadel(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) | eadel_idx8(self, idx, tag) -> bool - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) | eaget(self, ea, tag) -> ea_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) | eaget_idx(self, idx, tag) -> ea_t - | idx: nodeidx_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) | eaget_idx8(self, idx, tag) -> ea_t - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) | easet(self, ea, addr, tag) -> bool - | ea: ea_t - | addr: ea_t - | tag: uchar + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) | easet_idx(self, idx, addr, tag) -> bool - | idx: nodeidx_t - | addr: ea_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) | easet_idx8(self, idx, addr, tag) -> bool - | idx: uchar - | addr: ea_t - | tag: uchar + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) - | getblob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) | getblob_ea(self, ea, tag) -> PyObject * - | ea: ea_t - | tag: char + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) - | getclob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) | hashdel(self, idx, tag=htag) -> bool - | idx: char const * - | tag: uchar + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) | hashdel_all(self, tag=htag) -> bool - | tag: uchar + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) | hashfirst(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) | hashlast(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) | hashnext(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) | hashprev(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) | hashset(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: void const * - | tag: uchar + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) | hashset_buf(self, idx, py_str, tag=htag) -> bool - | idx: char const * - | py_str: PyObject * - | tag: char + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) | hashset_idx(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: nodeidx_t - | tag: uchar + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) | hashstr(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) | hashstr_buf(self, idx, tag=htag) -> PyObject * - | idx: char const * - | tag: char + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) | hashval(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) | hashval_long(self, idx, tag=htag) -> nodeidx_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) | index(self) -> nodeidx_t | | kill(self, *args) | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) | long_value(self) -> nodeidx_t | | lower_bound(self, *args) | lower_bound(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) | moveto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) | rename(self, newname, namlen=0) -> bool - | newname: char const * - | namlen: size_t + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) | set(self, value) -> bool - | value: void const * + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) | set_long(self, x) -> bool - | x: nodeidx_t + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) | setblob(self, buf, _start, tag) -> bool - | buf: void const * - | _start: nodeidx_t - | tag: uchar + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) | setblob_ea(self, buf, ea, tag) -> bool - | buf: void const * - | ea: ea_t - | tag: uchar + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) | supdel(self, alt, tag=stag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool | | supdel_all(self, *args) | supdel_all(self, tag) -> bool - | tag: uchar + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) | supdel_ea(self, ea, tag=stag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) | supdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) | supdel_range(self, idx1, idx2, tag) -> int - | idx1: nodeidx_t - | idx2: nodeidx_t - | tag: uchar + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) | supdel_range_idx8(self, idx1, idx2, tag) -> int - | idx1: uchar - | idx2: uchar - | tag: uchar + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) | supfirst(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) | supfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | suplast(self, *args) | suplast(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) | suplast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | supnext(self, *args) | supnext(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) | supnext_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) | supprev(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) | supprev_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: void const * - | tag: uchar + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: void const * - | tag: uchar + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) | supset_idx8(self, alt, value, tag) -> bool - | alt: uchar - | value: void const * - | tag: uchar + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) | supshift(self, _from, to, size, tag=stag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) | supstr(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) | supstr_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) | supstr_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) | supval(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) | supval_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) | supval_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) | value_exists(self) -> bool @@ -73379,7 +70718,9 @@ class netnode(__builtin__.object) | | exist(*args) | exist(_name) -> bool - | _name: char const * + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73403,224 +70744,254 @@ Help on function netnode_exist in module ida_netnode: netnode_exist(*args) netnode_exist(_name) -> bool - _name: char const * + + @param _name: char const * -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - @param insn: the referencing instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) + calc_basevalue(target, base) -> ea_t Calculate the value of the reference base. - calc_basevalue(target, base) -> ea_t - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - calc_offset_base(ea, n) -> ea_t - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - calc_probable_base_by_value(ea, off) -> ea_t - @param ea (C++: ea_t) - @param off (C++: uval_t) + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - calc_reference_data(target, base, _from, ri, opval) -> bool - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success Help on function calc_target in module ida_offset: calc_target(*args) - Calculates the target, using the provided 'refinfo_t' . - calc_target(_from, opval, ri) -> ea_t - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + Retrieves refinfo_t structure and calculates the target. + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & calc_target(_from, ea, n, opval) -> ea_t - @param _from (C++: ea_t) - ea: ea_t - n: int - @param opval (C++: adiff_t) + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - can_be_off32(ea) -> ea_t - @param ea (C++: ea_t) + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) + get_default_reftype(ea) -> reftype_t Get default reference type depending on the segment. - get_default_reftype(ea) -> reftype_t - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) + get_offbase(ea, n) -> ea_t Get offset base value - get_offbase(ea, n) -> ea_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) - See 'get_offset_expression()' - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - @retval: 0 - can't convert to offset expression - @retval: 1 - ok, a simple offset expression - @retval: 2 - ok, a complex offset expression + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: op_offset(*args) - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: op_offset_ex(*args) - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - op_offset_ex(ea, n, ri) -> bool - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) + op_plain_offset(ea, n, base) -> bool Convert operand to a reference with the default reference type. - op_plain_offset(ea, n, base) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -73819,15 +71190,19 @@ class boolvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bool const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | x: qvector< bool > const & + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73836,22 +71211,28 @@ class boolvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bool const & + | + | @param i: size_t + | @param v: bool const & | | _del(self, *args) | _del(self, x) -> bool - | x: bool const & + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | append = push_back(self, *args) | @@ -73879,74 +71260,86 @@ class boolvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< bool >::iterator - | it: qvector< bool >::iterator | + | @param it: qvector< bool >::iterator | | erase(self, first, last) -> qvector< bool >::iterator - | first: qvector< bool >::iterator - | last: qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) | extract(self) -> bool * | | find(self, *args) | find(self, x) -> qvector< bool >::iterator - | x: bool const & | + | @param x: bool const & | | find(self, x) -> qvector< bool >::const_iterator - | x: bool const & + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bool()) - | x: bool const & + | + | @param x: bool const & | | has(self, *args) | has(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | inject(self, *args) | inject(self, s, len) - | s: bool * - | len: size_t + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< bool >::iterator - | it: qvector< bool >::iterator - | x: bool const & + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bool const & + | + | @param x: bool const & + | + | push_back(self) -> bool & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bool const & | + | @param _newsize: size_t + | @param x: bool const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bool > & + | + | @param r: qvector< bool > & | | truncate(self, *args) | truncate(self) @@ -74003,19 +71396,19 @@ class channel_redir_t(__builtin__.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -74029,28 +71422,29 @@ class channel_redir_t(__builtin__.object) Help on function check_process_exit in module ida_pro: check_process_exit(*args) + check_process_exit(handle, exit_code, msecs=-1) -> int Check whether process has terminated or not. - check_process_exit(handle, exit_code, msecs=-1) -> int - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - msecs: int - @retval: 0 - process has exited, and the exit code is available. if - *exit_code < 0: the process was killed with a signal - -*exit_code - @retval: 1 - process has not exited yet - @retval: -1 - error happened, see error code for winerr() in - *exit_code + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on function clear_bits in module ida_pro: clear_bits(*args) + clear_bits(bitmap, low, high) Clear bits between [low, high) in 'bitmap'. - clear_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class ea_array in module ida_pro: @@ -74061,18 +71455,21 @@ class ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> ea_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: ea_t + | + | @param index: size_t + | @param value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -74082,7 +71479,8 @@ class ea_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_array - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74106,7 +71504,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) ea_array_frompointer(t) -> ea_array - t: ea_t * + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -74122,7 +71521,8 @@ class ea_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: ea_t + | + | @param value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -74135,7 +71535,8 @@ class ea_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_pointer - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74159,18 +71560,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) ea_pointer_frompointer(t) -> ea_pointer - t: ea_t * + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - extend_sign(v, nbytes, sign_extend) -> uint64 - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -74194,28 +71596,28 @@ class instant_dbgopts_t(__builtin__.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag @@ -74235,15 +71637,19 @@ class longlongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | x: qvector< long long > const & + | __init__(self, x) -> longlongvec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -74252,22 +71658,28 @@ class longlongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: long long const & + | + | @param i: size_t + | @param v: long long const & | | _del(self, *args) | _del(self, x) -> bool - | x: long long const & + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | append = push_back(self, *args) | @@ -74295,70 +71707,81 @@ class longlongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< long long >::iterator - | it: qvector< long long >::iterator | + | @param it: qvector< long long >::iterator | | erase(self, first, last) -> qvector< long long >::iterator - | first: qvector< long long >::iterator - | last: qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) | extract(self) -> long long * | | find(self, *args) | find(self, x) -> qvector< long long >::iterator - | x: long long const & | + | @param x: long long const & | | find(self, x) -> qvector< long long >::const_iterator - | x: long long const & + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | inject(self, *args) | inject(self, s, len) - | s: long long * - | len: size_t + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< long long >::iterator - | it: qvector< long long >::iterator - | x: long long const & + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: long long const & + | + | @param x: long long const & + | + | push_back(self) -> long long & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: long long const & | + | @param _newsize: size_t + | @param x: long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< long long > & + | + | @param r: qvector< long long > & | | truncate(self, *args) | truncate(self) @@ -74395,7 +71818,8 @@ class int_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: int + | + | @param value: int | | cast(self, *args) | cast(self) -> int * @@ -74408,7 +71832,8 @@ class int_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> int_pointer - | t: int * + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74432,7 +71857,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) int_pointer_frompointer(t) -> int_pointer - t: int * + + @param t: int * Help on class intvec_t in module ida_pro: @@ -74443,15 +71869,19 @@ class intvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | x: qvector< int > const & + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -74460,22 +71890,28 @@ class intvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) | @@ -74503,70 +71939,81 @@ class intvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -74592,69 +72039,73 @@ class intvec_t(__builtin__.object) Help on function is_control_tty in module ida_pro: is_control_tty(*args) + is_control_tty(fd) -> enum tty_control_t Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - is_control_tty(fd) -> enum tty_control_t - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) + is_main_thread() -> bool Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - log2ceil(d64) -> int - @param d64 (C++: uint64) + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) log2floor(d64) -> int - @param d64 (C++: uint64) + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - parse_dbgopts(ido, r_switch) -> bool - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) qatoll(nptr) -> int64 - @param nptr (C++: const char *) + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -74665,7 +72116,8 @@ class qmutex_locker_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t - | _lock: qmutex_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -74699,9 +72151,10 @@ class qrefcnt_obj_t(__builtin__.object) | __repr__ = _swig_repr(self) | | release(self, *args) - | Call destructor. We use 'release()' instead of operator delete() to - | maintain binary compatibility with all compilers (vc and gcc use - | different vtable layouts for operator delete) + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74713,7 +72166,7 @@ class qrefcnt_obj_t(__builtin__.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -74728,29 +72181,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) qstrvec_t_add(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) qstrvec_t_addressof(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) qstrvec_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) qstrvec_t_clear(_self, qclear) -> bool - self: PyObject * - qclear: bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -74761,123 +72218,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) qstrvec_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) qstrvec_t_from_list(_self, py_list) -> bool - self: PyObject * - py_list: PyObject * + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) qstrvec_t_get(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) qstrvec_t_get_clink(_self) -> qstrvec_t * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) qstrvec_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) qstrvec_t_insert(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) qstrvec_t_remove(_self, idx) -> bool - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) qstrvec_t_set(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) qstrvec_t_size(_self) -> size_t - self: PyObject * + + @param self: PyObject * Help on function qthread_equal in module ida_pro: qthread_equal(*args) + qthread_equal(q1, q2) -> bool Are two threads equal? - qthread_equal(q1, q2) -> bool - @param q1 (C++: qthread_t) - @param q2 (C++: qthread_t) + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - quote_cmdline_arg(arg) -> bool - @param arg (C++: qstring *) - @return: true: modified 'arg' + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) + qvector_reserve(vec, old, cnt, elsize) -> void * Change capacity of given qvector. - qvector_reserve(vec, old, cnt, elsize) -> void * - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) + readbytes(h, res, size, mf) -> int Read at most 4 bytes from file. - readbytes(h, res, size, mf) -> int - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) reloc_value(value, size, delta, mf) - @param value (C++: void *) - @param size (C++: int) - @param delta (C++: adiff_t) - @param mf (C++: bool) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) relocate_relobj(_relobj, ea, mf) -> bool - @param _relobj (C++: struct relobj_t *) - @param ea (C++: ea_t) - @param mf (C++: bool) + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -74888,18 +72356,21 @@ class sel_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> sel_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: sel_t + | + | @param index: size_t + | @param value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -74909,7 +72380,8 @@ class sel_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_array - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74933,7 +72405,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) sel_array_frompointer(t) -> sel_array - t: sel_t * + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -74949,7 +72422,8 @@ class sel_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: sel_t + | + | @param value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -74962,7 +72436,8 @@ class sel_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_pointer - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74986,17 +72461,18 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) sel_pointer_frompointer(t) -> sel_pointer - t: sel_t * + + @param t: sel_t * Help on function set_bits in module ida_pro: set_bits(*args) + set_bits(bitmap, low, high) Set bits between [low, high) in 'bitmap'. - set_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -75007,15 +72483,19 @@ class sizevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> size_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | x: qvector< size_t > const & + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75025,26 +72505,33 @@ class sizevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: size_t const & + | + | @param i: size_t + | @param v: size_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: size_t const & + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | at(self, *args) | at(self, _idx) -> size_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -75068,74 +72555,86 @@ class sizevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator | + | @param it: qvector< size_t >::iterator | | erase(self, first, last) -> qvector< size_t >::iterator - | first: qvector< size_t >::iterator - | last: qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) | extract(self) -> size_t * | | find(self, *args) | find(self, x) -> qvector< size_t >::iterator - | x: size_t const & | + | @param x: size_t const & | | find(self, x) -> qvector< size_t >::const_iterator - | x: size_t const & + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=size_t()) - | x: size_t const & + | + | @param x: size_t const & | | has(self, *args) | has(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | inject(self, *args) | inject(self, s, len) - | s: size_t * - | len: size_t + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator - | x: size_t const & + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: size_t const & + | + | @param x: size_t const & + | + | push_back(self) -> size_t & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: size_t const & | + | @param _newsize: size_t + | @param x: size_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< size_t > & + | + | @param r: qvector< size_t > & | | truncate(self, *args) | truncate(self) @@ -75161,9 +72660,10 @@ class sizevec_t(__builtin__.object) Help on function str2user in module ida_pro: str2user(*args) - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -75175,11 +72675,14 @@ class strvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> simpleline_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | x: qvector< simpleline_t > const & + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75190,8 +72693,9 @@ class strvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: simpleline_t const & + | + | @param i: size_t + | @param v: simpleline_t const & | | append = push_back(self, *args) | @@ -75219,12 +72723,13 @@ class strvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator | + | @param it: qvector< simpleline_t >::iterator | | erase(self, first, last) -> qvector< simpleline_t >::iterator - | first: qvector< simpleline_t >::iterator - | last: qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) | extract(self) -> simpleline_t * @@ -75234,47 +72739,56 @@ class strvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=simpleline_t()) - | x: simpleline_t const & + | + | @param x: simpleline_t const & | | inject(self, *args) | inject(self, s, len) - | s: simpleline_t * - | len: size_t + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator - | x: simpleline_t const & + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: simpleline_t const & + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: simpleline_t const & | + | @param _newsize: size_t + | @param x: simpleline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< simpleline_t > & + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) | truncate(self) @@ -75311,7 +72825,8 @@ class sval_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: sval_t + | + | @param value: sval_t | | cast(self, *args) | cast(self) -> sval_t * @@ -75324,7 +72839,8 @@ class sval_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sval_pointer - | t: sval_t * + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75348,7 +72864,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) sval_pointer_frompointer(t) -> sval_pointer - t: sval_t * + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -75359,18 +72876,21 @@ class tid_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> tid_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: tid_t + | + | @param index: size_t + | @param value: tid_t | | cast(self, *args) | cast(self) -> tid_t * @@ -75380,7 +72900,8 @@ class tid_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> tid_array - | t: tid_t * + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75404,7 +72925,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) tid_array_frompointer(t) -> tid_array - t: tid_t * + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -75415,18 +72937,21 @@ class uchar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uchar - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: uchar + | + | @param index: size_t + | @param value: uchar | | cast(self, *args) | cast(self) -> uchar * @@ -75436,7 +72961,8 @@ class uchar_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uchar_array - | t: uchar * + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75460,7 +72986,8 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) uchar_array_frompointer(t) -> uchar_array - t: uchar * + + @param t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -75471,15 +72998,19 @@ class ulonglongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | x: qvector< unsigned long long > const & + | __init__(self, x) -> ulonglongvec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75488,22 +73019,28 @@ class ulonglongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned long long const & + | + | @param i: size_t + | @param v: unsigned long long const & | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned long long const & + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | append = push_back(self, *args) | @@ -75531,70 +73068,81 @@ class ulonglongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator | + | @param it: qvector< unsigned long long >::iterator | | erase(self, first, last) -> qvector< unsigned long long >::iterator - | first: qvector< unsigned long long >::iterator - | last: qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) | extract(self) -> unsigned long long * | | find(self, *args) | find(self, x) -> qvector< unsigned long long >::iterator - | x: unsigned long long const & | + | @param x: unsigned long long const & | | find(self, x) -> qvector< unsigned long long >::const_iterator - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | inject(self, *args) | inject(self, s, len) - | s: unsigned long long * - | len: size_t + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator - | x: unsigned long long const & + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned long long const & + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned long long const & | + | @param _newsize: size_t + | @param x: unsigned long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned long long > & + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) | truncate(self) @@ -75626,15 +73174,19 @@ class uintvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | x: qvector< unsigned int > const & + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75643,22 +73195,28 @@ class uintvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned int const & + | + | @param i: size_t + | @param v: unsigned int const & | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned int const & + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | append = push_back(self, *args) | @@ -75686,70 +73244,81 @@ class uintvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator | + | @param it: qvector< unsigned int >::iterator | | erase(self, first, last) -> qvector< unsigned int >::iterator - | first: qvector< unsigned int >::iterator - | last: qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) | extract(self) -> unsigned int * | | find(self, *args) | find(self, x) -> qvector< unsigned int >::iterator - | x: unsigned int const & | + | @param x: unsigned int const & | | find(self, x) -> qvector< unsigned int >::const_iterator - | x: unsigned int const & + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | inject(self, *args) | inject(self, s, len) - | s: unsigned int * - | len: size_t + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator - | x: unsigned int const & + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned int const & + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned int const & | + | @param _newsize: size_t + | @param x: unsigned int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned int > & + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) | truncate(self) @@ -75781,18 +73350,21 @@ class uval_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uval_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: uval_t + | + | @param index: size_t + | @param value: uval_t | | cast(self, *args) | cast(self) -> uval_t * @@ -75802,7 +73374,8 @@ class uval_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uval_array - | t: uval_t * + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75826,142 +73399,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) uval_array_frompointer(t) -> uval_array - t: uval_t * + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) + writebytes(h, l, size, mf) -> int Write at most 4 bytes to file. - writebytes(h, l, size, mf) -> int - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.6. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) + forget_problem(type, ea) -> bool Remove an address from a problem list - forget_problem(type, ea) -> bool - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success Help on function get_problem in module ida_problems: get_problem(*args) - Get an address from the specified problem list. The address is not - removed from the list. - get_problem(type, lowea) -> ea_t - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) - Get the human-friendly description of the problem, if one was provided - to remember_problem. - get_problem_desc(t, ea) -> str - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) + get_problem_name(type, longname=True) -> char const * Get problem list description. - get_problem_name(type, longname=True) -> char const * - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) + is_problem_present(t, ea) -> bool Check if the specified address is present in the problem list. - is_problem_present(t, ea) -> bool - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - remember_problem(type, ea, msg=None) - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) was_ida_decision(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -75972,15 +73517,19 @@ class array_of_rangesets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rangeset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | x: qvector< rangeset_t > const & + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75990,33 +73539,39 @@ class array_of_rangesets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: rangeset_t const & + | + | @param i: size_t + | @param v: rangeset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: rangeset_t const & + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | at(self, *args) | at(self, _idx) -> rangeset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76029,78 +73584,85 @@ class array_of_rangesets(__builtin__.object) | | end(self, *args) | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) | erase(self, it) -> rangeset_t - | it: qvector< rangeset_t >::iterator | + | @param it: qvector< rangeset_t >::iterator | | erase(self, first, last) -> rangeset_t - | first: qvector< rangeset_t >::iterator - | last: qvector< rangeset_t >::iterator + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) | extract(self) -> rangeset_t | | find(self, *args) | find(self, x) -> rangeset_t - | x: rangeset_t const & | - | - | find(self, x) -> rangeset_t - | x: rangeset_t const & + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rangeset_t()) - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | has(self, *args) | has(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | inject(self, *args) | inject(self, s, len) - | s: rangeset_t * - | len: size_t + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> rangeset_t - | it: qvector< rangeset_t >::iterator - | x: rangeset_t const & + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: rangeset_t const & + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: rangeset_t const & | + | @param _newsize: size_t + | @param x: rangeset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< rangeset_t > & + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) | truncate(self) @@ -76132,24 +73694,30 @@ class range_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | ea1: ea_t - | ea2: ea_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -76157,48 +73725,50 @@ class range_t(__builtin__.object) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76212,12 +73782,12 @@ class range_t(__builtin__.object) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -76231,10 +73801,10 @@ class range_t(__builtin__.object) Help on function range_t_print in module ida_range: range_t_print(*args) + range_t_print(cb) -> str Helper function. Should not be called directly! - range_t_print(cb) -> str - cb: range_t const * + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -76245,17 +73815,20 @@ class rangeset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | range: range_t const & + | __init__(self, range) -> rangeset_t | + | @param range: range_t const & | | __init__(self, ivs) -> rangeset_t - | ivs: rangeset_t const & + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76264,7 +73837,8 @@ class rangeset_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -76272,160 +73846,157 @@ class rangeset_t(__builtin__.object) | _print(self) -> size_t | | add(self, *args) - | Add an address range to the set. If 'range' intersects an existing - | element e, then e is extended to include 'range', and any superfluous - | elements (subsets of e) are removed. - | | add(self, range) -> bool - | @param range: address range to add. cannot be empty (C++: const - | range_t &) - | @return: false if no elements were added (the set was unchanged) + | Add each element of 'aset' to the set. | + | @param range: range_t const & | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool - | start: ea_t - | _end: ea_t - | @return: false if no elements were added (the set was unchanged) | + | @param start: ea_t + | @param _end: ea_t | | add(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if no elements were added (the set was unchanged) + | + | @param aset: rangeset_t const & | | begin(self, *args) + | begin(self) -> range_t | Get an iterator that points to the first element in the set. | | cached_range(self, *args) - | When searching the rangeset, we keep a cached element to help speed up - | searches. + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) - | Delete all elements from the set. See 'qvector::clear()' + | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) - | Does an element of the rangeset contain 'ea'? See - | range_t::contains(ea_t) - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) | + | @param ea: ea_t | | contains(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | empty(self, *args) + | empty(self) -> bool | Does the set have zero elements. | | end(self, *args) - | Get an iterator that points to the end of the set. (This is NOT the - | last element) + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) + | find_range(self, ea) -> range_t | Get the element from the set that contains 'ea'. | - | find_range(self, ea) -> range_t - | @param ea (C++: ea_t) - | @return: NULL if there is no such element + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) - | Get the 'range_t' at index 'idx'. - | | getrange(self, idx) -> range_t - | @param idx (C++: int) + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) - | Is there an ea in 'range' that is also in the rangeset? - | | has_common(self, range) -> bool - | @param range (C++: const range_t &) + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() | + | @param range: range_t const & | | has_common(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | includes(self, *args) + | includes(self, range) -> bool | Is every ea in 'range' contained in the rangeset? | - | includes(self, range) -> bool - | @param range (C++: const range_t &) + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) + | intersect(self, aset) -> bool | Set the rangeset to its intersection with 'aset'. | - | intersect(self, aset) -> bool - | @param aset (C++: const rangeset_t &) - | @return: false if the set was unchanged + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) + | is_equal(self, aset) -> bool | Do this rangeset and 'aset' have identical elements? | - | is_equal(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) + | is_subset_of(self, aset) -> bool | Is every element in the rangeset contained in an element of 'aset'? | - | is_subset_of(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) - | Get the last 'range_t' in the set. + | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) - | Get the smallest ea_t value greater than 'ea' contained in the - | rangeset. - | | next_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) - | Get the smallest ea_t value greater than 'ea' that is not in the same - | range as 'ea'. - | | next_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) - | Get the number of 'range_t' elements in the set. + | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) + | prev_addr(self, ea) -> ea_t | Get the largest ea_t value less than 'ea' contained in the rangeset. | - | prev_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | prev_range(self, *args) - | Get the largest ea_t value less than 'ea' that is not in the same - | range as 'ea'. - | | prev_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) - | Subtract an address range from the set. All subsets of 'range' will be - | removed, and all elements that intersect 'range' will be - | truncated/split so they do not include 'range'. - | | sub(self, range) -> bool - | @param range: address range to subtract. cannot be empty. (C++: const - | range_t &) - | @return: false if nothing was subtracted (the set was unchanged) + | Subtract each range in 'aset' from the set | + | @param range: range_t const & | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool - | ea: ea_t - | @return: false if nothing was subtracted (the set was unchanged) | + | @param ea: ea_t | | sub(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if nothing was subtracted (the set was unchanged) + | + | @param aset: rangeset_t const & | | swap(self, *args) - | Set this = 'r' and 'r' = this. See 'qvector::swap()' - | | swap(self, r) - | @param r (C++: rangeset_t &) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76454,15 +74025,19 @@ class rangevec_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | x: qvector< range_t > const & + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76472,33 +74047,39 @@ class rangevec_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76511,78 +74092,85 @@ class rangevec_base_t(__builtin__.object) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -76639,11 +74227,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76653,31 +74243,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76690,78 +74286,85 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -76775,50 +74378,63 @@ class rangevec_t(rangevec_base_t) | __weakref__ | list of weak references to the object (if defined) +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) + reg_data_type(name, subkey=None) -> regval_type_t Get data type of a given value. - reg_data_type(name, subkey=None) -> regval_type_t - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) + reg_delete(name, subkey=None) -> bool Delete a value from the registry. - reg_delete(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) + reg_delete_subkey(name) -> bool Delete a key from the registry. - reg_delete_subkey(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) + reg_delete_tree(name) -> bool Delete a subtree from the registry. - reg_delete_tree(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) + reg_exists(name, subkey=None) -> bool Is there already a value with the given name? - reg_exists(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -76833,759 +74449,718 @@ reg_load(*args) Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - reg_read_binary(name, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) + reg_read_bool(name, defval, subkey=None) -> bool Read boolean value from the registry. - reg_read_bool(name, defval, subkey=None) -> bool - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) + reg_read_int(name, defval, subkey=None) -> int Read integer value from the registry. - reg_read_int(name, defval, subkey=None) -> int - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - reg_read_string(name, subkey=None, _def=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - def: char const * - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - reg_read_strlist(subkey) - @param subkey (C++: const char *) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) + reg_subkey_exists(name) -> bool Is there already a key with the given name? - reg_subkey_exists(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - reg_subkey_subkeys(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - reg_subkey_values(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) Update list of strings associated with given key. - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * Write binary data to the registry. - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - py_bytes: PyObject * - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) + reg_write_bool(name, value, subkey=None) Write boolean value to the registry. - reg_write_bool(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) + reg_write_int(name, value, subkey=None) Write integer value to the registry. - reg_write_int(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) + reg_write_string(name, utf8, subkey=None) Write a string to the registry. - reg_write_string(name, utf8, subkey=None) - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) + find_error(ea, sflag) -> ea_t Find next error or problem. - find_error(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) + find_not_func(ea, sflag) -> ea_t Find next code address that does not belong to a function. - find_not_func(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) + find_notype(ea, sflag) -> ea_t Find next operand without any type info. - find_notype(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_reg_access in module ida_search: find_reg_access(*args) - Find access to a register.This function does not care about the - control flow and probes all instructions in the specified range, - starting from START_EA. Only direct references to registers are - detected. Function calls and system traps are ignored. - find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t - @param out: pointer to the output buffer. must be non-null. upon - success contains info about the found register. upon - failed search for a read access out->range contains the - info about the non-redefined parts of the register. (C++: - struct reg_access_t *) - @param start_ea: starting address (C++: ea_t) - @param end_ea: ending address. BADADDR means that the end limit is - missing. otherwise, if the search direction is - SEARCH_UP, END_EA must be lower than START_EA. (C++: - ea_t) - @param regname: the register to search for. (C++: const char *) - @param sflag: combination of Search flags bits. (C++: int) - @return: the found address. BADADDR if not found or error. + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) - See 'search()' - find_text(start_ea, y, x, ustr, sflag) -> ea_t - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) - Is the 'SEARCH_DOWN' bit set? - search_down(sflag) -> bool - @param sflag (C++: int) + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if the search was cancelled. +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DEF -""" -find_reg_access: search for a definition (write access) -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +(start address of segment - segment base linear address) -ida_search.SEARCH_NEXT -""" -skip the starting address when searching. this bit is useful only for -'search()' , 'bin_search2()' , 'find_reg_access()' . find_.. functions -skip the starting address automatically. -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -do not test if the user clicked cancel to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -do not display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (supported only for the text -search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" - -ida_search.SEARCH_USE -""" -find_reg_access: search for a use (read access) -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - add_segm(para, start, end, name, sclass, flags=0) -> bool - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @retval 1: ok + @retval 0: failed, a warning message is displayed + @param flags: (C++: int) Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - add_segm_ex(s, name, sclass, flags) -> bool - @param s: pointer to filled segment structure. segment - selector should have proper mapping (see - set_selector() ). if s.start_ea== BADADDR then - s.start_ea <- get_segm_base(&s) if s.end_ea== - BADADDR , then a segment up to the next segment will - be created (if the next segment doesn't exist, then - 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and - the new segment would overlap the next segment, - s.end_ea is adjusted properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) + add_segment_translation(segstart, mappedseg) -> bool Add segment translation. - add_segment_translation(segstart, mappedseg) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - allocate_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - change_segment_status(s, is_deb_segm) -> int - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) + del_segment_translations(segstart) Delete the translation list - del_segment_translations(segstart) - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) + find_free_selector() -> sel_t Find first unused selector. + + @return: a number >= 1 Help on function find_selector in module ida_segment: find_selector(*args) + find_selector(base) -> sel_t Find a selector that has mapping to the specified paragraph. - find_selector(base) -> sel_t - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) get_defsr(s, reg) -> sel_t - s: segment_t * - reg: int + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) + get_first_seg() -> segment_t Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) + get_group_selector(grpsel) -> sel_t Get common selector for a group of segments. - get_group_selector(grpsel) -> sel_t - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) + get_last_seg() -> segment_t Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) + get_next_seg(ea) -> segment_t Get pointer to the next segment. - get_next_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) + get_prev_seg(ea) -> segment_t Get pointer to the previous segment. - get_prev_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - get_segm_base(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - get_segm_by_name(name) -> segment_t - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - get_segm_by_sel(selector) -> segment_t - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) + get_segm_class(s) -> str Get segment class. Segment class is arbitrary text (max 8 characters). - get_segm_class(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) + get_segm_name(s, flags=0) -> str Get true segment name by pointer to segment. - get_segm_name(s, flags=0) -> str - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) + get_segm_num(ea) -> int Get number of segment by address. - get_segm_num(ea) -> int - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - get_segm_para(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) + get_segm_qty() -> int Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) + get_segment_alignment(align) -> char const * Get text representation of segment alignment code. - get_segment_alignment(align) -> char const * - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) + get_segment_cmt(s, repeatable) -> str Get segment comment. - get_segment_cmt(s, repeatable) -> str - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) + get_segment_combination(comb) -> char const * Get text representation of segment combination code. - get_segment_combination(comb) -> char const * - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) + get_segment_translations(transmap, segstart) -> ssize_t Get segment translation list. - get_segment_translations(transmap, segstart) -> ssize_t - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: get_selector_qty(*args) + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) + get_visible_segm_name(s) -> str Get segment name by pointer to segment. - get_visible_segm_name(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) - Get description of selector (0.. 'get_selector_qty()' -1) - getn_selector(n) -> bool - @param n (C++: int) + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - getnseg(n) -> segment_t - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) + getseg(ea) -> segment_t Get pointer to segment by linear address. - getseg(ea) -> segment_t - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - is_finally_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) + is_miniidb() -> bool Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) + is_segm_locked(segm) -> bool Is a segment pointer locked? - is_segm_locked(segm) -> bool - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - is_spec_ea(ea) -> bool - @param ea: linear address (C++: ea_t) + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - is_spec_segm(seg_type) -> bool - @param seg_type (C++: uchar) + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) - See 'SFL_HIDDEN' . - is_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_segm(segm, lock) - @param segm (C++: const segment_t *) - @param lock (C++: bool) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -77596,7 +75171,8 @@ class lock_segment(__builtin__.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment - | _segm: segment_t const * + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -77621,76 +75197,74 @@ class lock_segment(__builtin__.object) Help on function move_segm in module ida_segment: move_segm(*args) - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - move_segm(s, to, flags=0) -> int - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - move_segm_start(ea, newstart, mode) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) + segm_adjust_diff(s, delta) -> adiff_t Truncate and sign extend a delta depending on the segment. - segm_adjust_diff(s, delta) -> adiff_t - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) + segm_adjust_ea(s, ea) -> ea_t Truncate an address depending on the segment. - segm_adjust_ea(s, ea) -> ea_t - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) Help on class segment_t in module ida_segment: @@ -77710,9 +75284,11 @@ class segment_t(ida_range.range_t) | __repr__ = _swig_repr(self) | | abits(self, *args) + | abits(self) -> int | Get number of address bits. | | abytes(self, *args) + | abytes(self) -> int | Get number of address bytes. | | clr_comorg(self, *args) @@ -77725,12 +75301,15 @@ class segment_t(ida_range.range_t) | comorg(self) -> bool | | is_16bit(self, *args) + | is_16bit(self) -> bool | Is a 16-bit segment? | | is_32bit(self, *args) + | is_32bit(self) -> bool | Is a 32-bit segment? | | is_64bit(self, *args) + | is_64bit(self) -> bool | Is a 64-bit segment? | | is_header_segm(self, *args) @@ -77753,32 +75332,39 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) | set_debugger_segm(self, debseg) - | debseg: bool + | + | @param debseg: bool | | set_header_segm(self, *args) | set_header_segm(self, on) - | on: bool + | + | @param on: bool | | set_hidden_segtype(self, *args) | set_hidden_segtype(self, hide) - | hide: bool + | + | @param hide: bool | | set_loader_segm(self, *args) | set_loader_segm(self, ldrseg) - | ldrseg: bool + | + | @param ldrseg: bool | | set_ob_ok(self, *args) | set_ob_ok(self) | | set_visible_segm(self, *args) | set_visible_segm(self, visible) - | visible: bool + | + | @param visible: bool | | update(self, *args) - | Update segment information. You must call this function after - | modification of segment characteristics. Note that not all fields of - | segment structure may be modified directly, there are special - | functions to modify some fields. + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | | use64 = is_64bit(self, *args) | @@ -77786,49 +75372,49 @@ class segment_t(ida_range.range_t) | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | defsr | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -77841,66 +75427,72 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -77918,836 +75510,380 @@ class segment_t(ida_range.range_t) Help on function segtype in module ida_segment: segtype(*args) + segtype(ea) -> uchar Get segment type. - segtype(ea) -> uchar - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) + sel2ea(selector) -> ea_t Get mapping of a selector as a linear address. - sel2ea(selector) -> ea_t - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) + sel2para(selector) -> ea_t Get mapping of a selector. - sel2para(selector) -> ea_t - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) set_defsr(s, reg, value) - s: segment_t * - reg: int - value: sel_t + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) + set_group_selector(grp, sel) -> int Create a new group of segments (used OMF files). - set_group_selector(grp, sel) -> int - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - set_segm_addressing(s, bitness) -> bool - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) + set_segm_base(s, newbase) -> bool Internal function. - set_segm_base(s, newbase) -> bool - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) + set_segm_class(s, sclass, flags=0) -> int Set segment class. - set_segm_class(s, sclass, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is NULL or bad or segment is NULL + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + @param flags: (C++: int) Help on function set_segm_end in module ida_segment: set_segm_end(*args) - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_end(ea, newend, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - set_segm_name(s, name, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is bad or segment is NULL + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_start(ea, newstart, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) + set_segment_cmt(s, cmt, repeatable) Set segment comment. - set_segment_cmt(s, cmt, repeatable) - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) + set_segment_translations(segstart, transmap) -> bool Set new translation list. - set_segment_translations(segstart, transmap) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) - See 'SFL_HIDDEN' . - set_visible_segm(s, visible) - @param s (C++: segment_t *) - @param visible (C++: bool) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - setup_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - std_out_segm_footer(ctx, seg) - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function update_segm in module ida_segment: update_segm(*args) update_segm(s) -> bool - @param s (C++: segment_t *) + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" -'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new ranges of the created segment. -please note that the ranges that were already enabled before creating -the segment will not change their storage type. -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) Duplicate segment register ranges. - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - del_sreg_range(ea, rg) -> bool - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - get_prev_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - get_sreg(ea, rg) -> sel_t - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) + get_sreg_range(out, ea, rg) -> bool Get segment register range by linear address. - get_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) + get_sreg_range_num(ea, rg) -> int Get number of segment register range by address. - get_sreg_range_num(ea, rg) -> int - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) + get_sreg_ranges_qty(rg) -> size_t Get number of segment register ranges. - get_sreg_ranges_qty(rg) -> size_t - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) + getn_sreg_range(out, rg, n) -> bool Get segment register range by its number. - getn_sreg_range(out, rg, n) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) + set_default_dataseg(ds_sel) Set default value of DS register for all segments. - set_default_dataseg(ds_sel) - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) + set_default_sreg_value(sg, rg, value) -> bool Set default value of a segment register for a segment. - set_default_sreg_value(sg, rg, value) -> bool - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - set_sreg_at_next_code(ea1, ea2, rg, value) - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success Help on class sreg_range_t in module ida_segregs: @@ -78770,13 +75906,13 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -78789,66 +75925,72 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -78862,177 +76004,123 @@ class sreg_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto +Module "ida_srclang"s docstring: """ -the value is determined by IDA -""" - -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" - -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" - -ida_segregs.SR_user -""" -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === -Help on function generate_til_with_parser in module ida_srclang: - -generate_til_with_parser(*args) - Generate a standalone IDA type library from the given header file, - using the parser with the given name - - generate_til_with_parser(parser_name, tilname, tildesc, tildir, header) -> int - @param parser_name: name of the target parser (C++: const char *) - @param tilname: the name of the resulting type library (C++: const - char *) - @param tildesc: a short description of the TIL (C++: const char *) - @param tildir: directory where the TIL will be stored (C++: const char - *) - @param header: path to a header file (C++: const char *) - @retval: -1 - no parser was found with the given name - @retval: -2 - operation is not supported by the given parser - @retval: 0 - ok - @retval: else - an error occurred when generating the til, consult the - output window +Third-party compiler support.""" Help on function parse_decls_for_srclang in module ida_srclang: parse_decls_for_srclang(*args) + parse_decls_for_srclang(lang, til, input, is_path) -> int Parse type declarations in the specified language - parse_decls_for_srclang(lang, til, input, is_path) -> int - @param lang: the source language(s) expected in the input (C++: - srclang_t) - @param til: type library to store the types (C++: til_t *) - @param input: input source. can be a file path or decl string (C++: - const char *) - @param is_path: true if input parameter is a path to a source file, - false if the input is an in-memory source snippet - (C++: bool) - @retval: -1 - no parser was found that supports the given source - language(s) - @retval: else - the number of errors encountered in the input source + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source Help on function parse_decls_with_parser in module ida_srclang: parse_decls_with_parser(*args) + parse_decls_with_parser(parser_name, til, input, is_path) -> int Parse type declarations using the parser with the specified name - parse_decls_with_parser(parser_name, til, input, is_path) -> int - @param parser_name: name of the target parser (C++: const char *) - @param til: type library to store the types (C++: til_t *) - @param input: input source. can be a file path or decl string (C++: - const char *) - @param is_path: true if input parameter is a path to a source file, - false if the input is an in-memory source snippet - (C++: bool) - @retval: -1 - no parser was found with the given name - @retval: else - the number of errors encountered in the input source + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source Help on function select_parser_by_name in module ida_srclang: select_parser_by_name(*args) - Set the parser with the given name as the current parser. Pass NULL or - an empty string to select the default parser. - select_parser_by_name(name) -> bool - @param name (C++: const char *) - @return: false if no parser was found with the given name + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name Help on function select_parser_by_srclang in module ida_srclang: select_parser_by_srclang(*args) - Set the parser that supports the given language(s) as the current - parser. The selected parser must support all languages specified by - the given 'srclang_t' . - select_parser_by_srclang(lang) -> bool - @param lang (C++: srclang_t) - @return: false if no such parser was found + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found Help on function set_parser_argv in module ida_srclang: set_parser_argv(*args) - Set the command-line args to use for invocations of the parser with - the given name - set_parser_argv(parser_name, argv) -> int - @param parser_name: name of the target parser (C++: const char *) - @param argv: argument list (C++: const char *) - @retval: -1 - no parser was found with the given name - @retval: -2 - the operation is not supported by the given parser - @retval: else - all other values indicate success + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success -=== ida_srclang EPYDOC INJECTIONS === -ida_srclang.SRCLANG_C -""" -C. +Module "ida_strlist"s docstring: """ +Functions that deal with the string list. -ida_srclang.SRCLANG_CPP -""" -C++. -""" +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. -ida_srclang.SRCLANG_GO -""" -Golang (not supported yet) -""" +The users of this list should call build_strlist() if they need an up-to-date +version.""" -ida_srclang.SRCLANG_OBJC -""" -Objective-C. -""" - -ida_srclang.SRCLANG_SWIFT -""" -Swift (not supported yet) -""" -=== ida_srclang EPYDOC INJECTIONS END === Help on function build_strlist in module ida_strlist: build_strlist(*args) + build_strlist() Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) + clear_strlist() Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - get_strlist_item(si, n) -> bool - @param si (C++: string_info_t *) - @param n (C++: size_t) + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: get_strlist_options(*args) + get_strlist_options() -> strwinsetup_t Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) - Get number of elements in the string list. The list will be loaded - from the database (if saved) or built from scratch. + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -79042,12 +76130,14 @@ class string_info_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | _ea: ea_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: string_info_t const & + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -79061,16 +76151,16 @@ class string_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -79095,7 +76185,10 @@ class strwinsetup_t(__builtin__.object) | | _set_strtypes(self, *args) | _set_strtypes(self, py_t) -> PyObject * - | py_t: PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79107,16 +76200,16 @@ class strwinsetup_t(__builtin__.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -79130,71 +76223,72 @@ class strwinsetup_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_strwinsetup_t> | delete_strwinsetup_t(self) +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - add_struc(idx, name, is_union=False) -> tid_t - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t Add member to existing structure. - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) + del_member_tinfo(sptr, mptr) -> bool Delete tinfo for given member. - del_member_tinfo(sptr, mptr) -> bool - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) + del_struc(sptr) -> bool Delete a structure type. - del_struc(sptr) -> bool - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) + del_struc_member(sptr, offset) -> bool Delete member at given offset. - del_struc_member(sptr, offset) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) + del_struc_members(sptr, off1, off2) -> int Delete members which occupy range of offsets (off1..off2). - del_struc_members(sptr, off1, off2) -> int - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error Help on class dyn_member_ref_array in module ida_struct: @@ -79205,12 +76299,14 @@ class dyn_member_ref_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_member_ref_array - | _data: member_t * - | _count: size_t + | + | @param _data: member_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79222,8 +76318,9 @@ class dyn_member_ref_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: member_t const & + | + | @param i: size_t + | @param v: member_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79235,10 +76332,10 @@ class dyn_member_ref_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_member_ref_array_count_get(self) -> size_t + | count | | data - | dyn_member_ref_array_data_get(self) -> member_t + | data | | thisown | The membership flag @@ -79252,38 +76349,41 @@ class dyn_member_ref_array(__builtin__.object) Help on function expand_struc in module ida_struct: expand_struc(*args) + expand_struc(sptr, offset, delta, recalc=True) -> bool Expand/Shrink structure type. - expand_struc(sptr, offset, delta, recalc=True) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - get_best_fit_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_innermost_member in module ida_struct: get_innermost_member(*args) - get_innermost_member(sptr, offset) -> PyObject * + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) Get the innermost member at the given offset + @param sptr: the starting structure @param offset: offset into the starting structure - @return: - - None on failure + @return: - None on failure - tuple(member_t, struct_t, offset) where member_t: a member in SPTR (it is not a structure), struct_t: the innermost structure, @@ -79292,325 +76392,327 @@ get_innermost_member(*args) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) - For unions: returns number of members, for structs: returns size of - structure. - get_max_offset(sptr) -> ea_t - @param sptr (C++: struc_t *) + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) + get_member(sptr, offset) -> member_t Get member at given offset. - get_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) + get_member_by_fullname(fullname) -> member_t Get a member by its fully qualified name, "struct.field". - get_member_by_fullname(fullname) -> member_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) - Check if the specified member id points to a struct member. - get_member_by_id(mid) -> member_t - @param mid (C++: tid_t) + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) + get_member_by_name(sptr, membername) -> member_t Get a member by its name, like "field44". - get_member_by_name(sptr, membername) -> member_t - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) + get_member_cmt(mid, repeatable) -> str Get comment of structure member. - get_member_cmt(mid, repeatable) -> str - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) + get_member_fullname(mid) -> str Get a member's fully qualified name, "struct.field". - get_member_fullname(mid) -> str - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) + get_member_id(sptr, offset) -> tid_t Get member id at given offset. - get_member_id(sptr, offset) -> tid_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) - Get name of structure member. - get_member_name(mid) -> str - @param mid (C++: tid_t) + + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - get_member_size(mptr) -> asize_t - @param mptr (C++: const member_t *) + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) + get_member_struc(fullname) -> struc_t Get containing structure of member by its full name "struct.field". - get_member_struc(fullname) -> struc_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) + get_member_tinfo(tif, mptr) -> bool Get tinfo for given member. - get_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) + get_next_member_idx(sptr, off) -> ssize_t Get the next member idx, if it does not exist, return -1. - get_next_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) + get_or_guess_member_tinfo(tif, mptr) -> bool Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - get_or_guess_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) + get_prev_member_idx(sptr, off) -> ssize_t Get the prev member idx, if it does not exist, return -1. - get_prev_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) + get_sptr(mptr) -> struc_t Get child struct if member is a struct. - get_sptr(mptr) -> struc_t - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) + get_struc(id) -> struc_t Get pointer to struct type info. - get_struc(id) -> struc_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) + get_struc_first_offset(sptr) -> ea_t Get offset of first member. - get_struc_first_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) + get_struc_last_offset(sptr) -> ea_t Get offset of last member. - get_struc_last_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) + get_struc_next_offset(sptr, offset) -> ea_t Get offset of member with smallest offset larger than 'offset'. - get_struc_next_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) + get_struc_prev_offset(sptr, offset) -> ea_t Get offset of member with largest offset less than 'offset'. - get_struc_prev_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) + is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"? - is_anonymous_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) + is_dummy_member_name(name) -> bool Is member name an auto-generated name? - is_dummy_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) + is_member_id(mid) -> bool Is a member id? - is_member_id(mid) -> bool - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) + is_special_member(id) -> bool Is a special member with the name beginning with ' '? - is_special_member(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) + is_union(id) -> bool Is a union? - is_union(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) + is_varmember(mptr) -> bool Is variable size member? - is_varmember(mptr) -> bool - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) + is_varstr(id) -> bool Is variable size structure? - is_varstr(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -79625,27 +76727,39 @@ class member_t(__builtin__.object) | __repr__ = _swig_repr(self) | | by_til(self, *args) + | by_til(self) -> bool | Was the member created due to the type system? | + | get_size(self, *args) + | get_size(self) -> asize_t + | Get member size. + | | get_soff(self, *args) + | get_soff(self) -> ea_t | Get start offset (for unions - returns 0) | | has_ti(self, *args) + | has_ti(self) -> bool | Has type information? | | has_union(self, *args) + | has_union(self) -> bool | Has members of type "union"? | | is_baseclass(self, *args) + | is_baseclass(self) -> bool | Is a base class member? | | is_destructor(self, *args) + | is_destructor(self) -> bool | Is a virtual destructor? | | is_dupname(self, *args) + | is_dupname(self) -> bool | Duplicate name was resolved during import? | | unimem(self, *args) + | unimem(self) -> bool | Is a member of a union? | | ---------------------------------------------------------------------- @@ -79658,19 +76772,19 @@ class member_t(__builtin__.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -79684,130 +76798,129 @@ class member_t(__builtin__.object) Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) + retrieve_member_info(buf, mptr) -> opinfo_t Get operand type info for member. - retrieve_member_info(buf, mptr) -> opinfo_t - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) + save_struc(sptr, may_update_ltypes=True) Update struct information in the database (internal function) - save_struc(sptr, may_update_ltypes=True) - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) + set_member_cmt(mptr, cmt, repeatable) -> bool Set member comment. - set_member_cmt(mptr, cmt, repeatable) -> bool - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) + set_member_name(sptr, offset, name) -> bool Set name of member at given offset. - set_member_name(sptr, offset, name) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t Set tinfo for given member. - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) - Set type of member at given offset (also see 'add_struc_member()' ) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) - Set structure alignment ( 'SF_ALIGN' ) - set_struc_align(sptr, shift) -> bool - @param sptr (C++: struc_t *) - @param shift (C++: int) + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) + set_struc_hidden(sptr, is_hidden) Hide/unhide a struct type. - set_struc_hidden(sptr, is_hidden) - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - set_struc_idx(sptr, idx) -> bool - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) + set_struc_listed(sptr, is_listed) Add/remove a struct type from the struct list. - set_struc_listed(sptr, is_listed) - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) + stroff_as_size(plen, sptr, value) -> bool Should display a structure offset expression as the structure size? - stroff_as_size(plen, sptr, value) -> bool - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -79824,45 +76937,75 @@ class struc_t(__builtin__.object) | __repr__ = _swig_repr(self) | | from_til(self, *args) + | from_til(self) -> bool | Does structure come from a type library? | | get_alignment(self, *args) - | See 'SF_ALIGN' . + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) + | get_last_member(self) -> member_t | | get_member(self, index) | | has_union(self, *args) + | has_union(self) -> bool | Has members of type "union"? | | is_choosable(self, *args) - | Is included in chooser list? Use 'set_struc_listed' to change the - | listed status + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) + | is_frame(self) -> bool | Is this structure a function frame? | | is_ghost(self, *args) + | is_ghost(self) -> bool | Is a ghost copy of a local type? | | is_hidden(self, *args) - | Is the structure collapsed? Use 'set_struc_hidden' to change the - | hidden status + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) + | is_union(self) -> bool | Is a union? | | is_varstr(self, *args) + | is_varstr(self) -> bool | Is variable size structure? | + | like_union(self, *args) + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | | set_alignment(self, *args) - | Do not use; use 'set_struc_align()' - | | set_alignment(self, shift) - | @param shift (C++: int) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) | set_ghost(self, _is_ghost) - | @param _is_ghost (C++: bool) + | + | @param _is_ghost: bool + | + | unsync(self, *args) + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79874,22 +77017,22 @@ class struc_t(__builtin__.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -79911,14 +77054,16 @@ class struct_field_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_field(self, *args) | visit_field(self, sptr, mptr) -> int - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79941,150 +77086,40 @@ class struct_field_visitor_t(__builtin__.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) + add_tryblk(tb) -> int Add one try block information. - add_tryblk(tb) -> int - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -80109,13 +77144,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -80133,21 +77168,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80157,31 +77194,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -80191,78 +77234,85 @@ class catch_t(try_handler_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -80285,15 +77335,19 @@ class catchvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> catch_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | x: qvector< catch_t > const & + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80303,33 +77357,39 @@ class catchvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: catch_t const & + | + | @param i: size_t + | @param v: catch_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: catch_t const & + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | at(self, *args) | at(self, _idx) -> catch_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) | capacity(self) -> size_t @@ -80342,78 +77402,85 @@ class catchvec_t(__builtin__.object) | | end(self, *args) | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) | erase(self, it) -> catch_t - | it: qvector< catch_t >::iterator | + | @param it: qvector< catch_t >::iterator | | erase(self, first, last) -> catch_t - | first: qvector< catch_t >::iterator - | last: qvector< catch_t >::iterator + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) | extract(self) -> catch_t | | find(self, *args) | find(self, x) -> catch_t - | x: catch_t const & | - | - | find(self, x) -> catch_t - | x: catch_t const & + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=catch_t()) - | x: catch_t const & + | + | @param x: catch_t const & | | has(self, *args) | has(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | inject(self, *args) | inject(self, s, len) - | s: catch_t * - | len: size_t + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> catch_t - | it: qvector< catch_t >::iterator - | x: catch_t const & + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: catch_t const & + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: catch_t const & | + | @param _newsize: size_t + | @param x: catch_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< catch_t > & + | + | @param r: qvector< catch_t > & | | truncate(self, *args) | truncate(self) @@ -80439,31 +77506,39 @@ class catchvec_t(__builtin__.object) Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) + del_tryblks(range) Delete try block information in the specified range. - del_tryblks(range) - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) + find_syseh(ea) -> ea_t Find the start address of the system eh region including the argument. - find_syseh(ea) -> ea_t - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - get_tryblks(tbv, range) -> size_t - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() Help on class seh_t in module ida_tryblks: @@ -80491,10 +77566,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -80509,21 +77584,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80533,31 +77610,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -80567,78 +77650,85 @@ class seh_t(try_handler_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -80677,10 +77767,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -80696,11 +77786,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80710,31 +77802,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -80744,78 +77842,85 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -80844,7 +77949,9 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | r: tryblk_t const & + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -80879,7 +77986,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -80895,11 +78002,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80909,109 +78018,122 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -81034,15 +78156,19 @@ class tryblks_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> tryblk_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | x: qvector< tryblk_t > const & + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81052,33 +78178,39 @@ class tryblks_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tryblk_t const & + | + | @param i: size_t + | @param v: tryblk_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: tryblk_t const & + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | at(self, *args) | at(self, _idx) -> tryblk_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) | capacity(self) -> size_t @@ -81091,78 +78223,85 @@ class tryblks_t(__builtin__.object) | | end(self, *args) | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) | erase(self, it) -> tryblk_t - | it: qvector< tryblk_t >::iterator | + | @param it: qvector< tryblk_t >::iterator | | erase(self, first, last) -> tryblk_t - | first: qvector< tryblk_t >::iterator - | last: qvector< tryblk_t >::iterator + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) | extract(self) -> tryblk_t | | find(self, *args) | find(self, x) -> tryblk_t - | x: tryblk_t const & | - | - | find(self, x) -> tryblk_t - | x: tryblk_t const & + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=tryblk_t()) - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | has(self, *args) | has(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | inject(self, *args) | inject(self, s, len) - | s: tryblk_t * - | len: size_t + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tryblk_t - | it: qvector< tryblk_t >::iterator - | x: tryblk_t const & + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tryblk_t const & + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tryblk_t const & | + | @param _newsize: size_t + | @param x: tryblk_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tryblk_t > & + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) | truncate(self) @@ -81185,74 +78324,82 @@ class tryblks_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_tryblks_t> | delete_tryblks_t(self) -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +class swigvarlink(object) + | Swig var link object + | + | Methods defined here: + | + | __repr__(...) + | x.__repr__() <==> repr(x) + | + | __str__(...) + | x.__str__() <==> str(x) + +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(__builtin__.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) - Load a til file. - add_til(name, flags) -> int - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) - \call2{alloc_type_ordinals,ti,1} - alloc_type_ordinal(ti) -> uint32 - @param ti (C++: til_t *) + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) + alloc_type_ordinals(ti, qty) -> uint32 Allocate a range of ordinal numbers for new types. - alloc_type_ordinals(ti, qty) -> uint32 - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -81265,15 +78412,17 @@ class aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int - | @param v (C++: argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81296,129 +78445,122 @@ class aloc_visitor_t(__builtin__.object) Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - append_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) - Serialize argument location Deserialize an argument location. Argument - FORBID_STKOFF check location type. It can be used, for example, to - check the return location of a function that cannot return a value in - the stack - append_argloc(out, vloc) -> bool - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) append_tinfo_covered(out, typid, offset) -> bool - out: rangeset_t * - typid: uint32 - offset: uint64 + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - apply_callee_tinfo(caller, tif) -> bool - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - apply_cdecl(til, ea, decl, flags=0) -> bool - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) + apply_named_type(ea, name) -> bool Apply the specified named type to the address. - apply_named_type(ea, name) -> bool - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - apply_once_tinfo_and_name(dea, tif, name) -> bool - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - apply_tinfo(ea, tif, flags) -> bool - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -81432,242 +78574,282 @@ class argloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | r: argloc_t const & + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81701,34 +78883,40 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | a: argloc_t const & + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: argpart_t const & + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | | bad_offset(self, *args) + | bad_offset(self) -> bool | Does this argpart have a valid offset? | | bad_size(self, *args) + | bad_size(self) -> bool | Does this argpart have a valid size? | | swap(self, *args) + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: argpart_t &) + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -81744,226 +78932,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -81983,15 +79208,19 @@ class argpartvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | x: qvector< argpart_t > const & + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82001,33 +79230,39 @@ class argpartvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) | capacity(self) -> size_t @@ -82040,78 +79275,85 @@ class argpartvec_t(__builtin__.object) | | end(self, *args) | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -82145,44 +79387,45 @@ class argtinfo_helper_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> argtinfo_helper_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | has_delay_slot(self, *args) + | has_delay_slot(self, arg0) -> bool | The call instruction with a delay slot?. | - | has_delay_slot(self, arg0) -> bool - | arg0: ea_t + | @param arg0: ea_t | | is_stkarg_load(self, *args) - | Is the current insn a stkarg load?. if yes:src: index of the source - | operand in \insn_t{ops}dst: index of the destination operand in - | \insn_t{ops} \insn_t{ops}[dst].addr is expected to have the stack - | offset - | | is_stkarg_load(self, insn, src, dst) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param src (C++: int *) - | @param dst (C++: int *) + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) | | set_op_tinfo(self, *args) + | set_op_tinfo(self, insn, x, tif, name) -> bool | Set the operand type as specified. | - | set_op_tinfo(self, insn, x, tif, name) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param x (C++: const op_t &) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * | | use_arg_tinfos(self, *args) + | use_arg_tinfos(self, caller, fti, rargs) | This function is to be called by the processor module in response to | ev_use_arg_types. | - | use_arg_tinfos(self, caller, fti, rargs) - | @param caller (C++: ea_t) - | @param fti (C++: func_type_data_t *) - | @param rargs (C++: funcargvec_t *) + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82194,7 +79437,7 @@ class argtinfo_helper_t(__builtin__.object) | list of weak references to the object (if defined) | | reserved - | argtinfo_helper_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -82214,16 +79457,17 @@ class array_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t - | b: size_t - | n: size_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | | swap(self, *args) + | swap(self, r) | set this = r and r = this | - | swap(self, r) - | @param r (C++: array_type_data_t &) + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82235,13 +79479,13 @@ class array_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -82255,12 +79499,11 @@ class array_type_data_t(__builtin__.object) Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - begin_type_updating(utp) - @param utp (C++: update_type_t) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -82271,43 +79514,52 @@ class bitfield_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | _nbytes: uchar - | _width: uchar - | _is_unsigned: bool + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitfield_type_data_t &) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82319,16 +79571,16 @@ class bitfield_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -82339,45 +79591,43 @@ class bitfield_type_data_t(__builtin__.object) Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) + calc_c_cpp_name(name, type, ccn_flags) -> str Get C or C++ form of the name. - calc_c_cpp_name(name, type, ccn_flags) -> str - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - @retval: 0 - data is not expandable - @retval: -1 - error, see qerrno - @retval: else - the max number of lines + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) calc_tinfo_gaps(out, typid) -> bool - out: rangeset_t * - typid: uint32 + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) calc_type_size(ti, tp) -> PyObject * Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -82389,7 +79639,9 @@ class callregs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | cc: cm_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | @@ -82397,37 +79649,40 @@ class callregs_t(__builtin__.object) | by_slots(self) -> bool | | init_regs(self, *args) + | init_regs(self, cc) | Init policy & registers for given CC. | - | init_regs(self, cc) - | @param cc (C++: cm_t) + | @param cc: (C++: cm_t) | | reginds(self, *args) + | reginds(self, gp_ind, fp_ind, r) -> bool | Get register indexes within GP/FP arrays. (-1 -> is not present in the | corresponding array) | - | reginds(self, gp_ind, fp_ind, r) -> bool - | @param gp_ind (C++: int *) - | @param fp_ind (C++: int *) - | @param r (C++: int) + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) + | reset(self) | Set policy and registers to invalid values. | | set(self, *args) + | set(self, _policy, gprs, fprs) | Init policy & registers (arrays are -1-terminated) | - | set(self, _policy, gprs, fprs) - | @param _policy (C++: argreg_policy_t) - | @param gprs (C++: const int *) - | @param fprs (C++: const int *) + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) | regcount(cc) -> int - | cc: cm_t + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82439,16 +79694,16 @@ class callregs_t(__builtin__.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -82463,77 +79718,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) callregs_t_regcount(cc) -> int - cc: cm_t + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 Choose a type from the local type library. - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) - Choose a type from the local type library and specify the pointer - shift value. - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool Choose a type from a type library. - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) clear_tinfo_t(_this) - _this: tinfo_t * + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) + compact_til(ti) -> bool Collect garbage in til. Must be called before storing the til. - compact_til(ti) -> bool - @param ti (C++: til_t *) - @return: true if any memory was freed + @param ti: (C++: til_t *) + @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) compare_tinfo(t1, t2, tcflags) -> bool - t1: uint32 - t2: uint32 - tcflags: int + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -82546,15 +79798,17 @@ class const_aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int - | @param v (C++: const argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82577,149 +79831,154 @@ class const_aloc_visitor_t(__builtin__.object) Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - convert_pt_flags_to_hti(pt_flags) -> int - @param pt_flags (C++: int) + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - copy_named_type(dsttil, srctil, name) -> uint32 - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) copy_tinfo_t(_this, r) - _this: tinfo_t * - r: tinfo_t const & + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - create_numbered_type_name(ord) -> str - @param ord (C++: int32) + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) create_tinfo(_this, bt, bt2, ptr) -> bool - _this: tinfo_t * - bt: type_t - bt2: type_t - ptr: void * + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) - Get compiler specified by \varmem{inf,idainfo,cc}. + default_compiler() -> comp_t + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) + del_named_type(ti, name, ntf_flags) -> bool Delete information about a symbol. - del_named_type(ti, name, ntf_flags) -> bool - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) + del_numbered_type(ti, ordinal) -> bool Delete a numbered type. - del_numbered_type(ti, ordinal) -> bool - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) + del_til(name) -> bool Unload a til file. - del_til(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) del_tinfo_attr(tif, key, make_copy) -> bool - tif: tinfo_t * - key: qstring const & - make_copy: bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool Help on function del_vftable_ea in module ida_typeinf: del_vftable_ea(*args) + del_vftable_ea(ordinal) -> bool Delete the address of a vftable instance for a vftable type. - del_vftable_ea(ordinal) -> bool - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: success + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool Dereference a pointer. - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - tif: tinfo_t * - til: til_t const * - ptype: type_t const ** - pfields: p_list const ** - pfldcmts: p_list const ** + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) dstr_tinfo(tif) -> char const * - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) - Use 'func_type_data_t::dump()' - dump_func_type_data(fti, praloc_bits) -> str - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - end_type_updating(utp) - @param utp (C++: update_type_t) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -82730,20 +79989,23 @@ class enum_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: enum_member_t &) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82755,16 +80017,16 @@ class enum_member_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -82781,15 +80043,19 @@ class enum_member_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | x: qvector< enum_member_t > const & + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82799,33 +80065,39 @@ class enum_member_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -82838,78 +80110,85 @@ class enum_member_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< enum_member_t > & + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) | truncate(self) @@ -82946,7 +80225,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | _bte: bte_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -82972,22 +80252,22 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) + | swap(self, r) | swap two instances | - | swap(self, r) - | @param r (C++: enum_type_data_t &) + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -83003,11 +80283,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83017,31 +80299,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83054,71 +80342,77 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -83139,68 +80433,73 @@ Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) extract_argloc(vloc, ptype, forbid_stkoff) -> bool - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param forbid_stkoff (C++: bool) + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) find_tinfo_udt_member(udm, typid, strmem_flags) -> int - udm: udt_member_t * - typid: uint32 - strmem_flags: int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - first_named_type(ti, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param ntf_flags: (C++: int) Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) + for_all_arglocs(vv, vloc, size, off=0) -> int Compress larger argloc types and initiate the aloc visitor. - for_all_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) - See 'for_all_arglocs()' - for_all_const_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) + free_til(ti) Free memory allocated by til. - free_til(ti) - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - func_has_stkframe_hole(ea, fti) -> bool - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -83220,22 +80519,22 @@ class func_type_data_t(funcargvec_t) | __repr__ = _swig_repr(self) | | dump(self, *args) - | Dump information that is not always visible in the function prototype. - | (argument locations, return location, total stkarg size) - | | dump(self, praloc_bits=0x02) -> bool - | @param praloc_bits (C++: int) + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) | get_call_method(self) -> int | | guess_cc(self, *args) - | Guess function calling convention use the following info: argument - | locations and 'stkargs' - | | guess_cc(self, purged, cc_flags) -> cm_t - | @param purged (C++: int) - | @param cc_flags (C++: int) + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) | | is_const(self, *args) | is_const(self) -> bool @@ -83269,28 +80568,29 @@ class func_type_data_t(funcargvec_t) | | swap(self, *args) | swap(self, r) - | @param r (C++: func_type_data_t &) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -83306,11 +80606,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83320,31 +80622,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83357,71 +80665,77 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -83447,14 +80761,16 @@ class funcarg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -83468,22 +80784,22 @@ class funcarg_t(__builtin__.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83500,15 +80816,19 @@ class funcargvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | x: qvector< funcarg_t > const & + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83518,33 +80838,39 @@ class funcargvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83557,78 +80883,85 @@ class funcargvec_t(__builtin__.object) | | end(self, *args) | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< funcarg_t > & + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) | truncate(self) @@ -83654,55 +80987,60 @@ class funcargvec_t(__builtin__.object) Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) + gcc_layout() -> bool Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) - Generic function for 'decorate_name()' (may be used in IDP modules) - gen_decorate_name(name, mangle, cc, type) -> str - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * Help on function gen_use_arg_tinfos2 in module ida_typeinf: gen_use_arg_tinfos2(*args) - Do not call this function directly, use 'argtinfo_helper_t' . - gen_use_arg_tinfos2(_this, caller, fti, rargs) - @param _this (C++: struct argtinfo_helper_t *) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) + get_abi_name() -> str Get ABI name. + + @return: length of the name (>=0) Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - get_alias_target(ti, ordinal) -> uint32 - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: @@ -83716,277 +81054,284 @@ get_arg_addrs(*args) Help on function get_base_type in module ida_typeinf: get_base_type(*args) - Get get basic type bits ( 'TYPE_BASE_MASK' ) - get_base_type(t) -> type_t - @param t (C++: type_t) + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) + get_c_header_path() -> str Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) + get_c_macros() -> str Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) + get_comp(comp) -> comp_t Get compiler bits. - get_comp(comp) -> comp_t - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) + get_compiler_abbr(id) -> char const * Get abbreviated compiler name. - get_compiler_abbr(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) + get_compiler_name(id) -> char const * Get full compiler name. - get_compiler_name(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) + get_compilers(ids, names, abbrs) Get names of all built-in compilers. - get_compilers(ids, names, abbrs) - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - get_enum_member_expr(tif, serial, value) -> str - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - get_full_type(t) -> type_t - @param t (C++: type_t) + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) - Extract information from a 'tinfo_t' . - get_idainfo_by_type(tif) -> bool - @param tif: the type to inspect (C++: const tinfo_t &) + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) - get_named_type(til, name, ntf_flags) -> PyObject * + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - get_named_type64(til, name, ntf_flags) -> PyObject * - til: til_t const * - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - get_numbered_type(til, ordinal) -> PyObject * - til: til_t const * - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - get_numbered_type_name(ti, ordinal) -> char const * - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - get_ordinal_from_idb_type(name, type) -> int - @param name (C++: const char *) - @param type (C++: const type_t *) + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) + get_ordinal_qty(ti) -> uint32 Get number of allocated ordinals. - get_ordinal_qty(ti) -> uint32 - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) get_scalar_bt(size) -> type_t - @param size (C++: int) + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) get_stock_tinfo(tif, id) -> bool - tif: tinfo_t * - id: enum stock_type_id_t + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) get_tinfo_attr(typid, key, bv, all_attrs) -> bool - typid: uint32 - key: qstring const & - bv: bytevec_t * - all_attrs: bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - typid: uint32 - tav: type_attrs_t * - include_ref_attrs: bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) get_tinfo_details(typid, bt2, buf) -> bool - typid: uint32 - bt2: type_t - buf: void * + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) get_tinfo_pdata(outptr, typid, what) -> size_t - outptr: void * - typid: uint32 - what: int + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) get_tinfo_property(typid, gta_prop) -> size_t - typid: uint32 - gta_prop: int + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) get_tinfo_size(p_effalign, typid, gts_code) -> size_t - p_effalign: uint32 * - typid: uint32 - gts_code: int + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) - Get type flags ( 'TYPE_FLAGS_MASK' ) - get_type_flags(t) -> type_t - @param t (C++: type_t) + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) + get_type_ordinal(ti, name) -> int32 Get type ordinal by its name. - get_type_ordinal(ti, name) -> int32 - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * Help on function get_vftable_ea in module ida_typeinf: get_vftable_ea(*args) + get_vftable_ea(ordinal) -> ea_t Get address of a virtual function table. - get_vftable_ea(ordinal) -> ea_t - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: address of the corresponding virtual function table in the - current database. + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. Help on function get_vftable_ordinal in module ida_typeinf: get_vftable_ordinal(*args) + get_vftable_ordinal(vftable_ea) -> uint32 Get ordinal number of the virtual function table. - get_vftable_ordinal(vftable_ea) -> uint32 - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: ordinal number of the corresponding vftable type. 0 - - failure. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) - Use 'func_type_data_t::guess_cc()' - guess_func_cc(fti, npurged, cc_flags) -> cm_t - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - guess_tinfo(tif, id) -> int - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -84002,21 +81347,24 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | _tif: tinfo_t const & - | _ea: ea_t - | _pb: int + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, arg3) -> int - | @param candidate (C++: const tinfo_t &) - | arg3: func_type_data_t const & + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84043,623 +81391,656 @@ Help on function idc_get_local_type in module ida_typeinf: idc_get_local_type(*args) idc_get_local_type(ordinal, flags, buf, maxsize) -> int - ordinal: int - flags: int - buf: char * - maxsize: size_t + + @param ordinal: int + @param flags: int + @param buf: char * + @param maxsize: size_t Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) idc_get_local_type_name(ordinal) -> str - ordinal: int + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) - idc_get_local_type_raw(ordinal) -> PyObject * - ordinal: int + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) idc_get_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) idc_get_type_raw(ea) -> PyObject * - ea: ea_t + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) idc_guess_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) - idc_parse_decl(ti, decl, flags) -> PyObject * - ti: til_t * - decl: char const * - flags: int + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) idc_parse_types(input, flags) -> int - input: char const * - flags: int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) - idc_print_type(type, fields, name, flags) -> PyObject * - type: type_t const * - fields: p_list const * - name: char const * - flags: int + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) idc_set_local_type(ordinal, dcl, flags) -> int - ordinal: int - dcl: char const * - flags: int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) + import_type(til, idx, name, flags=0) -> tid_t Copy a named type from til to idb. - import_type(til, idx, name, flags=0) -> tid_t - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) + is_autosync(name, type) -> bool Is the specified idb type automatically synchronized? - is_autosync(name, type) -> bool - @param name (C++: const char *) - @param type (C++: const type_t *) - + @param name: (C++: const char *) char const * + @param type: type_t const * is_autosync(name, tif) -> bool - @param name (C++: const char *) - tif: tinfo_t const & + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) + is_code_far(cm) -> bool Does the given model specify far code?. - is_code_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) - See 'COMP_UNSURE' . - is_comp_unsure(comp) -> comp_t - @param comp (C++: comp_t) + See COMP_UNSURE. + + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) + is_data_far(cm) -> bool Does the given model specify far data?. - is_data_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) - Is the target compiler 'COMP_GNU' ? + is_gcc() -> bool + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) + is_gcc32() -> bool Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) + is_gcc64() -> bool Is the target compiler 64 bit gcc? Help on function is_golang_cc in module ida_typeinf: is_golang_cc(*args) + is_golang_cc(cc) -> bool GO language calling convention (return value in stack)? - is_golang_cc(cc) -> bool - @param cc (C++: cm_t) + @param cc: (C++: cm_t) Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - is_ordinal_name(name, ord=None) -> bool - @param name (C++: const char *) - @param ord (C++: uint32 *) + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - is_purging_cc(cm) -> bool - @param cm (C++: cm_t) + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) is_restype_enum(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) is_restype_struct(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) is_restype_struni(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) is_restype_void(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - is_sdacl_byte(t) -> bool - @param t (C++: type_t) + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - is_tah_byte(t) -> bool - @param t (C++: type_t) + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) + is_type_arithmetic(t) -> bool Is the type an arithmetic type? (floating or integral) - is_type_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) - See 'BT_ARRAY' . - is_type_array(t) -> bool - @param t (C++: type_t) + See BT_ARRAY. + + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) - See 'BT_BITFIELD' . - is_type_bitfld(t) -> bool - @param t (C++: type_t) + See BT_BITFIELD. + + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) - See 'BTF_BOOL' . - is_type_bool(t) -> bool - @param t (C++: type_t) + See BTF_BOOL. + + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_char(t) -> bool - @param t (C++: type_t) + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) - See 'BT_COMPLEX' . - is_type_complex(t) -> bool - @param t (C++: type_t) + See BT_COMPLEX. + + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) - See 'BTM_CONST' . - is_type_const(t) -> bool - @param t (C++: type_t) + See BTM_CONST. + + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) - See 'BTF_DOUBLE' . - is_type_double(t) -> bool - @param t (C++: type_t) + See BTF_DOUBLE. + + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) - See 'BTF_ENUM' . - is_type_enum(t) -> bool - @param t (C++: type_t) + See BTF_ENUM. + + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) + is_type_ext_arithmetic(t) -> bool Is the type an extended arithmetic type? (arithmetic or enum) - is_type_ext_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) + is_type_ext_integral(t) -> bool Is the type an extended integral type? (integral or enum) - is_type_ext_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) - See 'BTF_FLOAT' . - is_type_float(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) + is_type_floating(t) -> bool Is the type a floating point type? - is_type_floating(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) - See 'BT_FUNC' . - is_type_func(t) -> bool - @param t (C++: type_t) + See BT_FUNC. + + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - is_type_int(bt) -> bool - @param bt (C++: type_t) + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int128(t) -> bool - @param t (C++: type_t) + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int16(t) -> bool - @param t (C++: type_t) + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int32(t) -> bool - @param t (C++: type_t) + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int64(t) -> bool - @param t (C++: type_t) + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) + is_type_integral(t) -> bool Is the type an integral type (char/short/int/long/bool)? - is_type_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) - See 'BTF_LDOUBLE' . - is_type_ldouble(t) -> bool - @param t (C++: type_t) + See BTF_LDOUBLE. + + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) + is_type_paf(t) -> bool Is the type a pointer, array, or function type? - is_type_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - is_type_partial(t) -> bool - @param t (C++: type_t) + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) - See 'BT_PTR' . - is_type_ptr(t) -> bool - @param t (C++: type_t) + See BT_PTR. + + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) + is_type_ptr_or_array(t) -> bool Is the type a pointer or array type? - is_type_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) - See 'BTF_STRUCT' . - is_type_struct(t) -> bool - @param t (C++: type_t) + See BTF_STRUCT. + + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) + is_type_struni(t) -> bool Is the type a struct or union? - is_type_struni(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) + is_type_sue(t) -> bool Is the type a struct/union/enum? - is_type_sue(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) - See 'BTF_FLOAT' . - is_type_tbyte(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) - See 'BTF_TYPEDEF' . - is_type_typedef(t) -> bool - @param t (C++: type_t) + See BTF_TYPEDEF. + + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) - See 'BTF_UCHAR' . - is_type_uchar(t) -> bool - @param t (C++: type_t) + See BTF_UCHAR. + + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) - See 'BTF_UINT' . - is_type_uint(t) -> bool - @param t (C++: type_t) + See BTF_UINT. + + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) - See 'BTF_UINT128' . - is_type_uint128(t) -> bool - @param t (C++: type_t) + See BTF_UINT128. + + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) - See 'BTF_UINT16' . - is_type_uint16(t) -> bool - @param t (C++: type_t) + See BTF_UINT16. + + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) - See 'BTF_UINT32' . - is_type_uint32(t) -> bool - @param t (C++: type_t) + See BTF_UINT32. + + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) - See 'BTF_UINT64' . - is_type_uint64(t) -> bool - @param t (C++: type_t) + See BTF_UINT64. + + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) - See 'BTF_UNION' . - is_type_union(t) -> bool - @param t (C++: type_t) + See BTF_UNION. + + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) - See 'BT_UNKNOWN' . - is_type_unknown(t) -> bool - @param t (C++: type_t) + See BT_UNKNOWN. + + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) - See 'BTF_VOID' . - is_type_void(t) -> bool - @param t (C++: type_t) + See BTF_VOID. + + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) - See 'BTM_VOLATILE' . - is_type_volatile(t) -> bool - @param t (C++: type_t) + See BTM_VOLATILE. + + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - is_typeid_last(t) -> bool - @param t (C++: type_t) + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) + is_user_cc(cm) -> bool Does the calling convention specify argument locations explicitly? - is_user_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) + is_vararg_cc(cm) -> bool Does the calling convention use ellipsis? - is_vararg_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) lexcompare_tinfo(t1, t2, arg3) -> int - t1: uint32 - t2: uint32 - arg3: int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - load_til(name, tildir=None) -> til_t - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) + load_til_header(tildir, name) -> til_t Get human-readable til description. - load_til_header(tildir, name) -> til_t - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - lower_type(til, tif, name=None, _helper=None) -> int - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - @retval: 1 - removed FTI_HIGH , - @retval: 2 - made substantial changes - @retval: -1 - failure + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -84674,13 +82055,15 @@ class lowertype_helper_t(__builtin__.object) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, candidate_data) -> int - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84703,72 +82086,73 @@ class lowertype_helper_t(__builtin__.object) Help on function new_til in module ida_typeinf: new_til(*args) + new_til(name, desc) -> til_t Initialize a til. - new_til(name, desc) -> til_t - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - next_named_type(ti, name, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - optimize_argloc(vloc, size, gaps) -> bool - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - @retval: true - success - @retval: false - the input argloc was illegal + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t Write a typed idc object to the database. - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: @@ -84778,8 +82162,10 @@ pack_object_to_idb(*args) Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -84787,36 +82173,33 @@ pack_object_to_idb(*args) Help on function parse_decl in module ida_typeinf: parse_decl(*args) - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - parse_decl(tif, til, decl, flags) -> str - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - @retval: true - ok - @retval: false - declaration is bad, the error message is displayed if - !PT_SIL + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - parse_decls(til, input, printer, hti_flags) -> int - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -84829,16 +82212,18 @@ class predicate_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> predicate_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | should_display(self, *args) | should_display(self, til, name, type, fields) -> bool - | @param til (C++: const til_t *) - | @param name (C++: const char *) - | @param type (C++: const type_t *) - | @param fields (C++: const p_list *) + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84861,51 +82246,51 @@ class predicate_t(__builtin__.object) Help on function print_argloc in module ida_typeinf: print_argloc(*args) + print_argloc(vloc, size=0, vflags=0) -> str Convert an argloc to human readable form. - print_argloc(vloc, size=0, vflags=0) -> str - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for use in a + header file. This is the reverse parse_decls(). - print_decls(printer, til, py_ordinals, flags) -> PyObject * - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - py_ordinals: PyObject * - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - @retval: >0 - the number of types exported - @retval: 0 - an error occurred - @retval: <0 - the negated number of types exported. There were minor - errors and the resulting output might not be compilable. + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param flags: (C++: uint32) flags for the algorithm. A combination of PDF_* constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - prefix: char const * - indent: int - cmtindent: int - flags: int - tif: tinfo_t const * - name: char const * - cmt: char const * + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) + print_type(ea, prtype_flags) -> str Get type declaration for the specified address. - print_type(ea, prtype_flags) -> str - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -84916,32 +82301,36 @@ class ptr_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | c: tinfo_t - | bps: uchar - | p: tinfo_t - | d: int32 + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | | is_code_ptr(self, *args) + | is_code_ptr(self) -> bool | Are we pointing to code? | | is_shifted(self, *args) | is_shifted(self) -> bool | | swap(self, *args) + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: ptr_type_data_t &) + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84953,22 +82342,22 @@ class ptr_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -84983,9 +82372,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - typid: uint32 - v: uint64 - bitoff: int + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -84996,15 +82386,19 @@ class reginfovec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | x: qvector< reg_info_t > const & + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85013,22 +82407,28 @@ class reginfovec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_info_t const & + | + | @param i: size_t + | @param v: reg_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_info_t const & + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | append = push_back(self, *args) | @@ -85039,7 +82439,6 @@ class reginfovec_t(__builtin__.object) | | begin(self, *args) | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -85052,78 +82451,85 @@ class reginfovec_t(__builtin__.object) | | end(self, *args) | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) | erase(self, it) -> reg_info_t - | it: qvector< reg_info_t >::iterator | + | @param it: qvector< reg_info_t >::iterator | | erase(self, first, last) -> reg_info_t - | first: qvector< reg_info_t >::iterator - | last: qvector< reg_info_t >::iterator + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) | extract(self) -> reg_info_t | | find(self, *args) | find(self, x) -> reg_info_t - | x: reg_info_t const & | - | - | find(self, x) -> reg_info_t - | x: reg_info_t const & + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_info_t()) - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_info_t * - | len: size_t + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_info_t - | it: qvector< reg_info_t >::iterator - | x: reg_info_t const & + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_info_t const & + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_info_t const & | + | @param _newsize: size_t + | @param x: reg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_info_t > & + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) | truncate(self) @@ -85171,16 +82577,16 @@ class regobj_t(__builtin__.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -85222,7 +82628,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85232,19 +82639,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) | capacity(self) -> size_t @@ -85257,16 +82665,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -85276,47 +82684,56 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -85339,11 +82756,14 @@ class regobjvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | x: qvector< regobj_t > const & + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85355,19 +82775,20 @@ class regobjvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) | capacity(self) -> size_t @@ -85380,16 +82801,16 @@ class regobjvec_t(__builtin__.object) | | end(self, *args) | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -85399,47 +82820,56 @@ class regobjvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -85466,49 +82896,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) remove_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts (C++: const char *) - @param user_level (C++: bool) + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - remove_pointer(tif) -> tinfo_t - @param tif (C++: const tinfo_t &) + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - remove_tinfo_pointer(tif, name, til) -> PyObject * - @param tif (C++: tinfo_t *) - name: char const * - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - replace_ordinal_typerefs(til, tif) -> int - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - @retval: number - of replaced subtypes, -1 on failure + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) resolve_typedef(til, type) -> type_t const * - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -85532,10 +82962,10 @@ class rrel_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -85550,11 +82980,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - tif: tinfo_t * - til: til_t * - ord: size_t - name: char const * - ntf_flags: int + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -85590,11 +83021,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85604,31 +83037,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) | capacity(self) -> size_t @@ -85641,78 +83080,85 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -85730,135 +83176,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) score_tinfo(tif) -> uint32 - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - type: qtype * - fields: qtype * - fldcmts: qtype * - tif: tinfo_t const * - sudt_flags: int + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) - Set abi name (see 'Compiler IDs' ) - set_abi_name(abiname, user_level=False) -> bool - @param abiname (C++: const char *) - @param user_level (C++: bool) + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) + set_c_header_path(incdir) Set include directory path the target compiler. - set_c_header_path(incdir) - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) + set_c_macros(macros) Set predefined macros for the target compiler. - set_c_macros(macros) - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) + set_compiler(cc, flags, abiname=None) -> bool Change current compiler. - set_compiler(cc, flags, abiname=None) -> bool - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) - Set the compiler id (see 'Compiler IDs' ) - set_compiler_id(id, abiname=None) -> bool - @param id (C++: comp_t) - @param abiname (C++: const char *) + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) set_compiler_string(compstr, user_level) -> bool - @param compstr: - compiler description in form <abbr>:<abiname> (C++: - const char *) - @param user_level: - initiated by user if TRUE (C++: bool) - @return: success + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) set_tinfo_attr(tif, ta, may_overwrite) -> bool - tif: tinfo_t * - ta: type_attr_t const & - may_overwrite: bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) set_tinfo_attrs(tif, ta) -> bool - tif: tinfo_t * - ta: type_attrs_t * + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) set_tinfo_property(tif, sta_prop, x) -> size_t - tif: tinfo_t * - sta_prop: int - x: size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) Help on function set_vftable_ea in module ida_typeinf: set_vftable_ea(*args) + set_vftable_ea(ordinal, vftable_ea) -> bool Set the address of a vftable instance for a vftable type. - set_vftable_ea(ordinal, vftable_ea) -> bool - @param ordinal: ordinal number of the corresponding vftable type. - (C++: uint32) - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: success + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -85869,15 +83319,17 @@ class simd_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | nm: char const * - | sz: uint16 - | memt: type_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | | match_pattern(self, *args) | match_pattern(self, pattern) -> bool - | @param pattern (C++: const simd_info_t *) + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85889,19 +83341,19 @@ class simd_info_t(__builtin__.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -85909,25 +83361,67 @@ class simd_info_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_simd_info_t> | delete_simd_info_t(self) +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(__builtin__.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_stkarg_area_info_t> + | delete_stkarg_area_info_t(self) + Help on function store_til in module ida_typeinf: store_til(*args) - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - store_til(ti, tildir, name) -> bool - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success Help on function switch_to_golang in module ida_typeinf: switch_to_golang(*args) + switch_to_golang() switch to GOLANG calling convention (to be used as default CC) Help on class text_sink_t in module ida_typeinf: @@ -85941,13 +83435,17 @@ class text_sink_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> text_sink_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, str) -> int - | str: char const * + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85976,8 +83474,9 @@ class til_symbol_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t - | n: char const * - | t: til_t const * + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -85991,13 +83490,13 @@ class til_symbol_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -86019,13 +83518,17 @@ class til_t(__builtin__.object) | | base(self, *args) | base(self, n) -> til_t - | n: int + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) - | Has the til been modified? ( 'TIL_MOD' ) + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) - | Mark the til as modified ( 'TIL_MOD' ) + | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86037,28 +83540,28 @@ class til_t(__builtin__.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -86078,35 +83581,43 @@ class tinfo_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | decl_type: type_t + | __init__(self, decl_type) -> tinfo_t | + | @param decl_type: type_t | | __init__(self, r) -> tinfo_t - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -86115,48 +83626,51 @@ class tinfo_t(__builtin__.object) | | _print(self, *args) | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | name: char const * - | prtype_flags: int - | indent: int - | cmtindent: int - | prefix: char const * - | cmt: char const * + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) + | append_covered(self, out, offset=0) -> bool | Calculate set of covered bytes for the type | - | append_covered(self, out, offset=0) -> bool - | @param out: pointer to the output buffer. covered bytes will be - | appended to it. (C++: rangeset_t *) - | @param offset (C++: uint64) + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) | | calc_gaps(self, *args) + | calc_gaps(self, out) -> bool | Calculate set of padding bytes for the type | - | calc_gaps(self, out) -> bool - | @param out: pointer to the output buffer; old buffer contents will be - | lost. (C++: rangeset_t *) + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) - | 'BT_FUNC' : Calculate number of purged bytes + | calc_purged_bytes(self) -> int | | calc_score(self, *args) + | calc_score(self) -> uint32 | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) - | Calculate the udt alignments using the field offsets/sizes and the - | total udt size This function does not work on typerefs - | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | @param sudt_flags (C++: int) + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) + | change_sign(self, sign) -> bool | Change the type sign. Works only for the types that may have sign. | - | change_sign(self, sign) -> bool - | @param sign (C++: type_sign_t) + | @param sign: (C++: type_sign_t) | | clear(self, *args) + | clear(self) | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) @@ -86170,17 +83684,18 @@ class tinfo_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | compare_with(self, *args) - | Compare two types, based on given flags (see 'tinfo_t comparison - | flags' ) - | | compare_with(self, r, tcflags=0) -> bool - | @param r (C++: const tinfo_t &) - | @param tcflags (C++: int) + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) + | convert_array_to_ptr(self) -> bool | Convert an array into a pointer. type[] => type * | | copy(self, *args) @@ -86188,762 +83703,890 @@ class tinfo_t(__builtin__.object) | | create_array(self, *args) | create_array(self, p, decl_type=BT_ARRAY) -> bool - | @param p (C++: const array_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: array_type_data_t const & + | @param decl_type: type_t | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | tif: tinfo_t const & - | nelems: uint32 - | base: uint32 - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | @param p (C++: const bitfield_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | nbytes: uchar - | width: uchar - | is_unsigned: bool - | @param decl_type (C++: type_t) + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | p: enum_type_data_t & - | decl_type: type_t + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) - | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , - | or 'BTF_ENUM' - | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | @param til (C++: til_t *) - | @param decl_type (C++: type_t) - | @param name (C++: const char *) - | @param ntf_flags (C++: int) + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) | create_func(self, p, decl_type=BT_FUNC) -> bool - | p: func_type_data_t & - | decl_type: type_t + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) | create_ptr(self, p, decl_type=BT_PTR) -> bool - | @param p (C++: const ptr_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | tif: tinfo_t const & - | bps: uchar - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) | create_simple_type(self, decl_type) -> bool - | @param decl_type (C++: type_t) + | + | @param decl_type: type_t | | create_typedef(self, *args) | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | @param p (C++: const typedef_type_data_t &) - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | til: til_t const * - | name: char const * - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | til: til_t const * - | ord: uint - | @param decl_type (C++: type_t) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) | create_udt(self, p, decl_type) -> bool - | p: udt_type_data_t & - | decl_type: type_t + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) + | del_attr(self, key, make_copy=True) -> bool | Del a type attribute. typerefs cannot be modified by this function. | - | del_attr(self, key, make_copy=True) -> bool - | @param key (C++: const qstring &) - | @param make_copy (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) + | del_attrs(self) | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) - | Deserialize a type string into a 'tinfo_t' object. - | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | @param til (C++: const til_t *) - | @param ptype (C++: const type_t **) - | @param pfields (C++: const p_list **) - | @param pfldcmts (C++: const p_list **) + | Deserialize a type string into a tinfo_t object. | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** | | deserialize(self, til, type, fields, cmts=None) -> bool - | @param til (C++: const til_t *) - | type: type_t const * - | fields: p_list const * - | cmts: p_list const * + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) + | dstr(self) -> char const * | Function to facilitate debugging. | | empty(self, *args) - | Was 'tinfo_t' initialized with some type info or not? + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) | equals_to(self, r) -> bool - | @param r (C++: const tinfo_t &) + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) - | 'BTF_STRUCT' , 'BTF_UNION' : Find a udt member.at the specified - | offset ( 'STRMEM_OFFSET' )with the specified index ( 'STRMEM_INDEX' - | )with the specified type ( 'STRMEM_TYPE' )with the specified name ( - | 'STRMEM_NAME' ) - | | find_udt_member(self, udm, strmem_flags) -> int - | @param udm (C++: struct udt_member_t *) - | @param strmem_flags (C++: int) - | @return: the index of the found member or -1 + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) + | get_array_details(self, ai) -> bool | Get the array specific info. | - | get_array_details(self, ai) -> bool - | @param ai (C++: array_type_data_t *) + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) - | 'BT_ARRAY' : get type of array element. See also - | 'get_ptrarr_object()' + | get_array_element(self) -> tinfo_t | | get_array_nelems(self, *args) - | 'BT_ARRAY' : get number of elements (-1 means error) + | get_array_nelems(self) -> int | | get_attr(self, *args) + | get_attr(self, key, all_attrs=True) -> str or None | Get a type attribute. | - | get_attr(self, key, all_attrs=True) -> PyObject * - | @param key (C++: const qstring &) - | @param all_attrs (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) - | Get type attributes (all_attrs: include attributes of referenced - | types, if any) - | | get_attrs(self, tav, all_attrs=False) -> bool - | @param tav (C++: type_attrs_t *) - | @param all_attrs (C++: bool) + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) + | get_bitfield_details(self, bi) -> bool | Get the bitfield specific info. | - | get_bitfield_details(self, bi) -> bool - | @param bi (C++: bitfield_type_data_t *) + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) + | get_declalign(self) -> uchar | Get declared alignment of the type. | | get_decltype(self, *args) - | Get declared type (without resolving type references; they are - | returned as is). Obviously this is a very fast function and should be - | used instead of 'get_realtype()' if possible. + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) - | Get enum base type (convert enum to integer type) Returns 'BT_UNK' if - | failed to convert + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) + | get_enum_details(self, ei) -> bool | Get the enum specific info. | - | get_enum_details(self, ei) -> bool - | @param ei (C++: enum_type_data_t *) + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) + | get_final_ordinal(self) -> uint32 | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) + | get_final_type_name(self) -> bool | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) - | Get only the function specific info for this 'tinfo_t' . - | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | @param fi (C++: func_type_data_t *) - | @param gtd (C++: gtd_func_t) + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t | | get_methods(self, *args) - | 'BT_COMPLEX' : get a list of member functions declared in this udt. - | | get_methods(self, methods) -> bool - | @param methods (C++: udtmembervec_t *) - | @return: false if no member functions exist + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) | get_modifiers(self) -> type_t | | get_named_type(self, *args) - | Create a 'tinfo_t' object for an existing named type. - | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param name: name of the type to link to (C++: const char *) - | @param decl_type: if the reference was explicitly specified with the - | type tag ( BTF_STRUCT / BTF_UNION / BTF_ENUM ) - | you may specify it. the kernel will accept only - | the specified tag after resolving the type. If - | the resolved type does not correspond to the - | explicitly specified tag, the type will be - | considered as undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code. false: return true but do not immediately - | resolve the type (C++: bool) - | @param try_ordinal: true: try to replace name reference by an ordinal - | reference (C++: bool) + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 - | - error) + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) + | get_next_type_name(self) -> bool | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means - | return type, see 'get_rettype()' ) - | | get_nth_arg(self, n) -> tinfo_t - | @param n (C++: int) + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) - | Create a 'tinfo_t' object for an existing ordinal type. - | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param ordinal: number of the type to link to (C++: uint32) - | @param decl_type: if the reference was explicitly specified with the - | type tag (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may - | specify it. the kernel will accept only the - | specified tag after resolving the type. If the - | resolved type does not correspond to the explicitly - | specified tag, the type will be considered as - | undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code false: return true but do not immediately resolve - | the type (C++: bool) + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) - | For objects consisting of one member entirely: return type of the - | member. + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) - | Get type ordinal (only if the type was created as a numbered type, 0 - | if none) + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) - | 'BT_PTR' : get type of pointed object. If the current type is not a - | pointer, return empty type info. See also 'get_ptrarr_object()' and - | 'remove_pointer()' + | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) + | get_ptr_details(self, pi) -> bool | Get the pointer info. | - | get_ptr_details(self, pi) -> bool - | @param pi (C++: ptr_type_data_t *) + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) - | 'BT_PTR' & 'BT_ARRAY' : get the pointed object or array element. If - | the current type is not a pointer or array, return empty type info. + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) - | 'BT_PTR' & 'BT_ARRAY' : get size of pointed object or array element. - | On error returns -1 + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) - | Get the resolved base type. Deserialization options:if full=true, the - | referenced type will be deserialized fully, this may not always be - | desirable (slows down things)if full=false, we just return the base - | type, the referenced type will be resolved again later if necessary - | (this may lead to multiple resolvings of the same type) imho - | full=false is a better approach because it does not perform - | unnecessary actions just in case. however, in some cases the caller - | knows that it is very likely that full type info will be required. in - | those cases full=true makes sense - | | get_realtype(self, full=False) -> type_t - | @param full (C++: bool) + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) + | get_sign(self) -> type_sign_t | Get type sign. | | get_size(self, *args) + | get_size(self, p_effalign=None, gts_code=0) -> size_t | Get the type size in bytes. | - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | @param p_effalign: buffer for the alignment value (C++: uint32 *) - | @param gts_code: combination of GTS_... constants (C++: int) - | @return: BADSIZE in case of problems + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) - | Get the type library for 'tinfo_t' . + | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) - | Does a type refer to a name?. If yes, fill the provided buffer with - | the type name and return true. Names are returned for numbered types - | too: either a user-defined nice name or, if a user-provided name does - | not exist, an ordinal name (like #xx, see - | 'create_numbered_type_name()' ). + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool | Get the udt specific info. | - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | @param udt (C++: udt_type_data_t *) - | @param gtd (C++: gtd_udt_t) + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) + | get_udt_nmembers(self) -> int | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) - | Get the type size in bytes without the final padding, in bytes. For - | some UDTs 'get_unpadded_size()' != 'get_size()' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) + | has_details(self) -> bool | Does this type refer to a nontrivial type? | | has_vftable(self, *args) + | has_vftable(self) -> bool | Has a vftable? | | is_anonymous_udt(self, *args) - | Is an anonymous struct/union? We assume that types with names are - | anonymous if the name starts with $ + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) - | \isreal{is_type_arithmetic} + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) - | \isreal{is_type_array} + | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) - | \isreal{is_type_bitfld} + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) - | \isreal{is_type_bool} + | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) | is_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_char(self, *args) - | \isreal{is_type_char} + | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) - | \isreal{is_type_complex} + | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) - | \isreal{is_type_const} + | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) - | Is the type object correct?. It is possible to create incorrect types. - | For example, we can define a function that returns a enum and then - | delete the enum type. If this function returns false, the type should - | not be used in disassembly. Please note that this function does not - | verify all involved types: for example, pointers to undefined types - | are permitted. + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) - | \isdecl{is_type_array} + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) - | \isdecl{is_type_bitfld} + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) - | \isdecl{is_type_bool} + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) - | \isdecl{is_type_char} + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) - | \isdecl{is_type_complex} + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) - | \isdecl{is_type_const} + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) - | \isdecl{is_type_double} + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) - | \isdecl{is_type_enum} + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) - | \isdecl{is_type_float} + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) - | \isdecl{is_type_floating} + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) - | \isdecl{is_type_func} + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) - | \isdecl{is_type_int} + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) - | \isdecl{is_type_int128} + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) - | \isdecl{is_type_int16} + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) - | \isdecl{is_type_int32} + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) - | \isdecl{is_type_int64} + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) - | \isdecl{is_typeid_last} + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) - | \isdecl{is_type_ldouble} + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) - | \isdecl{is_type_paf} + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) - | \isdecl{is_type_partial} + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) - | \isdecl{is_type_ptr} + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) - | \isdecl{is_type_struct} + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) - | \isdecl{is_type_sue} + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) - | \isdecl{is_type_tbyte} + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) - | \isdecl{is_type_typedef} + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) - | \isdecl{is_type_uchar} + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) - | \isdecl{is_type_struni} + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) - | \isdecl{is_type_uint} + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) - | \isdecl{is_type_uint128} + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) - | \isdecl{is_type_uint16} + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) - | \isdecl{is_type_uint32} + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) - | \isdecl{is_type_uint64} + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) - | \isdecl{is_type_union} + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) - | \isdecl{is_type_unknown} + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) - | \isdecl{is_type_void} + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) - | \isdecl{is_type_volatile} + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) - | \isreal{is_type_double} + | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) + | is_empty_udt(self) -> bool | Is an empty struct/union? (has no fields) | | is_enum(self, *args) - | \isreal{is_type_enum} + | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) - | \isreal{is_type_ext_arithmetic} + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) - | \isreal{is_type_ext_integral} + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) - | \isreal{is_type_float} + | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) - | \isreal{is_type_floating} + | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) - | Is this a forward declaration?. Forward declarations are placeholders: - | the type definition does not exist + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) - | Was the named type found in some base type library (not the top level - | type library)?. If yes, it usually means that the type comes from some - | loaded type library, not the local type library for the database + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) - | \isreal{is_type_func} + | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) + | is_funcptr(self) -> bool | Is this pointer to a function? | | is_high_func(self, *args) - | 'BT_FUNC' : Is high level type? + | is_high_func(self) -> bool | | is_int(self, *args) - | \isreal{is_type_int} + | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) - | \isreal{is_type_int128} + | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) - | \isreal{is_type_int16} + | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) - | \isreal{is_type_int32} + | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) - | \isreal{is_type_int64} + | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) - | \isreal{is_type_integral} + | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) - | \isreal{is_type_ldouble} + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) | is_manually_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) - | Floating value or an object consisting of one floating member - | entirely. + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) - | \isreal{is_type_paf} + | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) - | \isreal{is_type_partial} + | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) - | \isreal{is_type_ptr} + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) - | \isreal{is_type_ptr_or_array} + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) - | \tinfocc{is_purging_cc} + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) - | Is "void *"?. This function does not check the pointer attributes and - | type modifiers. + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) + | is_scalar(self) -> bool | Does the type represent a single number? | | is_shifted_ptr(self, *args) + | is_shifted_ptr(self) -> bool | Is a shifted pointer? | | is_signed(self, *args) + | is_signed(self) -> bool | Is this a signed type? | | is_small_udt(self, *args) + | is_small_udt(self) -> bool | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) + | is_sse_type(self) -> bool | Is a SSE vector type? | | is_struct(self, *args) - | \isreal{is_type_struct} + | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) - | \isreal{is_type_sue} + | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) - | \isreal{is_type_tbyte} + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) - | Is this type a type reference?. Type references cannot be modified. - | Once created, they do not change. Because of this, the set_... - | functions applied to typerefs create a new type id. Other types are - | modified directly. + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) - | \isreal{is_type_uchar} + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) - | \isreal{is_type_struni} + | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) - | \isreal{is_type_uint} + | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) - | \isreal{is_type_uint128} + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) - | \isreal{is_type_uint16} + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) - | \isreal{is_type_uint32} + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) - | \isreal{is_type_uint64} + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) - | \isreal{is_type_union} + | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) - | \isreal{is_type_unknown} + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) + | is_unsigned(self) -> bool | Is this an unsigned type? | | is_user_cc(self, *args) - | \tinfocc{is_user_cc} + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) - | \tinfocc{is_vararg_cc} + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) + | is_varstruct(self) -> bool | Is a variable-size structure? | | is_vftable(self, *args) + | is_vftable(self) -> bool | Is a vftable type? | | is_void(self, *args) - | \isreal{is_type_void} + | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) - | \isreal{is_type_volatile} + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) - | !( 'empty()' ) && !( 'is_decl_partial()' ) + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) - | Is the type really present? (not a reference to a missing type, for - | example) + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) | read_bitfield_value(self, v, bitoff) -> uint64 - | v: uint64 - | bitoff: int + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) - | Replace the current type with the ptr obj or array element. This - | function performs one of the following conversions:type[] => typetype* - | => type If the conversion is performed successfully, return true + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) + | requires_qualifier(self, name, offset) -> bool | Requires full qualifier? (name is not unique) | - | requires_qualifier(self, name, offset) -> bool - | @param name: field name (C++: const char *) - | @param offset (C++: uint64) - | @return: if the name is not unique, returns true + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) - | Serialize 'tinfo_t' object into a type string. + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. | - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | @param sudt_flags (C++: int) + | @param sudt_flags: (C++: int) | | set_attr(self, *args) + | set_attr(self, ta, may_overwrite=True) -> bool | Set a type attribute. If necessary, a new typid will be created. | - | set_attr(self, ta, may_overwrite=True) -> bool - | @param ta (C++: const type_attr_t &) - | @param may_overwrite (C++: bool) + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) - | Set type attributes. If necessary, a new typid will be created. this - | function modifies tav! (returns old attributes, if any) - | | set_attrs(self, tav) -> bool - | @param tav (C++: type_attrs_t *) - | @return: false: bad attributes + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) | set_const(self) | | set_declalign(self, *args) + | set_declalign(self, declalign) -> bool | Set declared alignment of the type. | - | set_declalign(self, declalign) -> bool - | @param declalign (C++: uchar) + | @param declalign: (C++: uchar) | | set_methods(self, *args) - | 'BT_COMPLEX' : set the list of member functions. This function - | consumes 'methods' (makes it empty). - | | set_methods(self, methods) -> bool - | @param methods (C++: udtmembervec_t &) - | @return: false if this type is not a udt, or if the given list is - | empty + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) | set_modifiers(self, mod) - | mod: type_t + | + | @param mod: type_t | | set_named_type(self, *args) | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | til: til_t * - | ord: uint32 - | ntf_flags: int - | name: char const * + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) | set_volatile(self) | | swap(self, *args) + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: tinfo_t &) + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | dst: uint64 - | v: uint64 - | bitoff: int + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) | get_stock(id) -> tinfo_t - | id: enum stock_type_id_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86967,7 +84610,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) tinfo_t_get_stock(id) -> tinfo_t - id: enum stock_type_id_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -86980,34 +84624,35 @@ class tinfo_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t - | s: int + | + | @param s: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | apply_to(self, tif, out=None, name=None, cmt=None) -> int | Call this function to initiate the traversal. | - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | @param tif (C++: const tinfo_t &) - | @param out (C++: type_mods_t *) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) + | prune_now(self) | To refuse to visit children of the current type, use this: | | visit_type(self, *args) - | Visit a subtype. this function must be implemented in the derived - | class. it may optionally fill out with the new type info. this can be - | used to modify types (in this case the 'out' argument of 'apply_to()' - | may not be NULL) return 0 to continue the traversal. return !=0 to - | stop the traversal. - | | visit_type(self, out, tif, name, cmt) -> int - | @param out (C++: type_mods_t *) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87019,7 +84664,7 @@ class tinfo_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -87039,14 +84684,16 @@ class type_attr_t(__builtin__.object) | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -87060,13 +84707,13 @@ class type_attr_t(__builtin__.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87083,11 +84730,14 @@ class type_attrs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> type_attr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | x: qvector< type_attr_t > const & + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87099,19 +84749,20 @@ class type_attrs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: type_attr_t const & + | + | @param i: size_t + | @param v: type_attr_t const & | | at(self, *args) | at(self, _idx) -> type_attr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -87124,16 +84775,16 @@ class type_attrs_t(__builtin__.object) | | end(self, *args) | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) | erase(self, it) -> type_attr_t - | it: qvector< type_attr_t >::iterator | + | @param it: qvector< type_attr_t >::iterator | | erase(self, first, last) -> type_attr_t - | first: qvector< type_attr_t >::iterator - | last: qvector< type_attr_t >::iterator + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) | extract(self) -> type_attr_t @@ -87143,47 +84794,56 @@ class type_attrs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=type_attr_t()) - | x: type_attr_t const & + | + | @param x: type_attr_t const & | | inject(self, *args) | inject(self, s, len) - | s: type_attr_t * - | len: size_t + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> type_attr_t - | it: qvector< type_attr_t >::iterator - | x: type_attr_t const & + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: type_attr_t const & + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: type_attr_t const & | + | @param _newsize: size_t + | @param x: type_attr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< type_attr_t > & + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) | truncate(self) @@ -87235,19 +84895,21 @@ class type_mods_t(__builtin__.object) | | set_new_cmt(self, *args) | set_new_cmt(self, c) - | @param c (C++: const qstring &) + | + | @param c: qstring const & | | set_new_name(self, *args) | set_new_name(self, n) - | @param n (C++: const qstring &) + | + | @param n: qstring const & | | set_new_type(self, *args) - | The visit_type() function may optionally save the modified type info. - | Use the following functions for that. The new name and comment will be - | applied only if the current tinfo element has storage for them. - | | set_new_type(self, t) - | @param t (C++: const tinfo_t &) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87259,19 +84921,19 @@ class type_mods_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87288,21 +84950,23 @@ class typedef_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | _name: char const * - | _resolve: bool | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | ord: uint32 - | _resolve: bool + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: typedef_type_data_t &) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87314,16 +84978,22 @@ class typedef_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87340,18 +85010,21 @@ class udt_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -87417,7 +85090,8 @@ class udt_member_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: udt_member_t &) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87429,31 +85103,31 @@ class udt_member_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87484,7 +85158,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) | is_last_baseclass(self, idx) -> bool - | @param idx (C++: size_t) + | + | @param idx: size_t | | is_msstruct(self, *args) | is_msstruct(self) -> bool @@ -87500,34 +85175,35 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) | swap(self, r) - | @param r (C++: udt_type_data_t &) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87540,11 +85216,13 @@ class udt_type_data_t(udtmembervec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87554,31 +85232,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -87591,71 +85275,77 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -87706,11 +85396,13 @@ class udtmembervec_t(udtmembervec_template_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87720,31 +85412,37 @@ class udtmembervec_t(udtmembervec_template_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -87757,78 +85455,85 @@ class udtmembervec_t(udtmembervec_template_t) | | end(self, *args) | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< udt_member_t > & + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) | truncate(self) @@ -87851,15 +85556,19 @@ class udtmembervec_template_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> udtmembervec_template_t - | x: qvector< udt_member_t > const & + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87869,33 +85578,39 @@ class udtmembervec_template_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -87908,78 +85623,85 @@ class udtmembervec_template_t(__builtin__.object) | | end(self, *args) | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< udt_member_t > & + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) | truncate(self) @@ -88005,27 +85727,27 @@ class udtmembervec_template_t(__builtin__.object) Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t Read a typed idc object from the byte vector. - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t Collection of register objects. Read a typed idc object from the database - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: @@ -88033,28 +85755,30 @@ unpack_object_from_bv(*args) unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * - ti: til_t * - type: type_t const * - fields: p_list const * - ea: ea_t - pio_flags: int + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int Help on function use_golang_cc in module ida_typeinf: use_golang_cc(*args) + use_golang_cc() -> bool is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -88079,19 +85803,19 @@ class valstr_t(__builtin__.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -88136,7 +85860,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88146,19 +85871,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -88171,16 +85897,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -88190,47 +85916,56 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -88253,11 +85988,14 @@ class valstrvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | x: qvector< valstr_t > const & + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88269,19 +86007,20 @@ class valstrvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -88294,16 +86033,16 @@ class valstrvec_t(__builtin__.object) | | end(self, *args) | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -88313,47 +86052,56 @@ class valstrvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -88379,1234 +86127,270 @@ class valstrvec_t(__builtin__.object) Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) - Verify 'argloc_t' . - verify_argloc(vloc, size, gaps) -> int - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) verify_tinfo(typid) -> int - typid: uint32 + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) visit_subtypes(visitor, out, tif, name, cmt) -> int - visitor: tinfo_visitor_t * - out: type_mods_t * - tif: tinfo_t const & - name: char const * - cmt: char const * + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - typid: uint32 - dst: uint64 - v: uint64 - bitoff: int + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_GOLANG_OK -""" -can use __golang calling convention -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FAI_UNUSED -""" -argument is not used by the function -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_CONST -""" -const member function -""" - -ida_typeinf.FTI_CTOR -""" -constructor -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_DTOR -""" -destructor -""" - -ida_typeinf.FTI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" -'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_METHODS -""" -'tinfo_t' : print udt methods -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" -'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" -'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" -'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" -'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_METHOD -""" -denotes a udt member function -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) + can_decode(ea) -> bool Can the bytes at address 'ea' be decoded as instruction? - can_decode(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction Help on function construct_macro in module ida_ua: construct_macro(*args) construct_macro(insn, enable, build_macro) -> bool See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * Help on function construct_macro2 in module ida_ua: construct_macro2(*args) construct_macro2(_this, insn, enable) -> bool - @param _this (C++: macro_constructor_t *) - @param insn (C++: insn_t *) - @param enable (C++: bool) + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t Create a new output context. To delete it, just use "delete pctx" - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - decode_insn(out, ea) -> int - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) - decode_preceding_insn(out, ea) -> PyObject * + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) + decode_prev_insn(out, ea) -> ea_t Decode previous instruction if it exists, fill 'out'. - decode_prev_insn(out, ea) -> ea_t - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) - Get 'op_t::dtype' from size. - get_dtype_by_size(size) -> int - @param size (C++: asize_t) + Get op_t::dtype from size. + + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: get_dtype_flag(*args) - Get flags for 'op_t::dtype' field. - get_dtype_flag(dtype) -> flags_t - @param dtype (C++: op_dtype_t) + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) + get_dtype_size(dtype) -> size_t Get size of opt_::dtype field. - get_dtype_size(dtype) -> size_t - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - get_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) + get_printable_immvals(ea, n, F=0) -> PyObject * Get immediate ready-to-print values at the specified address - get_printable_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) insn_add_cref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum cref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) insn_add_dref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum dref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) insn_add_off_drefs(insn, x, type, outf) -> ea_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - type: enum dref_t - outf: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) insn_create_stkvar(insn, x, v, flags) -> bool - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - v: adiff_t - flags: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -89620,14 +86404,15 @@ class insn_t(__builtin__.object) | | __get_operand__(self, *args) | __get_operand__(self, n) -> op_t - | n: int + | + | @param n: int | | __get_ops__(self, *args) | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -89638,74 +86423,89 @@ class insn_t(__builtin__.object) | | __set_auxpref__(self, *args) | __set_auxpref__(self, v) - | v: uint32 + | + | @param v: uint32 | | add_cref(self, *args) + | add_cref(self, to, opoff, type) | Add a code cross-reference from the instruction. | - | add_cref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction. if - | the offset is unknown, then 0. (C++: int) - | @param type: type of xref (C++: cref_t) + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) - | Add a data cross-reference from the instruction. See 'add_off_drefs()' - | - usually it can be used in most cases. - | | add_dref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction if - | the offset is unknown, then 0 (C++: int) - | @param type: type of xref (C++: dref_t) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) - | Add xrefs for an operand of the instruction. This function creates all - | cross references for 'enum', 'offset' and 'structure offset' operands. - | Use 'add_off_drefs()' in the presence of negative offsets. - | | add_off_drefs(self, x, type, outf) -> ea_t - | @param x: reference to operand (C++: const op_t &) - | @param type: type of xref (C++: dref_t) - | @param outf: out_value() flags. These flags should match the flags - | used to output the operand (C++: int) - | @return: if is_off() : the reference target address (the same as - | calc_reference_data). if is_stroff() : BADADDR because for - | stroffs the target address is unknown else: BADADDR because - | enums do not represent addresses + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) | assign(self, other) - | other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) | create_op_data(self, ea_, opoff, dtype) -> bool - | ea_: ea_t - | opoff: int - | dtype: op_dtype_t + | Convenient alias. | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t | | create_op_data(self, ea_, op) -> bool - | ea_: ea_t - | op: op_t const & + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) | create_stkvar(self, x, v, flags_) -> bool - | x: op_t const & - | v: adiff_t - | flags_: int + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) - | see 'instruc_t::feature' - | | get_canon_feature(self, ph) -> uint32 - | @param ph (C++: const processor_t &) + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) - | see 'instruc_t::name' - | | get_canon_mnem(self, ph) -> char const - | @param ph (C++: const processor_t &) + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) | get_next_byte(self) -> uint8 @@ -89720,15 +86520,19 @@ class insn_t(__builtin__.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) + | is_64bit(self) -> bool | Belongs to a 64bit segment? | | is_canon_insn(self, *args) - | see \ph{ 'is_canon_insn()' } - | | is_canon_insn(self, ph) -> bool - | @param ph (C++: const processor_t &) + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool | | is_macro(self, *args) + | is_macro(self) -> bool | Is a macro instruction? | | ---------------------------------------------------------------------- @@ -89759,32 +86563,38 @@ class insn_t(__builtin__.object) | auxpref | __get_auxpref__(self) -> uint32 | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -89799,15 +86609,16 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) insn_t__from_ptrval__(ptrval) -> insn_t - ptrval: size_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) + is_floating_dtype(dtype) -> bool Is a floating type operand? - is_floating_dtype(dtype) -> bool - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on class macro_constructor_t in module ida_ua: @@ -89820,28 +86631,25 @@ class macro_constructor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> macro_constructor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | build_macro(self, *args) + | build_macro(self, insn, may_go_forward) -> bool | Try to extend the instruction. | - | build_macro(self, insn, may_go_forward) -> bool - | @param insn: Instruction to modify, usually the first instruction of - | the macro (C++: insn_t *) - | @param may_go_forward: Is it ok to consider the next instruction for - | the macro? This argument may be false, for - | example, if there is a cross reference to the - | end of INSN. In this case creating a macro is - | not desired. However, it may still be useful to - | perform minor tweaks to the instruction using - | the information about the surrounding - | instructions. (C++: bool) - | @return: true if created an macro instruction. This function may - | modify 'insn' and return false; these changes will be - | accepted by the kernel but the instruction will not be - | considered as a macro. + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -89853,7 +86661,7 @@ class macro_constructor_t(__builtin__.object) | list of weak references to the object (if defined) | | reserved - | macro_constructor_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -89867,52 +86675,46 @@ class macro_constructor_t(__builtin__.object) Help on function map_code_ea in module ida_ua: map_code_ea(*args) - Map a code address. This function takes into account the segment - translations. - map_code_ea(insn, addr, opnum) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_code_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) - Map a data address. - map_data_ea(insn, addr, opnum=-1) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_data_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) map_ea(insn, op, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param op (C++: const op_t &) - @param iscode (C++: bool) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool map_ea(insn, addr, opnum, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - addr: ea_t - opnum: int - @param iscode (C++: bool) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -89940,46 +86742,54 @@ class op_t(__builtin__.object) | | __set_addr__(self, *args) | __set_addr__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) | __set_reg_phrase__(self, r) - | r: uint16 + | + | @param r: uint16 | | __set_specval__(self, *args) | __set_specval__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_value__(self, *args) | __set_value__(self, v) - | v: ea_t + | + | @param v: ea_t | | assign(self, *args) | assign(self, other) - | other: op_t const & + | + | @param other: op_t const & | | clr_shown(self, *args) + | clr_shown(self) | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) + | is_imm(self, v) -> bool | Is immediate operand? | - | is_imm(self, v) -> bool - | @param v (C++: uval_t) + | @param v: (C++: uval_t) | | is_reg(self, *args) + | is_reg(self, r) -> bool | Is register operand? | - | is_reg(self, r) -> bool - | @param r (C++: int) + | @param r: (C++: int) | | set_shown(self, *args) + | set_shown(self) | Set operand to be shown. | | shown(self, *args) + | shown(self) -> bool | Is operand set to be shown? | | ---------------------------------------------------------------------- @@ -89995,19 +86805,19 @@ class op_t(__builtin__.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -90016,16 +86826,16 @@ class op_t(__builtin__.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -90034,7 +86844,7 @@ class op_t(__builtin__.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t @@ -90049,7 +86859,8 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) op_t__from_ptrval__(ptrval) -> op_t - ptrval: size_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -90060,11 +86871,13 @@ class operands_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array - | data: op_t (&)[8] + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -90076,15 +86889,19 @@ class operands_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: op_t const & + | + | @param i: size_t + | @param v: op_t const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -90099,7 +86916,7 @@ class operands_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -90131,21 +86948,21 @@ class outctx_base_t(__builtin__.object) | display_voids(self) -> bool | | flush_buf(self, *args) - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -90154,84 +86971,80 @@ class outctx_base_t(__builtin__.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) | multiline(self) -> bool @@ -90240,153 +87053,156 @@ class outctx_base_t(__builtin__.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -90396,24 +87212,25 @@ class outctx_base_t(__builtin__.object) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | setup_outctx(self, *args) + | setup_outctx(self, prefix, makeline_flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, makeline_flags) - | @param prefix (C++: const char *) - | @param makeline_flags (C++: int) + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -90425,13 +87242,13 @@ class outctx_base_t(__builtin__.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -90440,7 +87257,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - ptrval: size_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -90460,17 +87278,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) | gen_func_footer(self, pfn) - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) | gen_func_header(self, pfn) - | @param pfn (C++: func_t *) + | + | @param pfn: func_t * | | gen_header(self, *args) | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | @param flags (C++: int) - | @param proc_name (C++: const char *) - | @param proc_flavour (C++: const char *) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) | gen_header_extra(self) @@ -90479,118 +87300,119 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) - | Output custom mnemonic for 'insn'. E.g. if it should differ from the - | one in 'ph.instruc'. This function outputs colored text. See - | 'out_mnem' - | | out_custom_mnem(self, mnem, width=8, postfix=None) - | @param mnem: custom mnemonic (C++: const char *) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to 'mnem' (C++: const char *) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) | out_data(self, analyze_only) - | @param analyze_only (C++: bool) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) - | Print all operand values as commented character constants. This - | function is used to comment void operands with their representation in - | the form of character constants. This function outputs a colored text. + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) - | Output instruction mnemonic for 'insn' using information in - | 'ph.instruc' array. This function outputs a colored text. It should be - | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will - | output at least one space after the instruction. mnemonic even if the - | specified 'width' is not enough. - | | out_mnem(self, width=8, postfix=None) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to the instruction mnemonic - | (C++: const char *) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) - | Output instruction mnemonic using information in 'insn'. It should be - | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or - | 'out_mnem' . This function outputs a colored text. + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) - | Use this function to output an operand of an instruction. This - | function checks for the existence of a manually defined operand and - | will output it if it exists. It should be called from - | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This - | function outputs a colored text. - | | out_one_operand(self, n) -> bool - | @param n: number of operand (C++: int) - | @retval: 1 - operand is displayed - | @retval: 0 - operand is hidden + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) | out_specea(self, segtype) -> bool - | @param segtype (C++: uchar) + | + | @param segtype: uchar | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) | set_bin_state(self, value) - | @param value (C++: int) + | + | @param value: int | | setup_outctx(self, *args) + | setup_outctx(self, prefix, flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, flags) - | @param prefix (C++: const char *) - | flags: int + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ash - | outctx_t_ash_get(self) -> asm_t + | ash | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn | | ph - | outctx_t_ph_get(self) -> processor_t + | ph | | procmod - | outctx_t_procmod_get(self) -> procmod_t + | procmod | | saved_immvals - | outctx_t_saved_immvals_get(self) -> uval_t [8] + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -90605,21 +87427,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -90628,81 +87450,77 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) | multiline(self) -> bool @@ -90711,145 +87529,147 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | set_comment_addr(self, *args) | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -90859,17 +87679,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -90881,332 +87702,77 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) outctx_t__from_ptrval__(ptrval) -> outctx_t - ptrval: size_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) + print_insn_mnem(ea) -> str Print instruction mnemonics. - print_insn_mnem(ea) -> str - @param ea: linear address of the instruction (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address of the instruction + @return: success Help on function print_operand in module ida_ua: print_operand(*args) - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -in case of an error, use a CP_REPLCHAR instead -""" +Cross-references are automatically sorted.""" -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_dref in module ida_xref: add_dref(*args) + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: @@ -91249,10 +87815,10 @@ class cases_and_targets_t(__builtin__.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -91272,15 +87838,19 @@ class casevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -91289,22 +87859,28 @@ class casevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | _del(self, *args) | _del(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) | @@ -91332,74 +87908,86 @@ class casevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) | has(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) | inject(self, s, len) - | s: qvector< signed-ea-like-numeric-type > *↗ - | len: size_t + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) | truncate(self) @@ -91452,171 +88040,165 @@ create_switch_xrefs(*args) Help on function del_cref in module ida_xref: del_cref(*args) + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) delete_switch_table(jump_ea, si) - jump_ea: ea_t - si: switch_info_t const & + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) + has_external_refs(pfn, ea) -> bool Has a location external to the function references? - has_external_refs(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -91630,27 +88212,61 @@ class xrefblk_t(__builtin__.object) | | __repr__ = _swig_repr(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) | first_from(self, _from, flags) -> bool - | _from: ea_t - | flags: int + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) | first_to(self, _to, flags) -> bool - | _to: ea_t - | flags: int + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) | next_from(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) | next_to(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -91662,22 +88278,22 @@ class xrefblk_t(__builtin__.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -91688,57 +88304,24 @@ class xrefblk_t(__builtin__.object) Help on function xrefchar in module ida_xref: xrefchar(*args) + xrefchar(xrtype) -> char Get character describing the xref type. - xrefchar(xrtype) -> char - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -91829,13 +88412,13 @@ EVAL_FAILURE(code) Help on function get_cmt in module ida_bytes: get_cmt(*args) + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -92081,40 +88664,30 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_default_til in module idc: @@ -92127,32 +88700,30 @@ add_default_til(name) Help on function add_dref in module ida_xref: add_dref(*args) + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function add_enum in module idc: @@ -92193,39 +88764,39 @@ add_enum_member(enum_id, name, value, bmask) Help on function add_func in module ida_funcs: add_func(*args) - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -92250,16 +88821,15 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function add_struc in module idc: @@ -92316,13 +88886,12 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function append_func_tail in module idc: @@ -92354,19 +88923,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_yn in module ida_kernwin: ask_yn(*args) + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -92384,53 +88956,51 @@ atol(s) Help on function attach_process in module ida_dbg: attach_process(*args) - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -92485,11 +89055,11 @@ can_exc_continue() Help on function check_bpt in module ida_dbg: check_bpt(*args) + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -92511,17 +89081,15 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -92544,32 +89112,30 @@ create_byte(ea) Help on function create_custdata in module ida_bytes: create_custdata(*args) + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module idc: @@ -92601,16 +89167,16 @@ create_float(ea) Help on function create_insn in module ida_ua: create_insn(*args) - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -92698,16 +89264,15 @@ create_yword(ea) Help on function define_exception in module ida_dbg: define_exception(*args) + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -92741,49 +89306,45 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: del_cref(*args) + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -92803,25 +89364,26 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_hash_string in module idc: @@ -92836,72 +89398,70 @@ del_hash_string(hash_id, key) Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function del_stkpnt in module idc: @@ -92968,28 +89528,30 @@ demangle_name(name, disable_mask) Help on function detach_process in module ida_dbg: detach_process(*args) - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -93024,8 +89586,9 @@ eval_idc(expr) Help on function exit_process in module ida_dbg: exit_process(*args) - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -93052,34 +89615,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -93095,12 +89658,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -93117,24 +89680,24 @@ find_selector(val) Help on function find_suspop in module ida_search: find_suspop(*args) + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -93308,13 +89871,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -93338,24 +89903,24 @@ get_bpt_ea(n) Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -93374,13 +89939,13 @@ get_bytes(ea, size, use_dbg=False) Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -93402,19 +89967,19 @@ get_curline() Help on function get_current_thread in module ida_dbg: get_current_thread(*args) - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -93424,69 +89989,70 @@ get_debugger_event_cond(*args) Help on function get_entry in module ida_entry: get_entry(*args) + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) + get_entry_qty() -> size_t Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -93505,18 +90071,18 @@ get_enum_member(enum_id, value, serial, bmask) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -93531,10 +90097,10 @@ get_enum_member_cmt(const_id, repeatable) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -93548,40 +90114,39 @@ get_enum_member_name(const_id) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -93680,8 +90245,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -93697,67 +90263,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -93774,13 +90336,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -93839,7 +90403,10 @@ get_first_seg() Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -93894,12 +90461,12 @@ get_fixup_target_type(ea) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -93963,11 +90530,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: get_full_flags(*args) + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -94057,27 +90624,26 @@ get_inf_attr(attr) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) + get_input_file_path() -> str Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -94091,11 +90657,11 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -94151,7 +90717,10 @@ get_last_member(sid) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -94164,11 +90733,11 @@ get_local_tinfo(ordinal) Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -94341,16 +90910,15 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -94365,65 +90933,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -94453,24 +91017,26 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -94549,11 +91115,11 @@ get_next_seg(ea) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -94604,22 +91170,22 @@ get_ordinal_qty() Help on function get_original_byte in module ida_bytes: get_original_byte(*args) - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -94649,11 +91215,11 @@ get_prev_fchunk(ea) Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -94713,78 +91279,81 @@ get_prev_offset(sid, offset) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_reg_val in module ida_dbg: get_reg_val(*args) - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) + get_root_filename() -> str Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -94837,19 +91406,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -94891,8 +91461,11 @@ get_sreg(ea, reg) Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_str_type in module idc: @@ -94916,67 +91489,68 @@ get_strlit_contents(ea, length=-1, strtype=0) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -94993,8 +91567,9 @@ get_tev_reg_mem_qty(tev) Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -95004,19 +91579,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -95029,10 +91607,10 @@ get_tinfo(ea) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -95046,35 +91624,35 @@ get_type(ea) Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -95087,32 +91665,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -95207,11 +91784,11 @@ is_align(F) Help on function is_bf in module ida_enum: is_bf(*args) - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -95372,10 +91949,10 @@ is_unknown(F) Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -95384,47 +91961,46 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -95463,7 +92039,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -95476,11 +92052,11 @@ msg(*args) Help on function next_addr in module ida_bytes: next_addr(*args) + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -95508,115 +92084,115 @@ next_head(ea, maxea=BADADDR)↗ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function op_num in module ida_bytes: op_num(*args) - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: op_offset(*args) - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -95676,25 +92252,25 @@ op_plain_offset(ea, n, base) Help on function op_seg in module ida_bytes: op_seg(*args) - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module idc: @@ -95733,79 +92309,75 @@ parse_decls(inputtype, flags=0) Help on function patch_byte in module ida_bytes: patch_byte(*args) - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -95821,22 +92393,20 @@ plan_and_wait(sEA, eEA, final_pass=True) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -95852,11 +92422,11 @@ prev_head(ea, minea=0) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -95930,20 +92500,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -95974,8 +92545,10 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -96022,43 +92595,45 @@ readstr(handle) Help on function rebase_program in module ida_segment: rebase_program(*args) + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -96088,15 +92663,14 @@ rename_array(array_id, newname) Help on function rename_entry in module ida_entry: rename_entry(*args) + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function resume_process in module idc: @@ -96105,18 +92679,19 @@ resume_process() Help on function resume_thread in module ida_dbg: resume_thread(*args) + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) + retrieve_input_file_md5() -> str Get input file md5. Help on function rotate_byte in module idc: @@ -96148,19 +92723,15 @@ rotate_word(x, count) Help on function run_to in module ida_dbg: run_to(*args) - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -96174,11 +92745,11 @@ save_database(idbname, flags=0) Help on function save_trace_file in module ida_dbg: save_trace_file(*args) + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -96199,14 +92770,14 @@ sel2para(sel) Help on function select_thread in module ida_dbg: select_thread(*args) - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -96310,14 +92881,15 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) Help on function set_cmt in module ida_bytes: set_cmt(*args) + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_color in module idc: @@ -96333,18 +92905,19 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -96360,76 +92933,76 @@ set_default_sreg_value(ea, reg, value) Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -96501,12 +93074,12 @@ set_func_cmt(ea, cmt, repeatable) Help on function set_func_end in module ida_funcs: set_func_end(*args) + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_flags in module idc: @@ -96543,11 +93116,11 @@ set_hash_string(hash_id, key, value) Help on function set_ida_state in module ida_auto: set_ida_state(*args) + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function set_inf_attr in module idc: @@ -96570,12 +93143,11 @@ set_local_type(ordinal, input, flags) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -96643,14 +93215,14 @@ set_name(ea, name, flags=0) Help on function set_processor_type in module ida_idp: set_processor_type(*args) - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_reg_value in module idc: @@ -96667,22 +93239,21 @@ set_reg_value(value, name) Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -96771,57 +93342,57 @@ set_segment_bounds(ea, startea, endea, flags) Help on function set_selector in module ida_segment: set_selector(*args) - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -96839,11 +93410,11 @@ set_struc_idx(sid, index) Help on function set_struc_name in module ida_struct: set_struc_name(*args) + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -96860,21 +93431,20 @@ set_tail_owner(tailea, funcea) Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -96893,42 +93463,44 @@ split_sreg_range(ea, reg, value, tag=2) Help on function start_process in module ida_dbg: start_process(*args) - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -96945,38 +93517,39 @@ substr(s, x1, x2) Help on function suspend_process in module ida_dbg: suspend_process(*args) - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function to_ea in module idc: @@ -96997,20 +93570,21 @@ toggle_bnot(ea, n) Help on function toggle_sign in module ida_bytes: toggle_sign(*args) - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -97069,16 +93643,15 @@ value_is_string(var) Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: @@ -97119,3 +93692,15683 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + only 32/16bit functions can be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block (after a tail call) + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + empty ? function_mode : snippet mode + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + R-records. + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_IF_ENABLED in module ida_kernwin: + + add item only if it is enabled (prevents unusable, greyed-out items) + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: "#tooltip + #column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom popup menu names. Used to replace labels for the standard + handlers (Insert, Delete, Edit, Refresh). + An empty name means that the default name will be used. + @note: Availability of items in the popup menu is determined by the `CH_CAN_...` + flags. + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable PMF_PUSH_MODE_MASK in module ida_lumina: + + Conflict resolution mode. + +Documentation on variable AMDF_UPGRADE in module ida_lumina: + + apply kvps that seem to be of higher "quality" than what's currently in the IDB + +Documentation on variable AMDF_FORCE in module ida_lumina: + + apply kvps regardless of what's currently in the IDB, possibly removing some + attributes currently present (e.g., name, or prototype could be lost) + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_NOCHECK in module ida_name: + + Don't fail if the name contains invalid characters. If this bit is clear, all + invalid chars (those !is_ident_cp()) will be replaced by SUBSTCHAR List of valid + characters is defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v7.7. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/pydoc_injections3.txt b/pydoc_injections3.txt index 82331f2..988ef72 100644 --- a/pydoc_injections3.txt +++ b/pydoc_injections3.txt @@ -1,34 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) -> 'void' + auto_apply_tail(tail_ea, parent_ea) Plan to apply the tail_ea chunk to the parent - auto_apply_tail(tail_ea, parent_ea) - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) -> 'void' + auto_apply_type(caller, callee) Plan to apply the callee's type to the calling point. - auto_apply_type(caller, callee) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) -> 'void' - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - auto_cancel(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -55,264 +75,269 @@ class auto_display_t(builtins.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type Help on function auto_get in module ida_auto: auto_get(*args) -> 'ea_t' - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - auto_get(type, lowEA, highEA) -> ea_t - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) -> 'bool' + auto_is_ok() -> bool Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) -> 'void' + auto_make_code(ea) Plan to make code. - auto_make_code(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) -> 'void' + auto_make_proc(ea) Plan to make code&function. - auto_make_proc(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_step in module ida_auto: auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool Analyze one address in the specified range and return true. - auto_make_step(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: if processed anything. false means that there is nothing to - process in the specified range. + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) -> 'void' + auto_mark(ea, type) Put single address into a queue. Queues keep addresses sorted. - auto_mark(ea, type) - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) -> 'int' + auto_recreate_insn(ea) -> int Try to create instruction - auto_recreate_insn(ea) -> int - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) -> 'ssize_t' + auto_wait_range(ea1, ea2) -> ssize_t Process everything in the specified range and return true. - auto_wait_range(ea1, ea2) -> ssize_t - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) -> 'bool' - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - enable_auto(enable) -> bool - @param enable (C++: bool) - @return: old state + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state Help on function get_auto_display in module ida_auto: get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - get_auto_display(auto_display) -> bool - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) -> 'atype_t' - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) -> 'bool' + is_auto_enabled() -> bool Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) -> 'bool' - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) -> 'bool' - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) -> 'ea_t' - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - peek_auto_queue(low_ea, type) -> ea_t - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) -> 'int' - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - plan_and_wait(ea1, ea2, final_pass=True) -> int - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - @retval: 1 - ok - @retval: 0 - Ctrl-Break was pressed + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) -> 'void' + plan_ea(ea) Plan to perform reanalysis. - plan_ea(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) -> 'void' + plan_range(sEA, eEA) Plan to perform reanalysis. - plan_range(sEA, eEA) - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) -> 'void' - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - reanalyze_callers(ea, noret) - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) -> 'void' + revert_ida_decisions(ea1, ea2) Delete all analysis info that IDA generated for for the given range. - revert_ida_decisions(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) -> 'atype_t' + set_auto_state(new_state) -> atype_t Set current state of autoanalyzer. - set_auto_state(new_state) -> atype_t - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) -> 'void' - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - show_addr(ea) - @param ea: - linear address to display (C++: ea_t) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) -> 'void' + show_auto(ea, type=AU_NONE) Change autoanalysis indicator value. - show_auto(ea, type=AU_NONE) - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" Help on class bitrange_t in module ida_bitrange: @@ -323,32 +348,39 @@ class bitrange_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __init__(self, *args) | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t - | bit_ofs: uint16 - | size_in_bits: uint16 + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __repr__ = _swig_repr(self) | @@ -359,91 +391,99 @@ class bitrange_t(builtins.object) | delete_bitrange_t(self) | | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool | Apply mask to a bitrange | - | apply_mask(self, subrange) -> bool - | @param subrange: range inside the main bitrange to keep After this - | operation the main bitrange will be truncated to have - | only the bits that are specified by subrange. - | Example: [off=8,nbits=4], subrange[off=1,nbits=2] => - | [off=9,nbits=2] (C++: const bitrange_t &) - | @return: success + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success | | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint | Get offset of 1st bit. | | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint | Get size of the value in bits. | | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint | Size of the value in bytes. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | create_union(self, *args) -> 'void' + | create_union(self, r) | Create union of 2 ranges including the hole between them. | - | create_union(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Is the bitrange empty? | | extract(self, *args) -> 'bool' | extract(self, src, is_mf) -> bool - | src: void const * - | is_mf: bool + | + | @param src: void const * + | @param is_mf: bool | | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool | Does have common bits with another bitrange? | - | has_common(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) | Initialize offset and size to given values. | - | init(self, bit_ofs, size_in_bits) - | @param bit_ofs (C++: uint16) - | @param size_in_bits (C++: uint16) + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) | | inject(self, *args) -> 'bool' | inject(self, dst, src, is_mf) -> bool - | dst: void * - | src: bytevec_t const & - | is_mf: bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool | | intersect(self, *args) -> 'void' + | intersect(self, r) | Intersect two ranges. | - | intersect(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 | Convert to mask of 64 bits. | | reset(self, *args) -> 'void' + | reset(self) | Make the bitrange empty. | | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) | Shift range down (left) | - | shift_down(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) | Shift range up (right) | - | shift_up(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | sub(self, *args) -> 'bool' + | sub(self, r) -> bool | Subtract a bitrange. | - | sub(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -462,6 +502,19 @@ class bitrange_t(builtins.object) | | __hash__ = None +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + Help on function __walk_types_and_formats in module ida_bytes: __walk_types_and_formats(formats, type_action, format_action, installing) @@ -470,115 +523,115 @@ __walk_types_and_formats(formats, type_action, format_action, installing) Help on function add_byte in module ida_bytes: add_byte(*args) -> 'void' - Add a value to one byte of the program. This function works for wide - byte processors too. - add_byte(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) -> 'void' - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - add_dword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) -> 'bool' - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - add_mapping(_from, to, size) -> bool - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success Help on function add_qword in module ida_bytes: add_qword(*args) -> 'void' - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - add_qword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) -> 'void' - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - add_word(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: align_flag(*args) -> 'flags_t' + align_flag() -> flags_t Get a flags_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) -> 'bool' - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - append_cmt(ea, str, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) -> 'bool' + attach_custom_data_format(dtid, dfid) -> bool Attach the data format to the data type. - attach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - has already been attached to the data type + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: bin_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + bin_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: @@ -591,149 +644,182 @@ bin_search(*args) -> 'ea_t' @param data: the prepared data to search for (see parse_binpat_str()) @param flags: combination of BIN_SEARCH_* flags @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: byte_flag(*args) -> 'flags_t' + byte_flag() -> flags_t Get a flags_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) -> 'int' + bytesize(ea) -> int Get number of bytes required to store a byte at the given address. - bytesize(ea) -> int - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) -> 'int' + calc_def_align(ea, mina, maxa) -> int Calculate the default alignment exponent. - calc_def_align(ea, mina, maxa) -> int - @param ea: linear address (C++: ea_t) - @param mina: minimal possible alignment exponent. (C++: int) - @param maxa: minimal possible alignment exponent. (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: calc_dflags(*args) -> 'flags_t' calc_dflags(f, force) -> flags_t - @param f (C++: flags_t) - @param force (C++: bool) + + @param f: flags_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' + calc_max_align(endea) -> int Calculate the maximal possible alignment exponent. - calc_max_align(endea) -> int - @param endea: end address of the alignment item. (C++: ea_t) - @return: a value in the 0..32 range + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) -> 'ea_t' - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - calc_max_item_end(ea, how=15) -> ea_t - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) -> 'int' + calc_min_align(length) -> int Calculate the minimal possible alignment exponent. - calc_min_align(length) -> int - @param length: size of the item in bytes. (C++: asize_t) - @return: a value in the 1..32 range + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) -> 'bool' - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - can_define_item(ea, length, flags) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @param length: (C++: asize_t) + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function char_flag in module ida_bytes: char_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + char_flag() -> flags_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) -> 'asize_t' + chunk_size(ea) -> asize_t Get size of the contiguous address block containing 'ea'. - chunk_size(ea) -> asize_t - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) -> 'ea_t' + chunk_start(ea) -> ea_t Get start of the contiguous address block containing 'ea'. - chunk_start(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) -> 'bool' + clr_lzero(ea, n) -> bool Clear lzero bit. - clr_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function clr_op_type in module ida_bytes: clr_op_type(*args) -> 'bool' - Remove operand representation information. (set operand representation - to be 'undefined') - clr_op_type(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function code_flag in module ida_bytes: code_flag(*args) -> 'flags_t' - 'FF_CODE' + code_flag() -> flags_t + FF_CODE Help on class compiled_binpat_t in module ida_bytes: @@ -744,14 +830,16 @@ class compiled_binpat_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __init__(self, *args) | __init__(self) -> compiled_binpat_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __repr__ = _swig_repr(self) | @@ -774,16 +862,16 @@ class compiled_binpat_t(builtins.object) | list of weak references to the object (if defined) | | bytes - | compiled_binpat_t_bytes_get(self) -> bytevec_t * + | bytes | | encidx - | compiled_binpat_t_encidx_get(self) -> int + | encidx | | mask - | compiled_binpat_t_mask_get(self) -> bytevec_t * + | mask | | strlits - | compiled_binpat_t_strlits_get(self) -> rangevec_t + | strlits | | thisown | The membership flag @@ -802,15 +890,19 @@ class compiled_binpat_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __getitem__(self, *args) -> 'compiled_binpat_t const &' | __getitem__(self, i) -> compiled_binpat_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> compiled_binpat_vec_t - | x: qvector< compiled_binpat_t > const & + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -820,36 +912,42 @@ class compiled_binpat_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: compiled_binpat_t const & + | + | @param i: size_t + | @param v: compiled_binpat_t const & | | __swig_destroy__ = delete_compiled_binpat_vec_t(...) | delete_compiled_binpat_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: compiled_binpat_t const & + | + | Parameters + | ---------- + | x: compiled_binpat_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | at(self, *args) -> 'compiled_binpat_t const &' | at(self, _idx) -> compiled_binpat_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | begin(self) -> compiled_binpat_t - | begin(self) -> compiled_binpat_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -862,78 +960,85 @@ class compiled_binpat_vec_t(builtins.object) | | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | end(self) -> compiled_binpat_t - | end(self) -> compiled_binpat_t | | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' | erase(self, it) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator | + | @param it: qvector< compiled_binpat_t >::iterator | | erase(self, first, last) -> compiled_binpat_t - | first: qvector< compiled_binpat_t >::iterator - | last: qvector< compiled_binpat_t >::iterator + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator | | extract(self, *args) -> 'compiled_binpat_t *' | extract(self) -> compiled_binpat_t | | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & | - | - | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & + | @param x: compiled_binpat_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=compiled_binpat_t()) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: compiled_binpat_t * - | len: size_t + | + | @param s: compiled_binpat_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' | insert(self, it, x) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator - | x: compiled_binpat_t const & + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'compiled_binpat_t &' | push_back(self, x) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: compiled_binpat_t const & | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< compiled_binpat_t > & + | + | @param r: qvector< compiled_binpat_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -958,210 +1063,207 @@ class compiled_binpat_vec_t(builtins.object) Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) -> 'bool' + create_16bit_data(ea, length) -> bool Convert to 16-bit quantity (take the byte size into account) - create_16bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) -> 'bool' + create_32bit_data(ea, length) -> bool Convert to 32-bit quantity (take the byte size into account) - create_32bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) -> 'bool' + create_byte(ea, length, force=False) -> bool Convert to byte. - create_byte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module ida_bytes: create_double(*args) -> 'bool' + create_double(ea, length, force=False) -> bool Convert to double. - create_double(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) -> 'bool' + create_dword(ea, length, force=False) -> bool Convert to dword. - create_dword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) -> 'bool' + create_float(ea, length, force=False) -> bool Convert to float. - create_float(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) -> 'bool' + create_oword(ea, length, force=False) -> bool Convert to octaword/xmm word. - create_oword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) -> 'bool' + create_packed_real(ea, length, force=False) -> bool Convert to packed decimal real. - create_packed_real(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) -> 'bool' + create_qword(ea, length, force=False) -> bool Convert to quadword. - create_qword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) -> 'bool' - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - create_strlit(start, len, strtype) -> bool - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success Help on function create_struct in module ida_bytes: create_struct(*args) -> 'bool' + create_struct(ea, length, tid, force=False) -> bool Convert to struct. - create_struct(ea, length, tid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) -> 'bool' + create_tbyte(ea, length, force=False) -> bool Convert to tbyte. - create_tbyte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) -> 'bool' + create_word(ea, length, force=False) -> bool Convert to word. - create_word(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) -> 'bool' + create_yword(ea, length, force=False) -> bool Convert to ymm word. - create_yword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) -> 'bool' + create_zword(ea, length, force=False) -> bool Convert to zmm word. - create_zword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: cust_flag(*args) -> 'flags_t' + cust_flag() -> flags_t Get a flags_t representing custom type data. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + custfmt_flag() -> flags_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -1175,13 +1277,14 @@ class data_format_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | props: int - | hotkey: char const * - | text_width: int32 + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -1192,7 +1295,10 @@ class data_format_t(builtins.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1204,28 +1310,28 @@ class data_format_t(builtins.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size Help on class data_type_t in module ida_bytes: @@ -1239,13 +1345,14 @@ class data_type_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | hotkey: char const * - | asm_keyword: char const * - | props: int + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1256,7 +1363,10 @@ class data_type_t(builtins.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1268,499 +1378,506 @@ class data_type_t(builtins.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size Help on function dec_flag in module ida_bytes: dec_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + dec_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) -> 'void' + del_mapping(ea) Delete memory mapping range. - del_mapping(ea) - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) -> 'void' - Delete byte value from flags. The corresponding byte becomes - uninitialized. - del_value(ea) - @param ea (C++: ea_t) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) -> 'bool' - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - detach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - was not attached to the data type + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) -> 'error_t' - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - disable_flags(start_ea, end_ea) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: double_flag(*args) -> 'flags_t' + double_flag() -> flags_t Get a flags_t representing a double. Help on function dword_flag in module ida_bytes: dword_flag(*args) -> 'flags_t' + dword_flag() -> flags_t Get a flags_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) -> 'error_t' - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - enable_flags(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: enum_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + enum_flag() -> flags_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) -> 'bool' + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - equal_bytes(ea, image, mask, len, sense_case) -> bool - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == nullptr, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - @retval: 1 - equal - @retval: 0 - not equal + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) -> 'bool' f_has_cmt(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) -> 'bool' - Does the current byte have dummy (auto-generated, with special prefix) - name? - f_has_dummy_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) -> 'bool' f_has_extra_cmts(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) -> 'bool' + f_has_name(f, arg2) -> bool Does the current byte have non-trivial (non-dummy) name? - f_has_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) -> 'bool' + f_has_user_name(F, arg2) -> bool Does the current byte have user-specified name? - f_has_user_name(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) -> 'bool' + f_has_xref(f, arg2) -> bool Does the current byte have cross-references to it? - f_has_xref(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) -> 'bool' - See 'is_align()' - f_is_align(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_align() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) -> 'bool' - See 'is_byte()' - f_is_byte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_byte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) -> 'bool' + f_is_code(F, arg2) -> bool Does flag denote start of an instruction? - f_is_code(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) -> 'bool' - See 'is_custom()' - f_is_custom(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_custom() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) -> 'bool' + f_is_data(F, arg2) -> bool Does flag denote start of data? - f_is_data(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) -> 'bool' - See 'is_double()' - f_is_double(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_double() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) -> 'bool' - See 'is_dword()' - f_is_dword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_dword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) -> 'bool' - See 'is_float()' - f_is_float(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_float() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) -> 'bool' + f_is_head(F, arg2) -> bool Does flag denote start of instruction OR data? - f_is_head(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) -> 'bool' + f_is_not_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_not_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) -> 'bool' - See 'is_oword()' - f_is_oword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_oword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) -> 'bool' - See 'is_pack_real()' - f_is_pack_real(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_pack_real() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) -> 'bool' - See 'is_qword()' - f_is_qword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_qword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) -> 'bool' - See 'is_strlit()' - f_is_strlit(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_strlit() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) -> 'bool' - See 'is_struct()' - f_is_struct(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_struct() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) -> 'bool' + f_is_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) -> 'bool' - See 'is_tbyte()' - f_is_tbyte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_tbyte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) -> 'bool' - See 'is_word()' - f_is_word(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_word() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) -> 'bool' - See 'is_yword()' - f_is_yword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_yword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) -> 'ea_t' - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - find_byte(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) -> 'ea_t' - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - find_byter(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) -> 'int' + find_custom_data_format(name) -> int Get id of a custom data format. - find_custom_data_format(name) -> int - @param name: name of the custom data format (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data format + @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) -> 'int' + find_custom_data_type(name) -> int Get id of a custom data type. - find_custom_data_type(name) -> int - @param name: name of the custom data type (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data type + @return: id or -1 Help on function float_flag in module ida_bytes: float_flag(*args) -> 'flags_t' + float_flag() -> flags_t Get a flags_t representing a float. Help on function flt_flag in module ida_bytes: flt_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + flt_flag() -> flags_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) -> 'ea_t' + free_chunk(bottom, size, step) -> ea_t Search for a hole in the addressing space of the program. - free_chunk(bottom, size, step) -> ea_t - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: (C++: ea_t) address to start searching + @param size: (C++: asize_t) size of desired block + @param step: (C++: int32) bit mask for the start of hole (0xF would align hole to a + paragraph). if 'step' is negative, the bottom address with be + aligned. otherwise the kernel will try to use it as is and align it + only when the hole is too small. + @return: start of the hole or BADADDR Help on function get_16bit in module ida_bytes: get_16bit(*args) -> 'uint32' + get_16bit(ea) -> uint32 Get 16bits of the program at 'ea'. - get_16bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) -> 'uint32' + get_32bit(ea) -> uint32 Get not more than 32bits of the program at 'ea'. - get_32bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) -> 'uint64' + get_64bit(ea) -> uint64 Get not more than 64bits of the program at 'ea'. - get_64bit(ea) -> uint64 - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint32 *) - @param nbit (C++: int *) + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - get_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) -> 'PyObject *' - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: @@ -1769,455 +1886,454 @@ get_bytes_and_mask(*args) -> 'PyObject *' get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) -> 'data_format_t const *' + get_custom_data_format(dfid) -> data_format_t Get definition of a registered custom data format. - get_custom_data_format(dfid) -> data_format_t - @param dfid: data format id (C++: int) - @return: data format definition or nullptr + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) -> 'int' + get_custom_data_formats(out, dtid) -> int Get list of attached custom data formats for the specified data type. - get_custom_data_formats(out, dtid) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) -> 'data_type_t const *' + get_custom_data_type(dtid) -> data_type_t Get definition of a registered custom data type. - get_custom_data_type(dtid) -> data_type_t - @param dtid: data type id (C++: int) - @return: data type definition or nullptr + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) -> 'int' + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int Get list of registered custom data type ids. - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) -> 'asize_t' + get_data_elsize(ea, F, ti=None) -> asize_t Get size of data type specified in flags 'F'. - get_data_elsize(ea, F, ti=None) -> asize_t - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) -> 'bool' - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - get_data_value(v, ea, size) -> bool - @param v: pointer to the result. may be nullptr (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) -> 'int' + get_default_radix() -> int Get default base of number for the current processor. + + @return: 2, 8, 10, 16 Help on function get_dword in module ida_bytes: get_dword(*args) -> 'uint32' - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_dword(ea) -> uint32 - @param ea (C++: ea_t) + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) -> 'uchar *' + get_enum_id(ea, n) -> enum_t Get enum id of 'enum' operand. - get_enum_id(ea, n) -> enum_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) -> 'hidden_range_t *' + get_first_hidden_range() -> hidden_range_t Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: get_flags(*args) -> 'flags_t' - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - get_flags(ea) -> flags_t - @param ea (C++: ea_t) + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: get_flags_by_size(*args) -> 'flags_t' - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - get_flags_by_size(size) -> flags_t - @param size (C++: size_t) + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: get_flags_ex(*args) -> 'flags_t' + get_flags_ex(ea, how) -> flags_t Get flags for the specified address, extended form. - get_flags_ex(ea, how) -> flags_t - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) -> 'asize_t' - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - get_full_data_elsize(ea, F, ti=None) -> asize_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: get_full_flags(*args) -> 'flags_t' + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) -> 'hidden_range_t *' + get_hidden_range(ea) -> hidden_range_t Get pointer to hidden range structure, in: linear address. - get_hidden_range(ea) -> hidden_range_t - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) -> 'int' + get_hidden_range_num(ea) -> int Get number of a hidden range. - get_hidden_range_num(ea) -> int - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) -> 'int' + get_hidden_range_qty() -> int Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: get_item_flag(*args) -> 'flags_t' - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - get_item_flag(_from, n, ea, appzero) -> flags_t - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) -> 'asize_t' - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - get_item_size(ea) -> asize_t - @param ea (C++: ea_t) + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) -> 'hidden_range_t *' + get_last_hidden_range() -> hidden_range_t Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' + get_mapping(n) -> bool Get memory mapping range by its number. - get_mapping(n) -> bool - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) -> 'size_t' + get_mappings_qty() -> size_t Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) -> 'size_t' - Determine maximum length of string literal.If the string literal has a - length prefix (e.g., STRTYPE_LEN2 has a two-byte length prefix), the - length of that prefix (i.e., 2) will be part of the returned value. - get_max_strlit_length(ea, strtype, options=0) -> size_t - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) -> 'hidden_range_t *' + get_next_hidden_range(ea) -> hidden_range_t Get pointer to next hidden range. - get_next_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) -> 'PyObject *' - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - + get_octet(ea, v, nbit) -> (int, int, int, int) + Get 8 bits of the program at 'ea'. The main usage of this function is to iterate + range of bytes. Here is an example: uint64 v; int nbit = 0; for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... + uchar byte = get_octet(&ea, &v, &nbit); + ... } + 'ea' is incremented each time when a new byte is read. In the above example, it + will be incremented in the first loop iteration. - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - get_octet(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ea: (C++: ea_t *) ea_t + @param v: (C++: uint64 *) uint64 + @param nbit: (C++: int *) int Help on function get_opinfo in module ida_bytes: get_opinfo(*args) -> 'opinfo_t *' + get_opinfo(buf, ea, n, flags) -> opinfo_t Get additional information about an operand representation. - get_opinfo(buf, ea, n, flags) -> opinfo_t - @param buf: buffer to receive the result. may not be nullptr (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: nullptr if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: get_optype_flags0(*args) -> 'flags_t' + get_optype_flags0(F) -> flags_t Get flags for first operand. - get_optype_flags0(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) -> 'flags_t' + get_optype_flags1(F) -> flags_t Get flags for second operand. - get_optype_flags1(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) -> 'uint64' - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - get_original_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) -> 'uint64' - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - get_original_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) -> 'uint64' - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - get_original_word(ea) -> uint64 - @param ea (C++: ea_t) + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) -> 'qstring *' + get_predef_insn_cmt(ins) -> str Get predefined comment. - get_predef_insn_cmt(ins) -> str - @param ins: current instruction information - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @return: size of comment or -1 + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) -> 'hidden_range_t *' + get_prev_hidden_range(ea) -> hidden_range_t Get pointer to previous hidden range. - get_prev_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if previous hidden range - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) -> 'int' - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - get_radix(F, n) -> int - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) -> 'PyObject *' - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, <u>and</u> the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2226,169 +2342,166 @@ get_strlit_contents(*args) -> 'PyObject *' Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) -> 'int' + get_stroff_path(path, delta, ea, n) -> int Get struct path of operand. - get_stroff_path(path, delta, ea, n) -> int - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) -> 'ushort' - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - get_word(ea) -> ushort - @param ea (C++: ea_t) + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) -> 'bool' - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - get_zero_ranges(zranges, range) -> bool - @param zranges: pointer to the return value. cannot be nullptr (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be nullptr - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) -> 'hidden_range_t *' + getn_hidden_range(n) -> hidden_range_t Get pointer to hidden range structure, in: number of hidden range. - getn_hidden_range(n) -> hidden_range_t - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) -> 'bool' + has_any_name(F) -> bool Does the current byte have any name? - has_any_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) -> 'bool' + has_auto_name(F) -> bool Does the current byte have auto-generated (no special prefix) name? - has_auto_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) -> 'bool' + has_cmt(F) -> bool Does the current byte have an indented comment? - has_cmt(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) -> 'bool' - Does the current byte have dummy (auto-generated, with special prefix) - name? - has_dummy_name(F) -> bool - @param F (C++: flags_t) + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) -> 'bool' + has_extra_cmts(F) -> bool Does the current byte have additional anterior or posterior lines? - has_extra_cmts(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_immd in module ida_bytes: has_immd(*args) -> 'bool' + has_immd(F) -> bool Has immediate value? - has_immd(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_name in module ida_bytes: has_name(*args) -> 'bool' + has_name(F) -> bool Does the current byte have non-trivial (non-dummy) name? - has_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) -> 'bool' + has_user_name(F) -> bool Does the current byte have user-specified name? - has_user_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_value in module ida_bytes: has_value(*args) -> 'bool' + has_value(F) -> bool Do flags contain byte value? - has_value(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_xref in module ida_bytes: has_xref(*args) -> 'bool' + has_xref(F) -> bool Does the current byte have cross-references to it? - has_xref(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function hex_flag in module ida_bytes: hex_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + hex_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2414,88 +2527,94 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2509,12 +2628,12 @@ class hidden_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -2524,1109 +2643,1086 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' - 'FF_ALIGN' - is_align(F) -> bool - @param F (C++: flags_t) + FF_ALIGN + + @param F: (C++: flags_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) -> 'bool' + is_attached_custom_data_format(dtid, dfid) -> bool Is the custom data format attached to the custom data type? - is_attached_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id (C++: int) - @param dfid: data format id (C++: int) - @return: true or false + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - is_bnot(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) -> 'bool' - 'FF_BYTE' - is_byte(F) -> bool - @param F (C++: flags_t) + FF_BYTE + + @param F: (C++: flags_t) Help on function is_char in module ida_bytes: is_char(*args) -> 'bool' + is_char(F, n) -> bool is character constant? - is_char(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) -> 'bool' + is_char0(F) -> bool Is the first operand character constant? (example: push 'a') - is_char0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_char1 in module ida_bytes: is_char1(*args) -> 'bool' + is_char1(F) -> bool Is the second operand character constant? (example: mov al, 'a') - is_char1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_code in module ida_bytes: is_code(*args) -> 'bool' + is_code(F) -> bool Does flag denote start of an instruction? - is_code(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) -> 'bool' + is_custfmt(F, n) -> bool is custom data format? - is_custfmt(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) -> 'bool' + is_custfmt0(F) -> bool Does the first operand use a custom data representation? - is_custfmt0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) -> 'bool' + is_custfmt1(F) -> bool Does the second operand use a custom data representation? - is_custfmt1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' - 'FF_CUSTOM' - is_custom(F) -> bool - @param F (C++: flags_t) + FF_CUSTOM + + @param F: (C++: flags_t) Help on function is_data in module ida_bytes: is_data(*args) -> 'bool' + is_data(F) -> bool Does flag denote start of data? - is_data(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) -> 'bool' + is_defarg(F, n) -> bool is defined? - is_defarg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) -> 'bool' - Is the first operand defined? Initially operand has no defined - representation. - is_defarg0(F) -> bool - @param F (C++: flags_t) + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) -> 'bool' - Is the second operand defined? Initially operand has no defined - representation. - is_defarg1(F) -> bool - @param F (C++: flags_t) + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' - 'FF_DOUBLE' - is_double(F) -> bool - @param F (C++: flags_t) + FF_DOUBLE + + @param F: (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' - 'FF_DWORD' - is_dword(F) -> bool - @param F (C++: flags_t) + FF_DWORD + + @param F: (C++: flags_t) Help on function is_enum in module ida_bytes: is_enum(*args) -> 'bool' + is_enum(F, n) -> bool is enum? - is_enum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) -> 'bool' + is_enum0(F) -> bool Is the first operand a symbolic constant (enum member)? - is_enum0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) -> 'bool' + is_enum1(F) -> bool Is the second operand a symbolic constant (enum member)? - is_enum1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' - 'FF_FLOAT' - is_float(F) -> bool - @param F (C++: flags_t) + FF_FLOAT + + @param F: (C++: flags_t) Help on function is_float0 in module ida_bytes: is_float0(*args) -> 'bool' + is_float0(F) -> bool Is the first operand a floating point number? - is_float0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float1 in module ida_bytes: is_float1(*args) -> 'bool' + is_float1(F) -> bool Is the second operand a floating point number? - is_float1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_flow in module ida_bytes: is_flow(*args) -> 'bool' - Does the previous instruction exist and pass execution flow to the - current byte? - is_flow(F) -> bool - @param F (C++: flags_t) + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) -> 'bool' + is_fltnum(F, n) -> bool is floating point number? - is_fltnum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) -> 'bool' + is_forced_operand(ea, n) -> bool Is operand manually defined?. - is_forced_operand(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) -> 'bool' + is_func(F) -> bool Is function start? - is_func(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_head in module ida_bytes: is_head(*args) -> 'bool' + is_head(F) -> bool Does flag denote start of instruction OR data? - is_head(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) -> 'bool' - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - is_invsign(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) -> 'bool' + is_loaded(ea) -> bool Does the specified address have a byte value (is initialized?) - is_loaded(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) -> 'bool' - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - is_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Display leading zeroes in operands. The global switch for the leading zeroes is + in idainfo::s_genflags The leading zeroes doesn't work if the octal numbers + start with 0 Display leading zeroes? (takes into account idainfo::s_genflags) + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function is_manual in module ida_bytes: is_manual(*args) -> 'bool' - is forced operand? (use 'is_forced_operand()' ) - is_manual(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) -> 'bool' + is_manual_insn(ea) -> bool Is the instruction overridden? - is_manual_insn(ea) -> bool - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) -> 'bool' + is_mapped(ea) -> bool Is the specified address 'ea' present in the program? - is_mapped(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) -> 'bool' + is_not_tail(F) -> bool Does flag denote tail byte? - is_not_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop in module ida_bytes: is_numop(*args) -> 'bool' + is_numop(F, n) -> bool is number (bin, oct, dec, hex)? - is_numop(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) -> 'bool' + is_numop0(F) -> bool Is the first operand a number (i.e. binary, octal, decimal or hex?) - is_numop0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) -> 'bool' + is_numop1(F) -> bool Is the second operand a number (i.e. binary, octal, decimal or hex?) - is_numop1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off in module ida_bytes: is_off(*args) -> 'bool' + is_off(F, n) -> bool is offset? - is_off(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) -> 'bool' + is_off0(F) -> bool Is the first operand offset? (example: push offset xxx) - is_off0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off1 in module ida_bytes: is_off1(*args) -> 'bool' + is_off1(F) -> bool Is the second operand offset? (example: mov ax, offset xxx) - is_off1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' - 'FF_OWORD' - is_oword(F) -> bool - @param F (C++: flags_t) + FF_OWORD + + @param F: (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' - 'FF_PACKREAL' - is_pack_real(F) -> bool - @param F (C++: flags_t) + FF_PACKREAL + + @param F: (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' - 'FF_QWORD' - is_qword(F) -> bool - @param F (C++: flags_t) + FF_QWORD + + @param F: (C++: flags_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) -> 'bool' + is_same_data_type(F1, F2) -> bool Do the given flags specify the same data type? - is_same_data_type(F1, F2) -> bool - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags_t) + @param F2: (C++: flags_t) Help on function is_seg in module ida_bytes: is_seg(*args) -> 'bool' + is_seg(F, n) -> bool is segment? - is_seg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) -> 'bool' + is_seg0(F) -> bool Is the first operand segment selector? (example: push seg seg001) - is_seg0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) -> 'bool' + is_seg1(F) -> bool Is the second operand segment selector? (example: mov dx, seg dseg) - is_seg1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) -> 'bool' + is_stkvar(F, n) -> bool is stack variable? - is_stkvar(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) -> 'bool' + is_stkvar0(F) -> bool Is the first operand a stack variable? - is_stkvar0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) -> 'bool' + is_stkvar1(F) -> bool Is the second operand a stack variable? - is_stkvar1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' - 'FF_STRLIT' - is_strlit(F) -> bool - @param F (C++: flags_t) + FF_STRLIT + + @param F: (C++: flags_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) -> 'bool' + is_stroff(F, n) -> bool is struct offset? - is_stroff(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) -> 'bool' + is_stroff0(F) -> bool Is the first operand an offset within a struct? - is_stroff0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) -> 'bool' + is_stroff1(F) -> bool Is the second operand an offset within a struct? - is_stroff1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' - 'FF_STRUCT' - is_struct(F) -> bool - @param F (C++: flags_t) + FF_STRUCT + + @param F: (C++: flags_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) -> 'bool' + is_suspop(ea, F, n) -> bool is suspicious operand? - is_suspop(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) -> 'bool' + is_tail(F) -> bool Does flag denote tail byte? - is_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' - 'FF_TBYTE' - is_tbyte(F) -> bool - @param F (C++: flags_t) + FF_TBYTE + + @param F: (C++: flags_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) -> 'bool' + is_unknown(F) -> bool Does flag denote unexplored byte? - is_unknown(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) -> 'int' + is_varsize_item(ea, F, ti=None, itemsize=None) -> int Is the item at 'ea' variable size?. - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @param itemsize: if not nullptr and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - @retval: 1 - varsize item - @retval: 0 - fixed item - @retval: -1 - error (bad data definition) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) -> 'bool' - 'FF_WORD' - is_word(F) -> bool - @param F (C++: flags_t) + FF_WORD + + @param F: (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' - 'FF_YWORD' - is_yword(F) -> bool - @param F (C++: flags_t) + FF_YWORD + + @param F: (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' - 'FF_ZWORD' - is_zword(F) -> bool - @param F (C++: flags_t) + FF_ZWORD + + @param F: (C++: flags_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) -> 'bool' + leading_zero_important(ea, n) -> bool Check if leading zeroes are important. - leading_zero_important(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) -> 'int' + nbits(ea) -> int Get number of bits in a byte at the given address. - nbits(ea) -> int - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) -> 'ea_t' + next_chunk(ea) -> ea_t Get the first address of next contiguous chunk in the program. - next_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) -> 'ea_t' + next_head(ea, maxea) -> ea_t Get start of next defined item. - next_head(ea, maxea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) -> 'ea_t' + next_inited(ea, maxea) -> ea_t Find the next initialized address. - next_inited(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) -> 'ea_t' - next_that(ea, maxea, callable) -> ea_t + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) -> 'ea_t' - Similar to 'next_that()' , but will find the next address that is - unexplored. - next_unknown(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_visea in module ida_bytes: next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t Get next visible address. - next_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: num_flag(*args) -> 'flags_t' + num_flag() -> flags_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: oct_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + oct_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function off_flag in module ida_bytes: off_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + off_flag() -> flags_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) -> 'bool' - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - op_adds_xrefs(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) -> 'bool' + op_custfmt(ea, n, fid) -> bool Set custom data format for operand (fid-custom data format id) - op_custfmt(ea, n, fid) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) -> 'bool' - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - op_stroff(insn, n, path, path_len, delta) -> bool - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success Help on function oword_flag in module ida_bytes: oword_flag(*args) -> 'flags_t' + oword_flag() -> flags_t Get a flags_t representing a octaword. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) -> 'flags_t' + packreal_flag() -> flags_t Get a flags_t representing a packed decimal real. Help on function parse_binpat_str in module ida_bytes: parse_binpat_str(*args) -> 'qstring *' - Convert user-specified binary string to internal representation. The - 'in' parameter contains space-separated tokens: - + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: - numbers (numeric base is determined by 'radix') - - if value of number fits a byte, it is considered as a byte - - if value of number fits a word, it is considered as 2 bytes - - if value of number fits a dword,it is considered as 4 bytes + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes - "..." string constants - 'x' single-character constants - ? variable bytes - Note that string constants are surrounded with double quotes.Here are - a few examples (assuming base 16): + Note that string constants are surrounded with double quotes. + Here are a few examples (assuming base 16): CD 21 - bytes 0xCD, 0x21 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) "Hello", 0 - the null terminated string "Hello" L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 - parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str - @param out: a vector of compiled binary patterns, for use with - bin_search2() (C++: compiled_binpat_vec_t *) - @param ea: linear address to convert for (the conversion depends on - the address, because the number of bits in a byte depend on - the segment type) (C++: ea_t) - in: char const * - @param radix: numeric base of numbers (8,10,16) (C++: int) - @param strlits_encoding: the target encoding into which the string - literals present in 'in', should be encoded. - Can be any from [1, get_encoding_qty() ), or - the special values PBSENC_* (C++: int) - @return: false either in case of parsing error, or if at least one - requested target encoding couldn't encode the string literals - present in "in". + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) -> 'void' - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - patch_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) -> 'ea_t' + prev_chunk(ea) -> ea_t Get the last address of previous contiguous chunk in the program. - prev_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) -> 'ea_t' + prev_head(ea, minea) -> ea_t Get start of previous defined item. - prev_head(ea, minea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) -> 'ea_t' + prev_inited(ea, minea) -> ea_t Find the previous initialized address. - prev_inited(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) -> 'ea_t' - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - prev_that(ea, minea, callable) -> ea_t - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - callable: PyObject * - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) -> 'ea_t' - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - prev_unknown(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_visea in module ida_bytes: prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t Get previous visible address. - prev_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - print_strlit_type(strtype, flags=0) -> PyObject * - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) -> 'bool' - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - put_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) -> 'void' - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - put_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) -> 'void' - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - put_dword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) -> 'void' - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - put_qword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) -> 'void' - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - put_word(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint64) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: qword_flag(*args) -> 'flags_t' + qword_flag() -> flags_t Get a flags_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: @@ -3634,9 +3730,9 @@ Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) -> 'int' register_custom_data_format(py_df) -> int Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: @@ -3644,9 +3740,9 @@ Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) -> 'int' register_custom_data_type(py_dt) -> int Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3676,154 +3772,165 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' - Revert patched byte - revert_byte(ea) -> bool - @param ea (C++: ea_t) - @retval: true - byte was patched before and reverted now + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: seg_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + seg_flag() -> flags_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function set_immd in module ida_bytes: set_immd(*args) -> 'bool' - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - set_immd(ea) -> bool - @param ea (C++: ea_t) + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) -> 'bool' + set_lzero(ea, n) -> bool Set toggle lzero bit. - set_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) -> 'bool' + set_op_type(ea, type, n) -> bool (internal function) change representation of operand(s). - set_op_type(ea, type, n) -> bool - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @retval: 1 - ok - @retval: 0 - failed (applied to a tail byte) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) -> 'bool' - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: stkvar_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + stkvar_flag() -> flags_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: strlit_flag(*args) -> 'flags_t' + strlit_flag() -> flags_t Get a flags_t representing a string literal. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + stroff_flag() -> flags_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: stru_flag(*args) -> 'flags_t' + stru_flag() -> flags_t Get a flags_t representing a struct. Help on function tbyte_flag in module ida_bytes: tbyte_flag(*args) -> 'flags_t' + tbyte_flag() -> flags_t Get a flags_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) -> 'bool' - Toggle binary negation of operand. also see 'is_bnot()' - toggle_bnot(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) -> 'bool' toggle_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) -> 'bool' unregister_custom_data_format(dfid) -> bool Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -3832,6 +3939,7 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) -> 'bool' unregister_custom_data_type(dtid) -> bool Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -3844,30 +3952,31 @@ unregister_data_types_and_formats(formats) Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) -> 'bool' - Update hidden range information in the database. You cannot use this - function to change the range boundaries - update_hidden_range(ha) -> bool - @param ha: range to update (C++: const hidden_range_t *) - @return: success + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) -> 'ea_t' + use_mapping(ea) -> ea_t Translate address according to current mappings. - use_mapping(ea) -> ea_t - @param ea: address to translate (C++: ea_t) - @return: translated address + @param ea: (C++: ea_t) address to translate + @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) -> 'int' visit_patched_bytes(ea1, ea2, py_callable) -> int Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -3878,570 +3987,30 @@ visit_patched_bytes(*args) -> 'int' Help on function word_flag in module ida_bytes: word_flag(*args) -> 'flags_t' + word_flag() -> flags_t Get a flags_t representing a word. Help on function yword_flag in module ida_bytes: yword_flag(*args) -> 'flags_t' + yword_flag() -> flags_t Get a flags_t representing a ymm word. Help on function zword_flag in module ida_bytes: zword_flag(*args) -> 'flags_t' + zword_flag() -> flags_t Get a flags_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings' window) -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(builtins.object) @@ -4453,7 +4022,8 @@ class DBG_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4461,112 +4031,122 @@ class DBG_Hooks(builtins.object) | delete_DBG_Hooks(self) | | dbg_bpt(self, *args) -> 'int' + | dbg_bpt(self, tid, bptea) -> int | A user defined breakpoint was reached. | - | dbg_bpt(self, tid, bptea) -> int - | @param tid (C++: thid_t) - | @param bptea (C++: ea_t) + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) -> 'void' + | dbg_bpt_changed(self, bptev_code, bpt) | Breakpoint has been changed. | - | dbg_bpt_changed(self, bptev_code, bpt) - | @param bptev_code: Breakpoint modification events (C++: int) - | @param bpt (C++: bpt_t *) + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exc_code: int - | exc_can_cont: bool - | exc_ea: ea_t - | exc_info: char const * + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) -> 'void' + | dbg_finished_loading_bpts(self) | Finished loading breakpoint info from idb. | | dbg_information(self, *args) -> 'void' | dbg_information(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_detach(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' + | dbg_request_error(self, failed_command, failed_dbg_notification) | An error occurred during the processing of a request. | - | dbg_request_error(self, failed_command, failed_dbg_notification) - | @param failed_command (C++: ui_notification_t) - | @param failed_dbg_notification (C++: dbg_notification_t) + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) -> 'void' + | dbg_started_loading_bpts(self) | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) -> 'void' @@ -4579,35 +4159,39 @@ class DBG_Hooks(builtins.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) -> 'void' - | The process is now suspended.This event notification is also an - | asynchronous function result notification for 'suspend_process()' ! + | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) -> 'int' - | A step occurred (one instruction was executed). This event - | notification is only generated if step tracing is enabled. - | | dbg_trace(self, tid, ip) -> int - | @param tid: thread ID (C++: thid_t) - | @param ip: current instruction pointer. usually points after the - | executed instruction (C++: ea_t) - | @retval: 1 - do not log this trace event - | @retval: 0 - log it + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -4630,64 +4214,52 @@ class DBG_Hooks(builtins.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) -> 'void' add_path_mapping(src, dst) - @param src (C++: const char *) - @param dst (C++: const char *) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool - @param mod (C++: const modinfo_t *) + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4698,30 +4270,36 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4729,61 +4307,67 @@ class bpt_location_t(builtins.object) | delete_bpt_location_t(self) | | compare(self, *args) -> 'int' - | Lexically compare two breakpoint locations. Bpt locations are first - | compared based on type (i.e. 'BPLT_ABS' < 'BPLT_REL' ). 'BPLT_ABS' - | locations are compared based on their ea values. For all other - | location types, locations are first compared based on their string - | (path/filename/symbol), then their offset/lineno. - | | compare(self, r) -> int - | @param r (C++: const bpt_location_t &) + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) -> 'ea_t' - | Get address ( 'BPLT_ABS' ) + | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) -> 'bool' - | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) -> 'int' - | Get line number ( 'BPLT_SRC' ) + | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) -> 'uval_t' - | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) -> 'char const *' - | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) | Specify an absolute address location. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, _offset) | Specify a relative address location. | - | set_rel_bpt(self, mod, _offset) - | @param mod (C++: const char *) - | @param _offset (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, _lineno) | Specify a source level location. | - | set_src_bpt(self, fn, _lineno) - | @param fn (C++: const char *) - | @param _lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, _symbol, _offset=0) | Specify a symbolic location. | - | set_sym_bpt(self, _symbol, _offset=0) - | @param _symbol (C++: const char *) - | @param _offset (C++: uval_t) + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) -> 'char const *' - | Get symbol name ( 'BPLT_SYM' ) + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) -> 'bpt_loctype_t' + | type(self) -> bpt_loctype_t | Get bpt type. | | ---------------------------------------------------------------------- @@ -4796,13 +4380,13 @@ class bpt_location_t(builtins.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4828,95 +4412,113 @@ class bpt_t(builtins.object) | delete_bpt_t(self) | | badbpt(self, *args) -> 'bool' + | badbpt(self) -> bool | Failed to write bpt to process memory? | | enabled(self, *args) -> 'bool' + | enabled(self) -> bool | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) -> 'size_t' | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) -> 'int' + | get_size(self) -> int | Get bpt size. | | is_absbpt(self, *args) -> 'bool' + | is_absbpt(self) -> bool | Is absolute address breakpoint? | | is_active(self, *args) -> 'bool' + | is_active(self) -> bool | Written completely to process? | | is_compiled(self, *args) -> 'bool' + | is_compiled(self) -> bool | Condition has been compiled? | | is_hwbpt(self, *args) -> 'bool' + | is_hwbpt(self) -> bool | Is hardware breakpoint? | | is_inactive(self, *args) -> 'bool' + | is_inactive(self) -> bool | Not written to process at all? | | is_low_level(self, *args) -> 'bool' + | is_low_level(self) -> bool | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) -> 'bool' + | is_page_bpt(self) -> bool | Page breakpoint? | | is_partially_active(self, *args) -> 'bool' + | is_partially_active(self) -> bool | Written partially to process? | | is_relbpt(self, *args) -> 'bool' + | is_relbpt(self) -> bool | Is relative address breakpoint? | | is_srcbpt(self, *args) -> 'bool' + | is_srcbpt(self) -> bool | Is source level breakpoint? | | is_symbpt(self, *args) -> 'bool' + | is_symbpt(self) -> bool | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) -> 'bool' + | is_tracemodebpt(self) -> bool | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) -> 'bool' + | is_traceoffbpt(self) -> bool | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) -> 'bool' + | is_traceonbpt(self) -> bool | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) -> 'bool' + | listbpt(self) -> bool | Include in the bpt list? | | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) | Set bpt location to an absolute address. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, o) | Set bpt location to a relative address. | - | set_rel_bpt(self, mod, o) - | @param mod (C++: const char *) - | @param o (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, lineno) | Set bpt location to a source line. | - | set_src_bpt(self, fn, lineno) - | @param fn (C++: const char *) - | @param lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, sym, o) | Set bpt location to a symbol. | - | set_sym_bpt(self, sym, o) - | @param sym (C++: const char *) - | @param o (C++: uval_t) + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' + | set_trace_action(self, enable, trace_types) -> bool | Configure tracing options. | - | set_trace_action(self, enable, trace_types) -> bool - | @param enable (C++: bool) - | @param trace_types (C++: int) + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4927,47 +4529,50 @@ class bpt_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type Help on class bpt_vec_t in module ida_dbg: @@ -4978,11 +4583,14 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | x: qvector< bpt_t > const & + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -4994,22 +4602,23 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bpt_t const & + | + | @param i: size_t + | @param v: bpt_t const & | | __swig_destroy__ = delete_bpt_vec_t(...) | delete_bpt_vec_t(self) | | at(self, *args) -> 'bpt_t const &' | at(self, _idx) -> bpt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -5022,16 +4631,16 @@ class bpt_vec_t(builtins.object) | | end(self, *args) -> 'qvector< bpt_t >::const_iterator' | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t - | it: qvector< bpt_t >::iterator | + | @param it: qvector< bpt_t >::iterator | | erase(self, first, last) -> bpt_t - | first: qvector< bpt_t >::iterator - | last: qvector< bpt_t >::iterator + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5041,47 +4650,56 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) - | x: bpt_t const & + | + | @param x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bpt_t * - | len: size_t + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t - | it: qvector< bpt_t >::iterator - | x: bpt_t const & + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) - | x: bpt_t const & + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bpt_t const & | + | @param _newsize: size_t + | @param x: bpt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bpt_t > & + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5098,6 +4716,36 @@ class bpt_vec_t(builtins.object) | thisown | The membership flag +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) -> 'void' @@ -5106,158 +4754,163 @@ bring_debugger_to_front(*args) -> 'void' Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) -> 'qstring *' + choose_trace_file() -> str Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) -> 'void' + clear_requests_queue() Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) -> 'void' - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool - @param tid (C++: thid_t) - @param trace (C++: call_stack_t *) + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) -> 'bool' - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) -> 'source_view_t *' + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * Create a source code view. - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) -> 'bool' - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_bpt_tev(tid, ea, bp) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) -> 'void' - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_call_tev(tid, caller, callee) - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) -> 'void' - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_debug_event(event) - @param event (C++: debug_event_t *) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) -> 'bool' - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) -> 'bool' - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_many_tevs(new_tevs) -> bool - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) -> 'void' - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_ret_tev(tid, ret_insn, return_to) - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) -> 'void' - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_tev(type, tid, address) - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) -> 'void' - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - dbg_add_thread(tid) - @param tid (C++: thid_t) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - @param start_ea (C++: ea_t) - @param end_ea (C++: ea_t) - @param data (C++: const compiled_binpat_vec_t &) - @param srch_flags (C++: int) + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: @@ -5269,77 +4922,82 @@ dbg_can_query(*args) -> 'bool' - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) -> 'void' - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_del_thread(tid) - @param tid (C++: thid_t) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) -> 'bool' dbg_is_loaded() -> bool Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool - @param name (C++: const char *) + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool - @param base (C++: const ea_t) + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5350,11 +5008,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5380,43 +5039,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) - @param enable (C++: bool) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) -> 'bool' enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5427,7 +5103,8 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t - | _ea: ea_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5444,7 +5121,7 @@ class eval_ctx_t(builtins.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5452,92 +5129,97 @@ class eval_ctx_t(builtins.object) Help on function exist_bpt in module ida_dbg: exist_bpt(*args) -> 'bool' + exist_bpt(ea) -> bool Does a breakpoint exist at the given location? - exist_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) -> 'bool' - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - find_bpt(bptloc, bpt) -> bool - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) -> 'int' - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) -> 'bool' - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_bpt(ea, bpt) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) -> 'qstring *' get_bpt_group(bptloc) -> str - @param bptloc (C++: const bpt_location_t &) + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) -> 'char const *' - Helper function for 'bpt_location_t' . - get_bptloc_string(i) -> char const * - @param i (C++: int) + + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: @@ -5552,38 +5234,42 @@ get_current_source_line(*args) -> 'int' Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: get_dbg_byte(*args) -> 'bool' + get_dbg_byte(x, ea) -> bool Get one byte of the debugged process memory. - get_dbg_byte(x, ea) -> bool - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success + @param x: (C++: uint32 *) pointer to byte value + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) -> 'int' get_dbg_memory_info(ranges) -> int - @param ranges (C++: meminfo_vec_t *) + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) -> 'bool' - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - get_dbg_reg_info(regname, ri) -> bool - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) -> 'debug_event_t const *' + get_debug_event() -> debug_event_t Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5595,263 +5281,281 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) -> 'int' - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) -> 'bool' get_global_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) -> 'ssize_t' get_grp_bpts(bpts, grp_name) -> ssize_t - @param bpts (C++: bpt_vec_t *) - @param grp_name (C++: const char *) + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param output: bpts : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) -> 'bool' - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_mem(n, memmap) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) -> 'bool' - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_result(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) -> 'bool' - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - get_insn_tev_reg_val(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) -> 'int' - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) -> 'bool' get_local_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) -> 'bool' get_local_vars(prov, ea, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param out (C++: source_items_t *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) -> 'PyObject *' get_manual_regions(ranges) Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool - @param ea (C++: ea_t) - @param modinfo (C++: modinfo_t *) + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' - Get process options. Any of the arguments may be NULL + get_process_options() + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) -> 'int' get_reg_vals(tid, clsmask, values) -> int - @param tid (C++: thid_t) - @param clsmask (C++: int) - @param values (C++: regval_t *) + + @param tid: thid_t + @param clsmask: int + @param values: regval_t * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) -> 'dbg_notification_t' - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request Help on function get_running_request in module ida_dbg: get_running_request(*args) -> 'ui_notification_t' - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request Help on function get_sp_val in module ida_dbg: get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ - Get value of the SP register for the current thread. Requires a - suspended debugger. + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' get_srcinfo_provider(name) -> srcinfo_provider_t * - @param name (C++: const char *) + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) -> 'bool' - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - get_tev_event(n, d) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) -> 'bool' - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_tev_info(n, tev_info) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) -> 'bool' + get_tev_memory_info(n, mi) -> bool Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - get_tev_memory_info(n, mi) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -5873,92 +5577,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) -> 'ea_t' - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace Help on function get_trace_dynamic_register_set in module ida_dbg: get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) Get dynamic register set of current trace. - get_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t *) + @param idaregs: (C++: dynamic_register_set_t *) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) -> 'char const *' + get_trace_platform() -> char const * Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) -> 'bool' - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - getn_bpt(n, bpt) -> bool - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) -> 'bool' + graph_trace() -> bool Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) -> 'int' handle_debug_event(ev, rqflags) -> int - @param ev (C++: const debug_event_t *) - @param rqflags (C++: int) + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -5971,45 +5682,48 @@ internal_get_sreg_base(*args) -> 'ea_t' internal_get_sreg_base(tid, sreg_value) -> ea_t Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int - @param fn (C++: int) - @param buf (C++: const void *) - @param poutbuf (C++: void **) - @param poutsize (C++: ssize_t *) + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) -> 'int' - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - invalidate_dbg_state(dbginv) -> int - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) -> 'void' - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) -> 'void' - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - invalidate_dbgmem_contents(ea, size) - @param ea (C++: ea_t) - @param size (C++: asize_t) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6019,105 +5733,117 @@ is_bblk_trace_enabled(*args) -> 'bool' Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) -> 'bool' - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) -> 'bool' + is_debugger_memory(ea) -> bool Is the address mapped to debugger memory? - is_debugger_memory(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) -> 'bool' + is_debugger_on() -> bool Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) -> 'bool' - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) -> 'bool' - Get current state of instruction tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) -> 'bool' - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - is_reg_custom(regname) -> bool - @param regname (C++: const char *) + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) -> 'bool' - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_float(regname) -> bool - @param regname (C++: const char *) + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) -> 'bool' - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_integer(regname) -> bool - @param regname (C++: const char *) + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) -> 'bool' + is_request_running() -> bool Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) -> 'bool' - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - @param bptgrps (C++: qstrvec_t *) + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param output: bptgrps list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6150,7 +5876,7 @@ class memreg_info_t(builtins.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6164,11 +5890,14 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | x: qvector< memreg_info_t > const & + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6180,22 +5909,23 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: memreg_info_t const & + | + | @param i: size_t + | @param v: memreg_info_t const & | | __swig_destroy__ = delete_memreg_infos_t(...) | delete_memreg_infos_t(self) | | at(self, *args) -> 'memreg_info_t const &' | at(self, _idx) -> memreg_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -6208,16 +5938,16 @@ class memreg_infos_t(builtins.object) | | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator | + | @param it: qvector< memreg_info_t >::iterator | | erase(self, first, last) -> memreg_info_t - | first: qvector< memreg_info_t >::iterator - | last: qvector< memreg_info_t >::iterator + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6227,47 +5957,56 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: memreg_info_t * - | len: size_t + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator - | x: memreg_info_t const & + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: memreg_info_t const & | + | @param _newsize: size_t + | @param x: memreg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< memreg_info_t > & + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6284,94 +6023,109 @@ class memreg_infos_t(builtins.object) | thisown | The membership flag -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) -> 'void' - move_bpt_to_grp(bpt, grp_name) - Sets new group for the breakpoint +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t - @param ea (C++: ea_t) - @param buffer (C++: void *) - @param size (C++: size_t) + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool - @param old_name (C++: const char *) - @param new_name (C++: const char *) + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) -> 'bool' - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + Post an add_bpt(const bpt_t &) request. + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t request_add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) -> 'int' - Post an 'attach_process()' request. - request_attach_process(pid, event_id) -> int - @param pid (C++: pid_t) - @param event_id (C++: int) + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) -> 'void' - Post a 'clear_trace()' request. + request_clear_trace() + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) -> 'bool' - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' - Post a 'del_bpt(ea_t)' request. - request_del_bpt(ea) -> bool - @param ea (C++: ea_t) + Post a del_bpt(const bpt_location_t &) request. + @param ea: ea_t request_del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) -> 'bool' - Post a 'detach_process()' request. + request_detach_process() -> bool + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6382,11 +6136,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t request_disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6407,223 +6162,233 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) -> 'bool' request_enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) -> 'bool' request_enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool request_enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) -> 'bool' request_enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) -> 'bool' request_enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) -> 'bool' request_enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) -> 'bool' - Post an 'exit_process()' request. + request_exit_process() -> bool + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) -> 'int' - Post a 'resume_thread()' request. - request_resume_thread(tid) -> int - @param tid (C++: thid_t) + Post a resume_thread() request. + + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) -> 'bool' - Post a 'run_to()' request. - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) -> 'bool' - Post a 'select_thread()' request. - request_select_thread(tid) -> bool - @param tid (C++: thid_t) + Post a select_thread() request. + + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) -> 'void' - Post a 'set_bblk_trace_options()' request. - request_set_bblk_trace_options(options) - @param options (C++: int) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) -> 'void' - Post a 'set_func_trace_options()' request. - request_set_func_trace_options(options) - @param options (C++: int) + Post a set_func_trace_options() request. + + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) -> 'void' - Post a 'set_insn_trace_options()' request. - request_set_insn_trace_options(options) - @param options (C++: int) + Post a set_insn_trace_options() request. + + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) -> 'PyObject *' - Post a 'set_reg_val()' request. - request_set_reg_val(regname, o) -> PyObject * - @param regname (C++: const char *) - o: PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) -> 'bool' - Post a 'set_resume_mode()' request. - request_set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) -> 'void' - Post a 'set_step_trace_options()' request. - request_set_step_trace_options(options) - @param options (C++: int) + Post a set_step_trace_options() request. + + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) -> 'int' - Post a 'start_process()' request. - request_start_process(path=None, args=None, sdir=None) -> int - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) -> 'bool' - Post a 'step_into()' request. + request_step_into() -> bool + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) -> 'bool' - Post a 'step_over()' request. + request_step_over() -> bool + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) -> 'bool' - Post a 'step_until_ret()' request. + request_step_until_ret() -> bool + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) -> 'bool' - Post a 'suspend_process()' request. + request_suspend_process() -> bool + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) -> 'int' - Post a 'suspend_thread()' request. - request_suspend_thread(tid) -> int - @param tid (C++: thid_t) + Post a suspend_thread() request. + + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) -> 'excvec_t *' - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) -> 'bool' - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6639,214 +6404,205 @@ send_dbg_command(command) Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) -> 'void' - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - set_bblk_trace_options(options) - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) -> 'void' - set_bpt_group(bpt, grp_name) - @param bpt (C++: bpt_t &) - @param grp_name (C++: const char *) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool - @param bptloc (C++: const bpt_location_t &) - @param grp_name (C++: const char *) + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) -> 'int' - Helper function for 'bpt_location_t' . - set_bptloc_string(s) -> int - @param s (C++: const char *) + + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) -> 'void' - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_func_trace_options(options) - @param options (C++: int) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) -> 'void' + set_highlight_trace_options(hilight, color, diff) Set highlight trace parameters. - set_highlight_trace_options(hilight, color, diff) - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) -> 'void' - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_insn_trace_options(options) - @param options (C++: int) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) -> 'void' set_manual_regions(ranges) - @param ranges (C++: const meminfo_vec_t *) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) -> 'void' - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - set_process_options(path, args, sdir, host, _pass, port) - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - pass: char const * - @param port (C++: int) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) -> 'int' - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - set_process_state(newstate, p_thid, dbginv) -> int - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) -> 'PyObject *' - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - set_reg_val(regname, o) -> PyObject - @param regname (C++: const char *) - o: PyObject * + @param regname: char const * + @param o: PyObject * - set_reg_val(tid, regidx, o) -> PyObject * - tid: thid_t - regidx: int - o: PyObject * + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) -> 'bool' - How to resume the application. Set resume mode but do not resume - process. - set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) -> 'void' - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - set_trace_base_address(ea) - @param ea (C++: ea_t) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) Help on function set_trace_dynamic_register_set in module ida_dbg: set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) Set dynamic register set of current trace. - set_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t &) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) -> 'void' + set_trace_platform(platform) Set platform name of current trace. - set_trace_platform(platform) - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) -> 'bool' - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - set_trace_size(size) -> bool - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -6881,74 +6637,79 @@ srcdbg_step_until_ret(*args) -> 'bool' Help on function start_process in module ida_dbg: start_process(*args) -> 'int' - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) -> 'bool' - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -6975,10 +6736,10 @@ class tev_info_reg_t(builtins.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -7008,16 +6769,16 @@ class tev_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type Help on class tev_reg_value_t in module ida_dbg: @@ -7028,8 +6789,9 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | _reg_idx: int - | _value: uint64 + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7046,13 +6808,13 @@ class tev_reg_value_t(builtins.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value Help on class tev_reg_values_t in module ida_dbg: @@ -7063,11 +6825,14 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | x: qvector< tev_reg_value_t > const & + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7079,22 +6844,23 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tev_reg_value_t const & + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | __swig_destroy__ = delete_tev_reg_values_t(...) | delete_tev_reg_values_t(self) | | at(self, *args) -> 'tev_reg_value_t const &' | at(self, _idx) -> tev_reg_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7107,16 +6873,16 @@ class tev_reg_values_t(builtins.object) | | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator | + | @param it: qvector< tev_reg_value_t >::iterator | | erase(self, first, last) -> tev_reg_value_t - | first: qvector< tev_reg_value_t >::iterator - | last: qvector< tev_reg_value_t >::iterator + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7126,47 +6892,56 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tev_reg_value_t * - | len: size_t + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator - | x: tev_reg_value_t const & + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_reg_value_t &' | push_back(self, x) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_reg_value_t const & | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tev_reg_value_t > & + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7192,11 +6967,14 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | x: qvector< tev_info_reg_t > const & + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7208,22 +6986,23 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tev_info_reg_t const & + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | __swig_destroy__ = delete_tevinforeg_vec_t(...) | delete_tevinforeg_vec_t(self) | | at(self, *args) -> 'tev_info_reg_t const &' | at(self, _idx) -> tev_info_reg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7236,16 +7015,16 @@ class tevinforeg_vec_t(builtins.object) | | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator | + | @param it: qvector< tev_info_reg_t >::iterator | | erase(self, first, last) -> tev_info_reg_t - | first: qvector< tev_info_reg_t >::iterator - | last: qvector< tev_info_reg_t >::iterator + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7255,47 +7034,56 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tev_info_reg_t * - | len: size_t + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator - | x: tev_info_reg_t const & + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_info_reg_t &' | push_back(self, x) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_info_reg_t const & | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tev_info_reg_t > & + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7315,417 +7103,74 @@ class tevinforeg_vec_t(builtins.object) Help on function update_bpt in module ida_dbg: update_bpt(*args) -> 'bool' - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - update_bpt(bpt) -> bool - @param bpt (C++: const bpt_t *) + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - @param ea (C++: ea_t) - py_buf: PyObject * - @param size (C++: size_t) + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -specific options for basic block tracing (see -'set_bblk_trace_options()' ) - -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: +Module "ida_dirtree"s docstring: """ +Types involved in grouping of item into folders. -ida_dbg.DOPT_FAST_STEP -""" -prevent debugger memory refreshes when single-stepping -""" +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -specific options for function tracing (see 'set_func_trace_options()' -) - -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -specific options for instruction tracing (see -'set_insn_trace_options()' ) - -instruction tracing will log new instructions even when IP doesn't -change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions (not previously logged) -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: class direntry_t(builtins.object) @@ -7735,20 +7180,24 @@ class direntry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __init__(self, *args) | __init__(self, i=BADIDX, d=False) -> direntry_t - | i: uval_t - | d: bool + | + | @param i: uval_t + | @param d: bool | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __repr__ = _swig_repr(self) | @@ -7768,10 +7217,10 @@ class direntry_t(builtins.object) | list of weak references to the object (if defined) | | idx - | direntry_t_idx_get(self) -> uval_t + | idx | | isdir - | direntry_t_isdir_get(self) -> bool + | isdir | | thisown | The membership flag @@ -7794,15 +7243,19 @@ class direntry_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __getitem__(self, *args) -> 'direntry_t const &' | __getitem__(self, i) -> direntry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> direntry_vec_t - | x: qvector< direntry_t > const & + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7812,36 +7265,42 @@ class direntry_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: direntry_t const & + | + | @param i: size_t + | @param v: direntry_t const & | | __swig_destroy__ = delete_direntry_vec_t(...) | delete_direntry_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: direntry_t const & + | + | Parameters + | ---------- + | x: direntry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | at(self, *args) -> 'direntry_t const &' | at(self, _idx) -> direntry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' | begin(self) -> direntry_t - | begin(self) -> direntry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7854,78 +7313,85 @@ class direntry_vec_t(builtins.object) | | end(self, *args) -> 'qvector< direntry_t >::const_iterator' | end(self) -> direntry_t - | end(self) -> direntry_t | | erase(self, *args) -> 'qvector< direntry_t >::iterator' | erase(self, it) -> direntry_t - | it: qvector< direntry_t >::iterator | + | @param it: qvector< direntry_t >::iterator | | erase(self, first, last) -> direntry_t - | first: qvector< direntry_t >::iterator - | last: qvector< direntry_t >::iterator + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator | | extract(self, *args) -> 'direntry_t *' | extract(self) -> direntry_t | | find(self, *args) -> 'qvector< direntry_t >::const_iterator' | find(self, x) -> direntry_t - | x: direntry_t const & | - | - | find(self, x) -> direntry_t - | x: direntry_t const & + | @param x: direntry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=direntry_t()) - | x: direntry_t const & + | + | @param x: direntry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: direntry_t * - | len: size_t + | + | @param s: direntry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< direntry_t >::iterator' | insert(self, it, x) -> direntry_t - | it: qvector< direntry_t >::iterator - | x: direntry_t const & + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'direntry_t &' | push_back(self, x) - | x: direntry_t const & + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: direntry_t const & | + | @param _newsize: size_t + | @param x: direntry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< direntry_t > & + | + | @param r: qvector< direntry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7958,8 +7424,9 @@ class dirspec_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, f=0) -> dirspec_t - | nm: char const * - | f: uint32 + | + | @param nm: char const * + | @param f: uint32 | | __repr__ = _swig_repr(self) | @@ -7968,36 +7435,39 @@ class dirspec_t(builtins.object) | | get_attrs(self, *args) -> 'qstring' | get_attrs(self, inode) -> qstring - | @param inode (C++: inode_t) + | + | @param inode: inode_t | | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t | get the entry inode in the specified directory | - | get_inode(self, diridx, name) -> inode_t - | @param diridx (C++: diridx_t) - | @param name (C++: const char *) - | @return: the entry inode + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode | | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool | get the entry name. for example, the structure name | - | get_name(self, inode) -> bool - | @param inode (C++: inode_t) - | @return: false if the entry does not exist. + | @param out: (C++: qstring *) may be nullptr; in this case get_name can be used to validate an + | inode. + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. | | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool | rename the entry | - | rename_inode(self, inode, newname) -> bool - | @param inode (C++: inode_t) - | @param newname (C++: const char *) - | @return: success + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success | | unlink_inode(self, *args) -> 'void' - | event: unlinked an inode - | | unlink_inode(self, inode) - | @param inode (C++: inode_t) + | + | @param inode: (C++: inode_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8009,10 +7479,13 @@ class dirspec_t(builtins.object) | list of weak references to the object (if defined) | | flags - | dirspec_t_flags_get(self) -> uint32 + | flags + | + | id + | id | | nodename - | dirspec_t_nodename_get(self) -> qstring * + | id | | thisown | The membership flag @@ -8033,32 +7506,39 @@ class dirtree_cursor_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __init__(self, *args) | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t - | _parent: diridx_t - | _rank: size_t + | + | @param _parent: diridx_t + | @param _rank: size_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __repr__ = _swig_repr(self) | @@ -8067,7 +7547,8 @@ class dirtree_cursor_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | is_root_cursor(self, *args) -> 'bool' | is_root_cursor(self) -> bool @@ -8094,10 +7575,10 @@ class dirtree_cursor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | dirtree_cursor_t_parent_get(self) -> diridx_t + | parent | | rank - | dirtree_cursor_t_rank_get(self) -> size_t + | rank | | thisown | The membership flag @@ -8121,15 +7602,19 @@ class dirtree_cursor_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) -> 'dirtree_cursor_t const &' | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> dirtree_cursor_vec_t - | x: qvector< dirtree_cursor_t > const & + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8139,36 +7624,42 @@ class dirtree_cursor_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) | delete_dirtree_cursor_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) -> 'dirtree_cursor_t const &' | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -8181,78 +7672,85 @@ class dirtree_cursor_vec_t(builtins.object) | | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) -> 'dirtree_cursor_t *' | extract(self) -> dirtree_cursor_t | | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'dirtree_cursor_t &' | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -8299,10 +7797,10 @@ class dirtree_iterator_t(builtins.object) | list of weak references to the object (if defined) | | cursor - | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | cursor | | pattern - | dirtree_iterator_t_pattern_get(self) -> qstring * + | pattern | | thisown | The membership flag @@ -8338,11 +7836,13 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) -> 'dirtree_cursor_t const &' | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8352,31 +7852,37 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) -> 'dirtree_cursor_t const &' | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -8389,78 +7895,85 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) -> 'dirtree_cursor_t *' | extract(self) -> dirtree_cursor_t | | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'dirtree_cursor_t &' | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -8488,7 +8001,8 @@ class dirtree_t(builtins.object) | | __init__(self, *args) | __init__(self, ds) -> dirtree_t - | ds: dirspec_t * + | + | @param ds: dirspec_t * | | __repr__ = _swig_repr(self) | @@ -8496,203 +8010,235 @@ class dirtree_t(builtins.object) | delete_dirtree_t(self) | | change_rank(self, *args) -> 'dterr_t' - | Change ordering rank of an item.All subdirectories go before all file - | entries. - | | change_rank(self, path, rank_delta) -> dterr_t - | @param path: path to the item (C++: const char *) - | @param rank_delta (C++: ssize_t) - | @return: dterr_t error code + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param delta: the amount of the change. positive numbers mean to move down in + | the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. | | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t | Change current directory | - | chdir(self, path) -> dterr_t - | @param path: new current directory (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param directory: entry + | @return: cursor corresponding to the directory entry | | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool | Start iterating over files in a directory | - | findfirst(self, ff, pattern) -> bool - | @param ff: directory iterator. it will be initialized by the function - | (C++: dirtree_iterator_t *) - | @param pattern: pattern to search for (C++: const char *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success | | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool | Continue iterating over files in a directory | - | findnext(self, ff) -> bool - | @param ff: directory iterator (C++: dirtree_iterator_t *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success | | get_abspath(self, *args) -> 'qstring' - | Get absolute path pointed by the cursorsee also 'resolve_cursor()' - | | get_abspath(self, cursor) -> qstring - | @param cursor (C++: const dirtree_cursor_t &) - | @return: path. empty path means wrong directory part of RELPATH + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. | + | @param cursor: dirtree_cursor_t const & | + | @return: path. empty path means wrong directory part of RELPATH | get_abspath(self, relpath) -> qstring - | relpath: char const * - | @return: path. empty path means wrong directory part of RELPATH + | + | @param relpath: char const * | | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t | Get dir size | - | get_dir_size(self, diridx) -> ssize_t - | @param diridx: directory index (C++: diridx_t) - | @return: number of entries under this directory; if error, return -1 + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 | | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring | Get entry attributes | - | get_entry_attrs(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @return: name | | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring | Get entry name | - | get_entry_name(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name | - | get_nodename(self, *args) -> 'char const *' + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * | netnode name | + | get_nodename = get_id(self, *args) -> 'char const *' + | | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t | Get parent cursor. | - | get_parent_cursor(self, cursor) -> dirtree_cursor_t - | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) - | @return: cursor's parent + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent | | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t | Get ordering rank of an item. | - | get_rank(self, diridx, de) -> ssize_t - | @param diridx: index of the parent directory (C++: diridx_t) - | @param de: directory entry (C++: const direntry_t &) - | @return: number in a range of [0..n) where n is the number of entries - | in the parent directory. -1 if error + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error | | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring | Get current directory + | + | @return: the current working directory | | isdir(self, *args) -> 'bool' - | Is a directory? - | | isdir(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a directory | + | @param de: direntry_t const & | | isdir(self, path) -> bool - | path: char const * - | @return: true if the specified path is a directory + | + | @param path: char const * | | isfile(self, *args) -> 'bool' - | Is a file? - | | isfile(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a file | + | @param de: direntry_t const & | | isfile(self, path) -> bool - | path: char const * - | @return: true if the specified path is a file + | + | @param path: char const * | | link(self, *args) -> 'dterr_t' - | Add a file item into a directory. - | | link(self, path) -> dterr_t - | @param path: path to item to add to a directory (C++: const char *) - | @return: dterr_t error code + | Add an inode into the current directory | + | @param path: char const * | + | @return: dterr_t error code | link(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | load(self, *args) -> 'bool' - | Load the tree structure from the netnode. If dirspec_t::nodename is - | empty, the operation will be considered a success. In addition, - | calling 'load()' more than once will not do anything, and will be - | considered a success.dirspec_t::nodename. + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. | | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t | Create a directory. | - | mkdir(self, path) -> dterr_t - | @param path: directory to create (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code | | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) | Notify dirtree about a change of an inode. | - | notify_dirtree(self, added, inode) - | @param added (C++: bool) - | @param inode: inode in question (C++: inode_t) + | @param add: are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question | | rename(self, *args) -> 'dterr_t' - | Rename a directory entry.This function can also rename the item - | | rename(self, _from, to) -> dterr_t - | @param _from: source path (C++: const char *) - | @param to: destination path (C++: const char *) - | @return: dterr_t error code + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item | | resolve_cursor(self, *args) -> 'direntry_t' - | Resolve cursorsee also 'get_abspath()' - | | resolve_cursor(self, cursor) -> direntry_t - | @param cursor: to analyze (C++: const dirtree_cursor_t &) - | @return: directory entry; if the cursor is bad, the resolved entry - | will be invalid. + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() | | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t | Resolve path | - | resolve_path(self, path) -> direntry_t - | @param path: to analyze (C++: const char *) - | @return: directory entry + | @param path: (C++: const char *) to analyze + | @return: directory entry | | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t | Remove a directory. | - | rmdir(self, path) -> dterr_t - | @param path: directory to delete (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code | | save(self, *args) -> 'bool' - | Save the tree structure to the netnode.dirspec_t::nodename. + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. | - | set_nodename(self, *args) -> 'void' - | set_nodename(self, nm) - | @param nm (C++: const char *) + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned | | unlink(self, *args) -> 'dterr_t' - | Remove a file item from a directory. - | | unlink(self, path) -> dterr_t - | @param path: path to item remove from a directory (C++: const char *) - | @return: dterr_t error code + | Remove an inode from the current directory | + | @param path: char const * | + | @return: dterr_t error code | unlink(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | ---------------------------------------------------------------------- | Static methods defined here: | | errstr(*args) -> 'char const *' | errstr(err) -> char const * - | err: enum dterr_t + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8710,21 +8256,73 @@ Help on function dirtree_t_errstr in module ida_dirtree: dirtree_t_errstr(*args) -> 'char const *' dirtree_t_errstr(err) -> char const * - err: enum dterr_t + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag Help on function get_std_dirtree in module ida_dirtree: get_std_dirtree(*args) -> 'dirtree_t *' get_std_dirtree(id) -> dirtree_t - @param id (C++: dirtree_id_t) + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" Help on function choose_ioport_device2 in module ida_diskio: choose_ioport_device2(*args) -> 'bool' choose_ioport_device2(_device, file, parse_params) -> bool - @param _device (C++: qstring *) - @param file (C++: const char *) - @param parse_params (C++: choose_ioport_parser_t *) + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * Help on class choose_ioport_parser_t in module ida_diskio: @@ -8737,7 +8335,8 @@ class choose_ioport_parser_t(builtins.object) | | __init__(self, *args) | __init__(self) -> choose_ioport_parser_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8746,11 +8345,12 @@ class choose_ioport_parser_t(builtins.object) | | parse(self, *args) -> 'bool' | parse(self, param, line) -> bool - | @param param (C++: qstring *) - | @param line (C++: const char *) - | @retval: true - and fill PARAM with a displayed string - | @retval: false - and empty PARAM to skip the current device - | @retval: false - and fill PARAM with an error message + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8767,69 +8367,70 @@ class choose_ioport_parser_t(builtins.object) Help on function close_linput in module ida_diskio: close_linput(*args) -> 'void' + close_linput(li) Close loader input. - close_linput(li) - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) -> 'linput_t *' + create_bytearray_linput(s) -> linput_t * Trivial memory linput. - create_bytearray_linput(s) -> linput_t * - s: qstring const & + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) -> 'linput_t *' + create_generic_linput(gl) -> linput_t * Create a generic linput - create_generic_linput(gl) -> linput_t * - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) -> 'linput_t *' - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - create_memory_linput(start, size) -> linput_t * - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) -> 'void' eclose(fp) - @param fp (C++: FILE *) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) -> 'PyObject *' enumerate_files(path, fname, callback) -> PyObject * Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero Help on function enumerate_files2 in module ida_diskio: enumerate_files2(*args) -> 'int' enumerate_files2(answer, answer_size, path, fname, fv) -> int - @param answer (C++: char *) - @param answer_size (C++: size_t) - @param path (C++: const char *) - @param fname (C++: const char *) - @param fv (C++: file_enumerator_t &) + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & Help on class file_enumerator_t in module ida_diskio: @@ -8842,7 +8443,8 @@ class file_enumerator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> file_enumerator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8851,7 +8453,8 @@ class file_enumerator_t(builtins.object) | | visit_file(self, *args) -> 'int' | visit_file(self, file) -> int - | @param file (C++: const char *) + | + | @param file: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8868,58 +8471,58 @@ class file_enumerator_t(builtins.object) Help on function fopenA in module ida_diskio: fopenA(*args) -> 'FILE *' + fopenA(file) -> FILE * Open a file for append in text mode, deny none. - fopenA(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) -> 'FILE *' + fopenM(file) -> FILE * Open a file for read/write in binary mode, deny write. - fopenM(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) -> 'FILE *' + fopenRB(file) -> FILE * Open a file for read in binary mode, deny none. - fopenRB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) -> 'FILE *' + fopenRT(file) -> FILE * Open a file for read in text mode, deny none. - fopenRT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) -> 'FILE *' - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - fopenWB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) -> 'FILE *' - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - fopenWT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8938,9 +8541,10 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t - | @param off (C++: qoff64_t) - | @param buffer (C++: void *) - | @param nbytes (C++: size_t) + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8952,10 +8556,10 @@ class generic_linput_t(builtins.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8963,64 +8567,64 @@ class generic_linput_t(builtins.object) Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) -> 'qstrvec_t *' - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - get_ida_subdirs(subdir, flags=0) -> int - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) -> 'linput_type_t' + get_linput_type(li) -> linput_type_t Get linput type. - get_linput_type(li) -> linput_type_t - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) -> 'size_t' - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - get_special_folder(csidl) -> str - @param csidl (C++: int) + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) -> 'char const *' + get_user_idadir() -> char const * Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) -> 'char const *' - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - getsysfile(filename, subdir) -> str - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) -> 'char const *' - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - idadir(subdir) -> char const * - @param subdir (C++: const char *) + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * Help on class ioports_fallback_t in module ida_diskio: @@ -9033,7 +8637,8 @@ class ioports_fallback_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ioports_fallback_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9042,8 +8647,9 @@ class ioports_fallback_t(builtins.object) | | handle(self, *args) -> 'bool' | handle(self, ports, line) -> bool - | @param ports (C++: const ioports_t &) - | @param line (C++: const char *) + | + | @param ports: ioports_t const & + | @param line: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9060,191 +8666,174 @@ class ioports_fallback_t(builtins.object) Help on function open_linput in module ida_diskio: open_linput(*args) -> 'linput_t *' + open_linput(file, remote) -> linput_t * Open loader input. - open_linput(file, remote) -> linput_t * - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) -> 'size_t' - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - qlgetz(li, fpos) -> str - @param li (C++: linput_t *) - @param fpos (C++: int64) + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) Help on function read_ioports2 in module ida_diskio: read_ioports2(*args) -> 'ssize_t' read_ioports2(ports, device, file, callback=None) -> ssize_t - @param ports (C++: ioports_t *) - @param device (C++: qstring *) - @param file (C++: const char *) - @param callback (C++: ioports_fallback_t *) + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) -> 'qstring *' + get_entry_forwarder(ord) -> str Get forwarder name for the entry point by its ordinal. - get_entry_forwarder(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) -> 'bool' + set_entry_forwarder(ord, name, flags=0) -> bool Set forwarder name for ordinal. - set_entry_forwarder(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC +Enums and bitfields are represented as enum_t.""" -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) -> 'enum_t' - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - add_enum(idx, name, flag) -> enum_t - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) -> 'int' + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int Add member to enum type. - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) -> 'bool' + del_enum_member(id, value, serial, bmask) -> bool Delete member of enum type. - del_enum_member(id, value, serial, bmask) -> bool - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -9257,7 +8846,8 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9265,12 +8855,12 @@ class enum_member_visitor_t(builtins.object) | delete_enum_member_visitor_t(self) | | visit_enum_member(self, *args) -> 'int' + | visit_enum_member(self, cid, value) -> int | Implements action to take when enum member is visited. | - | visit_enum_member(self, cid, value) -> int - | @param cid (C++: const_t) - | @param value (C++: uval_t) - | @return: nonzero to stop the iteration + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9287,489 +8877,472 @@ class enum_member_visitor_t(builtins.object) Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) -> 'int' + for_all_enum_members(id, cv) -> int Visit all members of a given enum. - for_all_enum_members(id, cv) -> int - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) -> 'qstring *' get_bmask_cmt(id, bmask, repeatable) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) -> 'flags_t' - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) -> 'const_t' - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - get_enum_member(id, value, serial, mask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) -> 'qstring *' + get_enum_member_cmt(id, repeatable) -> str Get enum member's comment. - get_enum_member_cmt(id, repeatable) -> str - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) -> 'qstring *' + get_enum_member_name(id) -> str Get name of an enum member by const_t. - get_enum_member_name(id) -> str - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) -> 'uchar' + get_enum_member_serial(cid) -> uchar Get serial number of an enum member. - get_enum_member_serial(cid) -> uchar - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) -> 'qstring *' + get_enum_name2(id, flags=0) -> str Get name of enum - get_enum_name2(id, flags=0) -> str - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) -> 'int32' + get_enum_type_ordinal(id) -> int32 Get corresponding type ordinal number. - get_enum_type_ordinal(id) -> int32 - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) -> 'uchar *' get_first_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) -> 'uchar *' get_last_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) -> 'uchar *' get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) -> 'uchar *' get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) -> 'bool' + is_enum_fromtil(id) -> bool Does enum come from type library? - is_enum_fromtil(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) -> 'bool' + is_enum_hidden(id) -> bool Is enum collapsed? - is_enum_hidden(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) -> 'bool' + is_ghost_enum(id) -> bool Is a ghost copy of a local type? - is_ghost_enum(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) -> 'bool' + is_one_bit_mask(mask) -> bool Is bitmask one bit? - is_one_bit_mask(mask) -> bool - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) -> 'bool' set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) -> 'bool' set_bmask_name(id, bmask, name) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param name (C++: const char *) + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) -> 'bool' + set_enum_fromtil(id, fromtil) -> bool Specify that enum comes from a type library. - set_enum_fromtil(id, fromtil) -> bool - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) -> 'bool' + set_enum_ghost(id, ghost) -> bool Specify that enum is a ghost copy of a local type. - set_enum_ghost(id, ghost) -> bool - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) -> 'bool' + set_enum_hidden(id, hidden) -> bool Collapse enum. - set_enum_hidden(id, hidden) -> bool - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) -> 'void' + set_enum_type_ordinal(id, ord) Set corresponding type ordinal number. - set_enum_type_ordinal(id, ord) - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(builtins.object) @@ -9797,284 +9370,283 @@ class _IdcFunction(builtins.object) Help on function add_idc_class in module ida_expr: add_idc_class(*args) -> 'idc_class_t *' + add_idc_class(name, super=None) -> idc_class_t * Create a new IDC class. - add_idc_class(name, super=None) -> idc_class_t * - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: add_idc_func(name, fp, args, defvals=(), flags=0) Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param defvals: default argument values (optional) - @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) -> 'idc_value_t *' + add_idc_gvar(name) -> idc_value_t Add global IDC variable. - add_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) -> 'qstring *' compile_idc_file(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) -> 'qstring *' + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str Compile text with IDC statements. - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - @retval: true - ok - @retval: false - error, see errbuf + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) -> 'qstring *' compile_idc_text(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) -> 'error_t' + copy_idcv(dst, src) -> error_t Copy 'src' to 'dst'. For idc objects only a reference is copied. - copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) -> 'bool' - Create a variable reference. Currently only references to global - variables can be created. - create_idcv_ref(ref, v) -> bool - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) -> 'error_t' - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - deep_copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean + Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) -> 'error_t' + del_idcv_attr(obj, attr) -> error_t Delete an object attribute. - del_idcv_attr(obj, attr) -> error_t - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) -> 'idc_value_t *' - Dereference a 'VT_REF' variable. - deref_idcv(v, vref_flags) -> idc_value_t - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) -> 'qstring *' + eval_expr(rv, where, line) -> str Compile and calculate an expression. - eval_expr(rv, where, line) -> str - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - @retval: true - ok - @retval: false - error, see errbuf + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) -> 'qstring *' - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - eval_idc_expr(rv, where, line) -> str - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - line: char const * + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) -> 'qstring *' + exec_idc_script(result, path, func, args, argsnum) -> str Compile and execute IDC function(s) from file. - exec_idc_script(result, path, func, args, argsnum) -> str - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - @retval: true - ok - @retval: false - error, see errbuf + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) -> 'bool' + exec_system_script(file, complain_if_no_file=True) -> bool Compile and execute "main" function from system file. - exec_system_script(file, complain_if_no_file=True) -> bool - @param file: file name with IDC function(s). The file will be searched - using get_idc_filename() . (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - @retval: 1 - ok, file is compiled and executed - @retval: 0 - failure, compilation or execution error, warning is - displayed + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) -> 'idc_class_t *' + find_idc_class(name) -> idc_class_t * Find an existing IDC class by its name. - find_idc_class(name) -> idc_class_t * - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) -> 'qstring *' find_idc_func(prefix, n=0) -> str - @param prefix (C++: const char *) - @param n (C++: int) + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) -> 'idc_value_t *' + find_idc_gvar(name) -> idc_value_t Find an existing global IDC variable by its name. - find_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) -> 'char const *' first_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) -> 'void' - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - free_idcv(v) - @param v (C++: idc_value_t *) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) -> 'char const *' - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and system directories. - get_idc_filename(file) -> str - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) -> 'error_t' + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t Get an object attribute. - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) -> 'qstring *' + get_idcv_class_name(obj) -> str Retrieves the IDC object class name. - get_idcv_class_name(obj) -> str - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) -> 'error_t' + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t Get slice. - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -10087,7 +9659,8 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -10102,13 +9675,15 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) - | arg0: int32 + | + | @param arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) - | arg0: int32 - | arg1: int32 - | arg2: enum syntax_highlight_style + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10131,7 +9706,9 @@ class idc_global_t(builtins.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | n: char const * + | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -10148,13 +9725,13 @@ class idc_global_t(builtins.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value Help on class idc_value_t in module ida_expr: @@ -10165,15 +9742,16 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t - | n: sval_t | + | @param n: sval_t | | __init__(self, r) -> idc_value_t - | r: idc_value_t const & | + | @param r: idc_value_t const & | | __init__(self, _str) -> idc_value_t - | _str: char const * + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -10184,60 +9762,72 @@ class idc_value_t(builtins.object) | _create_empty_string(self) | | c_str(self, *args) -> 'char const *' - | 'VT_STR' + | c_str(self) -> char const * + | VT_STR | | clear(self, *args) -> 'void' - | See 'free_idcv()' + | clear(self) + | See free_idcv() | | create_empty_string(self, *args) -> 'void' | create_empty_string(self) | | is_convertible(self, *args) -> 'bool' - | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and - | 'VT_STR' . + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool | Does value represent a whole number? | | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool | Does value represent the integer 0? | | qstr(self, *args) -> 'qstring const &' - | 'VT_STR' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & | | set_float(self, *args) -> 'void' | set_float(self, f) - | f: fpvalue_t const & + | + | @param f: fpvalue_t const & | | set_int64(self, *args) -> 'void' | set_int64(self, v) - | v: int64 + | + | @param v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) - | v: sval_t + | + | @param v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) - | p: void * + | + | @param p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) - | _str: char const * - | len: size_t | + | @param _str: char const * + | @param len: size_t | | set_string(self, _str) - | _str: char const * + | + | @param _str: char const * | | swap(self, *args) -> 'void' + | swap(self, v) | Set this = r and v = this. | - | swap(self, v) - | @param v (C++: idc_value_t &) + | @param v: (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' - | 'VT_STR' + | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10249,25 +9839,25 @@ class idc_value_t(builtins.object) | list of weak references to the object (if defined) | | e - | idc_value_t_e_get(self) -> fpvalue_t + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -10275,7 +9865,7 @@ class idc_value_t(builtins.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype Help on class idc_values_t in module ida_expr: @@ -10286,11 +9876,14 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | x: qvector< idc_value_t > const & + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -10302,22 +9895,23 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: idc_value_t const & + | + | @param i: size_t + | @param v: idc_value_t const & | | __swig_destroy__ = delete_idc_values_t(...) | delete_idc_values_t(self) | | at(self, *args) -> 'idc_value_t const &' | at(self, _idx) -> idc_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -10330,16 +9924,16 @@ class idc_values_t(builtins.object) | | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t - | it: qvector< idc_value_t >::iterator | + | @param it: qvector< idc_value_t >::iterator | | erase(self, first, last) -> idc_value_t - | first: qvector< idc_value_t >::iterator - | last: qvector< idc_value_t >::iterator + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -10349,47 +9943,56 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) - | x: idc_value_t const & + | + | @param x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: idc_value_t * - | len: size_t + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t - | it: qvector< idc_value_t >::iterator - | x: idc_value_t const & + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) - | x: idc_value_t const & + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: idc_value_t const & | + | @param _newsize: size_t + | @param x: idc_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< idc_value_t > & + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -10409,111 +10012,113 @@ class idc_values_t(builtins.object) Help on function idcv_float in module ida_expr: idcv_float(*args) -> 'error_t' + idcv_float(v) -> error_t Convert IDC variable to a floating point. - idcv_float(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) -> 'error_t' + idcv_int64(v) -> error_t Convert IDC variable to a 64bit number. - idcv_int64(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) -> 'error_t' + idcv_long(v) -> error_t Convert IDC variable to a long (32/64bit) number. - idcv_long(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) -> 'error_t' + idcv_num(v) -> error_t Convert IDC variable to a long number. - idcv_num(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) -> 'error_t' + idcv_object(v, icls=None) -> error_t Create an IDC object. The original value of 'v' is discarded (freed). - idcv_object(v, icls=None) -> error_t - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) -> 'error_t' + idcv_string(v) -> error_t Convert IDC variable to a text string. - idcv_string(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) -> 'char const *' last_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) -> 'error_t' - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - move_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) -> 'char const *' next_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) -> 'char const *' prev_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) -> 'qstring *' - Get text representation of 'idc_value_t' . - print_idcv(v, name=None, indent=0) -> str - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - name: char const * - fp_ptr: size_t - args: char const * - defvals: idc_values_t const & - flags: int + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -10524,222 +10129,135 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool - out: idc_values_t * - py_seq: PyObject * + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) -> 'size_t' pyw_register_idc_func(name, args, py_fp) -> size_t - name: char const * - args: char const * - py_fp: PyObject * + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) -> 'bool' pyw_unregister_idc_func(ctxptr) -> bool - ctxptr: size_t + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) -> 'bool' - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - set_header_path(path, add) -> bool - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - @retval: true - success - @retval: false - no memory + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) -> 'error_t' + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t Set an object attribute. - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) -> 'error_t' + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t Set slice. - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - in: idc_value_t const & - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) -> 'void' + swap_idcvs(v1, v2) Swap 2 variables. - swap_idcvs(v1, v2) - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) -> 'error_t' - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - throw_idc_exception(r, desc) -> error_t - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) -> 'int' - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - calc_fixup_size(type) -> int - @param type (C++: fixup_type_t) - @retval: -1 - means error + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) -> 'bool' + contains_fixups(ea, size) -> bool Does the specified address range contain any fixup information? - contains_fixups(ea, size) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) -> 'bool' + exists_fixup(source) -> bool Check that a fixup exists at the given address. - exists_fixup(source) -> bool - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) -> 'fixup_type_t' + find_custom_fixup(name) -> fixup_type_t Get id of a custom fixup handler. - find_custom_fixup(name) -> fixup_type_t - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10750,8 +10268,10 @@ class fixup_data_t(builtins.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | type_: fixup_type_t - | flags_: uint32 + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10759,7 +10279,8 @@ class fixup_data_t(builtins.object) | delete_fixup_data_t(self) | | calc_size(self, *args) -> 'int' - | 'calc_fixup_size()' + | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) -> 'void' | clr_extdef(self) @@ -10768,41 +10289,48 @@ class fixup_data_t(builtins.object) | clr_unused(self) | | get(self, *args) -> 'bool' - | 'get_fixup()' - | | get(self, source) -> bool - | @param source (C++: ea_t) + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) -> 'ea_t' - | Get base of fixup.The target is calculated as 'get_base()' + off. - | 'get_base()' + off 'FIXUPF_REL' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) -> 'char const *' - | 'get_fixup_desc()' - | | get_desc(self, source) -> char const * - | @param source (C++: ea_t) + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) -> 'uint32' - | Fixup flags 'Fixup flags' . + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) -> 'fixup_handler_t const *' - | 'get_fixup_handler()' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) -> 'fixup_type_t' - | Fixup type 'Types of fixups' . + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) -> 'uval_t' - | 'get_fixup_value()' - | | get_value(self, ea) -> uval_t - | @param ea (C++: ea_t) + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) -> 'bool' + | has_base(self) -> bool | Is fixup relative? | | is_custom(self, *args) -> 'bool' - | 'is_fixup_custom()' + | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) -> 'bool' | is_extdef(self) -> bool @@ -10811,48 +10339,52 @@ class fixup_data_t(builtins.object) | is_unused(self) -> bool | | patch_value(self, *args) -> 'bool' - | 'patch_fixup_value()' - | | patch_value(self, ea) -> bool - | @param ea (C++: ea_t) + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) -> 'void' - | 'set_fixup()' - | | set(self, source) - | @param source (C++: ea_t) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) -> 'void' - | Set base of fixup. The target should be set before a call of this - | function. - | | set_base(self, new_base) - | @param new_base (C++: ea_t) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) -> 'void' | set_extdef(self) | | set_sel(self, *args) -> 'void' | set_sel(self, seg) - | @param seg (C++: const segment_t *) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) -> 'void' - | Set selector of fixup to the target. The target should be set before a - | call of this function. + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) -> 'void' | set_type(self, type_) - | @param type_ (C++: fixup_type_t) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) - | @param type_ (C++: fixup_type_t) - | @param flags_ (C++: uint32) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) -> 'void' | set_unused(self) | | was_created(self, *args) -> 'bool' + | was_created(self) -> bool | Is fixup artificial? | | ---------------------------------------------------------------------- @@ -10865,13 +10397,13 @@ class fixup_data_t(builtins.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10901,10 +10433,10 @@ class fixup_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10912,191 +10444,180 @@ class fixup_info_t(builtins.object) Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) -> 'void' - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - gen_fix_fixups(_from, to, size) - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) -> 'ea_t' + get_first_fixup_ea() -> ea_t Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR Help on function get_fixup in module ida_fixup: get_fixup(*args) -> 'bool' + get_fixup(fd, source) -> bool Get fixup information. - get_fixup(fd, source) -> bool - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) -> 'fixup_data_t const &' + get_fixup_desc(source, fd) -> str Get FIXUP description comment. - get_fixup_desc(source, fd) -> str - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) -> 'fixup_handler_t const *' + get_fixup_handler(type) -> fixup_handler_t const * Get handler of standard or custom fixup. - get_fixup_handler(type) -> fixup_handler_t const * - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) -> 'uval_t' - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - get_fixup_value(ea, type) -> uval_t - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - @retval: operand - value + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool - @param out (C++: fixups_t *) - @param ea (C++: ea_t) - @param size (C++: asize_t) + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function handle_fixups_in_macro in module ida_fixup: handle_fixups_in_macro(*args) -> 'bool' - Handle two fixups in a macro. We often combine two instruction that - load parts of a value into one macro instruction. For example: ARM: - ADRP X0, #var@PAGE ADD X0, X0, #var@PAGEOFF --> ADRL X0, var MIPS: lui - $v0, hi(var) addiu $v0, $v0, lo(var) --> la $v0, var When applying the - fixups that fall inside such a macro, we should convert them to one - refinfo. This function does exactly that. It should be called from the + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the apply() callback of a custom fixup. - handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param other (C++: fixup_type_t) - @param macro_reft_and_flags (C++: uint32) - @return: success ('false' means that RI was not changed) + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) -> 'bool' + is_fixup_custom(type) -> bool Is fixup processed by processor module? - is_fixup_custom(type) -> bool - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) -> 'bool' - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - patch_fixup_value(ea, fd) -> bool - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - @retval: false - the fixup bytes do not fit (e.g. fd->off is greater - than 0xFFFFFFC for BRANCH26). The database is changed - even in this case. + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) -> 'void' - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - set_fixup(source, fd) - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(builtins.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | Closes the file + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -11105,16 +10626,17 @@ class qfile_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | filename(self, *args) -> 'PyObject *' | filename(self) -> PyObject * | | flush(self, *args) -> 'int' | flush(self) -> int - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte | | get_fp(self, *args) -> 'FILE *' | get_fp(self) -> FILE * @@ -11122,6 +10644,8 @@ class qfile_t(builtins.object) | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool @@ -11138,22 +10662,33 @@ class qfile_t(builtins.object) | put_byte(self, *args) -> 'int' | put_byte(self, chr) -> int | Writes a single byte to the file + | + | @param chr: int | | puts(self, *args) -> 'int' | puts(self, str) -> int - | str: char const * + | + | @param str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) -> 'int64' @@ -11166,21 +10701,28 @@ class qfile_t(builtins.object) | write(self, *args) -> 'int' | write(self, py_buf) -> int | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t - | fp: FILE * + | + | @param fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t @@ -11193,7 +10735,7 @@ class qfile_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -11205,390 +10747,401 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) -> 'qfile_t *' qfile_t_from_capsule(pycapsule) -> qfile_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) -> 'qfile_t *' qfile_t_from_fp(fp) -> qfile_t - fp: FILE * + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) -> 'qfile_t *' qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) -> 'bool' + add_auto_stkpnt(pfn, ea, delta) -> bool Add automatic SP register change point. - add_auto_stkpnt(pfn, ea, delta) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function add_frame in module ida_frame: add_frame(*args) -> 'bool' + add_frame(pfn, frsize, frregs, argsize) -> bool Add function frame. - add_frame(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - @retval: 1 - ok - @retval: 0 - failed (no function, frame already exists) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) -> 'int' + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int Define a register variable. - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) -> 'qstring *' + build_stkvar_name(pfn, v) -> str Build automatic stack variable name. - build_stkvar_name(pfn, v) -> str - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) -> 'void' - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - build_stkvar_xrefs(out, pfn, mptr) - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) -> 'ea_t' + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t Calculate offset of stack variable in the frame structure. - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) -> 'bool' + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool Define/redefine a stack variable. - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success Help on function del_frame in module ida_frame: del_frame(*args) -> 'bool' + del_frame(pfn) -> bool Delete a function frame. - del_frame(pfn) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) -> 'int' + del_regvar(pfn, ea1, ea2, canon) -> int Delete a register variable definition. - del_regvar(pfn, ea1, ea2, canon) -> int - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) -> 'bool' + del_stkpnt(pfn, ea) -> bool Delete SP register change point. - del_stkpnt(pfn, ea) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) -> 'int' delete_unreferenced_stkvars(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) -> 'int' delete_wrong_stkvar_ops(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) -> 'regvar_t *' - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + Find a register variable definition. + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - @param pfn: function in question (C++: func_t *) - ea: ea_t - @param canon: name of a general register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) -> 'ea_t' + frame_off_args(pfn) -> ea_t Get starting address of arguments section. - frame_off_args(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) -> 'ea_t' + frame_off_lvars(pfn) -> ea_t Get start address of local variables section. - frame_off_lvars(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) -> 'ea_t' + frame_off_retaddr(pfn) -> ea_t Get starting address of return address section. - frame_off_retaddr(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) -> 'ea_t' + frame_off_savregs(pfn) -> ea_t Get starting address of saved registers section. - frame_off_savregs(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function free_regvar in module ida_frame: free_regvar(*args) -> 'void' free_regvar(v) - @param v (C++: struct regvar_t *) + + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) -> 'sval_t' - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - get_effective_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) -> 'struc_t *' + get_frame(pfn) -> struc_t Get pointer to function frame. - get_frame(pfn) -> struc_t - @param pfn: pointer to function structure (C++: const func_t *) - + @param pfn: func_t const * get_frame(ea) -> struc_t * - ea: ea_t + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) -> 'void' + get_frame_part(range, pfn, part) Get offsets of the frame part in the frame. - get_frame_part(range, pfn, part) - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) -> 'int' + get_frame_retsize(pfn) -> int Get size of function return address. - get_frame_retsize(pfn) -> int - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) -> 'asize_t' - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - get_frame_size(pfn) -> asize_t - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) -> 'ea_t' - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - get_func_by_frame(frame_id) -> ea_t - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) -> 'sval_t' + get_sp_delta(pfn, ea) -> sval_t Get modification of SP made at the specified location - get_sp_delta(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) -> 'sval_t' + get_spd(pfn, ea) -> sval_t Get difference between the initial and current values of ESP. - get_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) -> 'PyObject *' - get_stkvar(insn, op, v) -> PyObject * + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable Help on function has_regvar in module ida_frame: has_regvar(*args) -> 'bool' + has_regvar(pfn, ea) -> bool Is there a register variable definition? - has_regvar(pfn, ea) -> bool - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) -> 'bool' is_funcarg_off(pfn, frameoff) -> bool - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) -> 'sval_t' lvar_off(pfn, frameoff) -> sval_t - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -11604,7 +11157,9 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t - | r: regvar_t const & + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | @@ -11613,88 +11168,95 @@ class regvar_t(ida_range.range_t) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: regvar_t &) + | + | @param r: regvar_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11708,12 +11270,12 @@ class regvar_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11723,67 +11285,64 @@ class regvar_t(ida_range.range_t) Help on function rename_regvar in module ida_frame: rename_regvar(*args) -> 'int' + rename_regvar(pfn, v, user) -> int Rename a register variable. - rename_regvar(pfn, v, user) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) -> 'bool' - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - set_frame_size(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success Help on function set_purged in module ida_frame: set_purged(*args) -> 'bool' - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - set_purged(ea, nbytes, override_old_value) -> bool - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) -> 'int' + set_regvar_cmt(pfn, v, cmt) -> int Set comment for a register variable. - set_regvar_cmt(pfn, v, cmt) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) -> 'sval_t' - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - soff_to_fpoff(pfn, soff) -> sval_t - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11794,30 +11353,36 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11826,7 +11391,8 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11838,10 +11404,10 @@ class stkpnt_t(builtins.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11860,30 +11426,36 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11892,7 +11464,8 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11914,13 +11487,12 @@ class stkpnts_t(builtins.object) Help on function update_fpd in module ida_frame: update_fpd(*args) -> 'bool' + update_fpd(pfn, fpd) -> bool Update frame pointer delta. - update_fpd(pfn, fpd) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11931,30 +11503,36 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -11963,7 +11541,8 @@ class xreflist_entry_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11975,16 +11554,16 @@ class xreflist_entry_t(builtins.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -12000,15 +11579,19 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | x: qvector< xreflist_entry_t > const & + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12018,36 +11601,42 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: xreflist_entry_t const & + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: xreflist_entry_t const & + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -12060,78 +11649,85 @@ class xreflist_t(builtins.object) | | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator | + | @param it: qvector< xreflist_entry_t >::iterator | | erase(self, first, last) -> xreflist_entry_t - | first: qvector< xreflist_entry_t >::iterator - | last: qvector< xreflist_entry_t >::iterator + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) -> 'xreflist_entry_t *' | extract(self) -> xreflist_entry_t | | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & | - | - | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: xreflist_entry_t * - | len: size_t + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator - | x: xreflist_entry_t const & + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: xreflist_entry_t const & | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< xreflist_entry_t > & + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -12153,155 +11749,144 @@ class xreflist_t(builtins.object) | | __hash__ = None -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) -> 'bool' - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - add_func_ex(pfn) -> bool - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) - @param pfn (C++: func_t *) - @param reg (C++: int) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) -> 'bool' - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - append_func_tail(pfn, ea1, ea2) -> bool - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) -> 'int' + apply_idasgn_to(signame, ea, is_startup) -> int Apply a signature file to the specified address. - apply_idasgn_to(signame, ea, is_startup) -> int - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) -> 'bool' + apply_startup_sig(ea, startup) -> bool Apply a startup signature file to the specified address. - apply_startup_sig(ea, startup) -> bool - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) -> 'asize_t' - Calculate function size. This function takes into account all - fragments of the function. - calc_func_size(pfn) -> asize_t - @param pfn: ptr to function structure (C++: func_t *) + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) -> 'int' + calc_idasgn_state(n) -> int Get state of a signature in the list of planned signatures - calc_idasgn_state(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t Calculate target of a thunk function. - calc_thunk_func_target(pfn) -> ea_t - @param pfn: pointer to function (may not be nullptr) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) -> 'int' + del_idasgn(n) -> int Remove signature from the list of planned signatures. - del_idasgn(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED Help on class dyn_ea_array in module ida_funcs: @@ -12312,12 +11897,14 @@ class dyn_ea_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_ea_array - | _data: unsigned-ea-like-numeric-type *↗ - | _count: size_t + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12329,8 +11916,9 @@ class dyn_ea_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_dyn_ea_array(...) | delete_dyn_ea_array(self) @@ -12345,10 +11933,10 @@ class dyn_ea_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_ea_array_count_get(self) -> size_t + | count | | data - | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | data | | thisown | The membership flag @@ -12362,12 +11950,14 @@ class dyn_range_array(builtins.object) | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_range_array - | _data: range_t * - | _count: size_t + | + | @param _data: range_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12379,8 +11969,9 @@ class dyn_range_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_dyn_range_array(...) | delete_dyn_range_array(self) @@ -12395,10 +11986,10 @@ class dyn_range_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_range_array_count_get(self) -> size_t + | count | | data - | dyn_range_array_data_get(self) -> range_t + | data | | thisown | The membership flag @@ -12412,12 +12003,14 @@ class dyn_regarg_array(builtins.object) | | __getitem__(self, *args) -> 'regarg_t const &' | __getitem__(self, i) -> regarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regarg_array - | _data: regarg_t * - | _count: size_t + | + | @param _data: regarg_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12429,8 +12022,9 @@ class dyn_regarg_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regarg_t const & + | + | @param i: size_t + | @param v: regarg_t const & | | __swig_destroy__ = delete_dyn_regarg_array(...) | delete_dyn_regarg_array(self) @@ -12445,10 +12039,10 @@ class dyn_regarg_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_regarg_array_count_get(self) -> size_t + | count | | data - | dyn_regarg_array_data_get(self) -> regarg_t + | data | | thisown | The membership flag @@ -12462,12 +12056,14 @@ class dyn_regvar_array(builtins.object) | | __getitem__(self, *args) -> 'regvar_t const &' | __getitem__(self, i) -> regvar_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regvar_array - | _data: regvar_t * - | _count: size_t + | + | @param _data: regvar_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12479,8 +12075,9 @@ class dyn_regvar_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regvar_t const & + | + | @param i: size_t + | @param v: regvar_t const & | | __swig_destroy__ = delete_dyn_regvar_array(...) | delete_dyn_regvar_array(self) @@ -12495,10 +12092,10 @@ class dyn_regvar_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_regvar_array_count_get(self) -> size_t + | count | | data - | dyn_regvar_array_data_get(self) -> regvar_t * + | data | | thisown | The membership flag @@ -12512,12 +12109,14 @@ class dyn_stkpnt_array(builtins.object) | | __getitem__(self, *args) -> 'stkpnt_t const &' | __getitem__(self, i) -> stkpnt_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_stkpnt_array - | _data: stkpnt_t * - | _count: size_t + | + | @param _data: stkpnt_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12529,8 +12128,9 @@ class dyn_stkpnt_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: stkpnt_t const & + | + | @param i: size_t + | @param v: stkpnt_t const & | | __swig_destroy__ = delete_dyn_stkpnt_array(...) | delete_dyn_stkpnt_array(self) @@ -12545,10 +12145,10 @@ class dyn_stkpnt_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_stkpnt_array_count_get(self) -> size_t + | count | | data - | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | data | | thisown | The membership flag @@ -12556,84 +12156,51 @@ class dyn_stkpnt_array(builtins.object) Help on function f_any in module ida_funcs: f_any(*args) -> 'bool' + f_any(arg1, arg2) -> bool Helper function to accept any address. - f_any(arg1, arg2) -> bool - arg1: flags_t - arg2: void * + @param arg1: flags_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) -> 'int' - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - find_func_bounds(nfn, flags) -> int - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes Help on function free_regarg in module ida_funcs: free_regarg(*args) -> 'void' free_regarg(v) - @param v (C++: struct regarg_t *) + + @param v: regarg_t * Help on function func_contains in module ida_funcs: func_contains(*args) -> 'bool' + func_contains(pfn, ea) -> bool Does the given function contain the given address? - func_contains(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) -> 'bool' - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - func_does_return(callee) -> bool - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) -> 'bool' - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - fii: func_item_iterator_t * - visited: eavec_t * - p_farref: bool * - out: insn_t * - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) -> 'bool' - func_item_iterator_decode_prev_insn(fii, out) -> bool - fii: func_item_iterator_t * - out: insn_t * - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) -> 'bool' - func_item_iterator_next(fii, testf, ud) -> bool - fii: func_item_iterator_t * - testf: testf_t * - ud: void * - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) -> 'bool' - func_item_iterator_prev(fii, testf, ud) -> bool - fii: func_item_iterator_t * - testf: testf_t * - ud: void * + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -12644,38 +12211,57 @@ class func_item_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | pfn: func_t * - | _ea: ea_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) -> 'bool' - | __next__(self, func, ud) -> bool - | func: testf_t * - | ud: void * + | __next__(self, func) -> bool + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_item_iterator_t(...) | delete_func_item_iterator_t(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) -> 'range_t const &' | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) -> 'ea_t' | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool - | @param visited (C++: eavec_t *) - | @param p_farref (C++: bool *) - | @param out (C++: insn_t *) + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool - | @param out (C++: insn_t *) + | + | @param out: insn_t * | | first(self, *args) -> 'bool' | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) -> 'bool' | last(self) -> bool | @@ -12696,10 +12282,13 @@ class func_item_iterator_t(builtins.object) | next_not_tail(self, *args) -> 'bool' | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) -> 'bool' - | prev(self, func, ud) -> bool - | @param func (C++: testf_t *) - | @param ud (C++: void *) + | prev(self, func) -> bool + | + | @param func: testf_t * | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -12717,19 +12306,28 @@ class func_item_iterator_t(builtins.object) | prev_not_tail(self) -> bool | | set(self, *args) -> 'bool' - | Set a function range. if pfn == nullptr then a segment range will be - | set. - | | set(self, pfn, _ea=BADADDR) -> bool - | @param pfn (C++: func_t *) - | @param _ea (C++: ea_t) + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool | Set an arbitrary range. | - | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12747,8 +12345,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool - fpi: func_parent_iterator_t * - pfn: func_t * + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -12759,7 +12358,12 @@ class func_parent_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | _fnt: func_t * + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12785,11 +12389,13 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12832,56 +12438,79 @@ class func_t(ida_range.range_t) | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t - | start: ea_t - | end: ea_t - | f: flags_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_t(...) | delete_func_t(self) | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | | analyzed_sp(self, *args) -> 'bool' + | analyzed_sp(self) -> bool | Has SP-analysis been performed? | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() + | | does_return(self, *args) -> 'bool' + | does_return(self) -> bool | Does function return? | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() + | | is_far(self, *args) -> 'bool' + | is_far(self) -> bool | Is a far function? | | need_prolog_analysis(self, *args) -> 'bool' + | need_prolog_analysis(self) -> bool | Needs prolog analysis? | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() + | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points | __get_points__(self) -> dyn_stkpnt_array @@ -12890,22 +12519,22 @@ class func_t(ida_range.range_t) | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails | __get_tails__(self) -> dyn_range_array @@ -12918,66 +12547,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -12991,12 +12626,12 @@ class func_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -13007,22 +12642,25 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) -> 'func_t *' func_t__from_ptrval__(ptrval) -> func_t - ptrval: size_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) -> 'bool' func_tail_iterator_set(fti, pfn, ea) -> bool - fti: func_tail_iterator_t * - pfn: func_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) -> 'bool' func_tail_iterator_set_ea(fti, ea) -> bool - fti: func_tail_iterator_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -13033,8 +12671,13 @@ class func_tail_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | _pfn: func_t * - | ea: ea_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -13063,17 +12706,20 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool - | @param _pfn (C++: func_t *) - | @param ea (C++: ea_t) + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13090,140 +12736,145 @@ class func_tail_iterator_t(builtins.object) Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) -> 'int' + get_current_idasgn() -> int Get number of the the current signature. + + @return: 0..n-1 Help on function get_fchunk in module ida_funcs: get_fchunk(*args) -> 'func_t *' + get_fchunk(ea) -> func_t Get pointer to function chunk structure by address. - get_fchunk(ea) -> func_t - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) -> 'int' - Get ordinal number of a function chunk in the global list of function - chunks. - get_fchunk_num(ea) -> int - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) -> 'size_t' + get_fchunk_qty() -> size_t Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) -> 'func_t *' + get_func(ea) -> func_t Get pointer to function structure by address. - get_func(ea) -> func_t - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) -> 'int' + get_func_bitness(pfn) -> int Get function bitness (which is equal to the function segment bitness). pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - get_func_bitness(pfn) -> int - @param pfn (C++: const func_t *) - @retval: 0 - 16 - @retval: 1 - 32 - @retval: 2 - 64 + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) -> 'int' + get_func_bits(pfn) -> int Get number of bits in the function addressing. - get_func_bits(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) -> 'int' + get_func_bytes(pfn) -> int Get number of bytes in the function addressing. - get_func_bytes(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) -> 'int' - Get the containing tail chunk of 'ea'. - get_func_chunknum(pfn, ea) -> int - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - @retval: -1 - means 'does not contain ea' - @retval: 0 - means the 'pfn' itself contains ea - @retval: >0 - the number of the containing function tail chunk + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) -> 'qstring *' + get_func_cmt(pfn, repeatable) -> str Get function comment. - get_func_cmt(pfn, repeatable) -> str - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) -> 'qstring *' + get_func_name(ea) -> str Get function name. - get_func_name(ea) -> str - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + @param ea: (C++: ea_t) any address in the function + @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) -> 'int' + get_func_num(ea) -> int Get ordinal number of a function. - get_func_num(ea) -> int - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) -> 'size_t' + get_func_qty() -> size_t Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) -> 'ea_t' + get_func_ranges(ranges, pfn) -> ea_t Get function ranges. - get_func_ranges(ranges, pfn) -> ea_t - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) -> 'PyObject *' - get_idasgn_desc(n) -> PyObject * + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -13235,7 +12886,7 @@ get_idasgn_desc(*args) -> 'PyObject *' Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) -> 'PyObject *' - get_idasgn_desc_with_matches(n) -> PyObject * + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -13245,140 +12896,141 @@ get_idasgn_desc_with_matches(*args) -> 'PyObject *' Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) -> 'int' - Get number of signatures in the list of planned and applied - signatures. + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) -> 'qstring *' + get_idasgn_title(name) -> str Get full description of the signature by its short name. - get_idasgn_title(name) -> str - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) -> 'func_t *' + get_next_fchunk(ea) -> func_t Get pointer to the next function chunk in the global list. - get_next_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if next function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) -> 'func_t *' + get_next_func(ea) -> func_t Get pointer to the next function. - get_next_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) -> 'ea_t' get_next_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) -> 'func_t *' + get_prev_fchunk(ea) -> func_t Get pointer to the previous function chunk in the global list. - get_prev_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) -> 'func_t *' + get_prev_func(ea) -> func_t Get pointer to the previous function. - get_prev_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) -> 'ea_t' get_prev_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) -> 'func_t *' + getn_fchunk(n) -> func_t Get pointer to function chunk structure by number. - getn_fchunk(n) -> func_t - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) -> 'func_t *' + getn_func(n) -> func_t Get pointer to function structure by number. - getn_func(n) -> func_t - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) -> 'bool' - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - is_finally_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) -> 'bool' + is_func_entry(pfn) -> bool Does function describe a function entry chunk? - is_func_entry(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) -> 'bool' + is_func_locked(pfn) -> bool Is the function pointer locked? - is_func_locked(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) -> 'bool' + is_func_tail(pfn) -> bool Does function describe a function tail chunk? - is_func_tail(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) -> 'bool' + is_same_func(ea1, ea2) -> bool Do two addresses belong to the same function? - is_same_func(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) -> 'bool' + is_visible_func(pfn) -> bool Is the function visible (not hidden)? - is_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -13389,7 +13041,8 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func - | _pfn: func_t const * + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -13411,55 +13064,52 @@ class lock_func(builtins.object) Help on function lock_func_range in module ida_funcs: lock_func_range(*args) -> 'void' - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_func_range(pfn, lock) - @param pfn (C++: const func_t *) - @param lock (C++: bool) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) -> 'void' - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) -> 'bool' - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - reanalyze_noret_flag(ea) -> bool - @param ea (C++: ea_t) + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -13470,7 +13120,9 @@ class regarg_t(builtins.object) | | __init__(self, *args) | __init__(self) -> regarg_t - | r: regarg_t const & + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | @@ -13479,7 +13131,8 @@ class regarg_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: regarg_t &) + | + | @param r: regarg_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13491,331 +13144,129 @@ class regarg_t(builtins.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * + | type Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) -> 'bool' - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - remove_func_tail(pfn, tail_ea) -> bool - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) + @param tail_ea: (C++: ea_t) Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) -> 'bool' + set_func_cmt(pfn, cmt, repeatable) -> bool Set function comment. This function works with function chunks too. - set_func_cmt(pfn, cmt, repeatable) -> bool - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) -> 'int' - Give a meaningful name to function if it consists of only 'jump' - instruction. - set_func_name_if_jumpfunc(pfn, oldname) -> int - @param pfn: pointer to function (may be nullptr) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass nullptr. (C++: const char - *) - @return: success + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) -> 'int' + set_func_start(ea, newstart) -> int Move function chunk start address. - set_func_start(ea, newstart) -> int - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) -> 'bool' - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - set_noret_insn(insn_ea, noret) -> bool - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) -> 'bool' - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - set_tail_owner(fnt, func_start) -> bool - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + Set a function as the possessing function of a function tail. The function + should already refer to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) + @param func_start: (C++: ea_t) Help on function set_visible_func in module ida_funcs: set_visible_func(*args) -> 'void' + set_visible_func(pfn, visible) Set visibility of function. - set_visible_func(pfn, visible) - @param pfn (C++: func_t *) - @param visible (C++: bool) + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) -> 'int' - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - try_to_add_libfunc(ea) -> int - @param ea: any address in the program (C++: ea_t) - @return: Library function codes + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) -> 'bool' - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - update_func(pfn) -> bool - @param pfn: ptr to function structure (C++: func_t *) - @return: success + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(builtins.object) @@ -13898,7 +13349,8 @@ class cancellable_graph_t(gdl_graph_t) | | __init__(self, *args) | __init__(self) -> cancellable_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -13909,7 +13361,7 @@ class cancellable_graph_t(gdl_graph_t) | Data descriptors defined here: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | thisown | The membership flag @@ -13922,9 +13374,10 @@ class cancellable_graph_t(gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -13937,7 +13390,8 @@ class cancellable_graph_t(gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -13947,65 +13401,77 @@ class cancellable_graph_t(gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14019,13 +13485,14 @@ class cancellable_graph_t(gdl_graph_t) Help on function display_gdl in module ida_gdl: display_gdl(*args) -> 'int' - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - display_gdl(fname) -> int - @param fname (C++: const char *) - @return: error code from os, 0 if ok + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok Help on class gdl_graph_t in module ida_gdl: @@ -14038,7 +13505,8 @@ class gdl_graph_t(builtins.object) | | __init__(self, *args) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14050,9 +13518,10 @@ class gdl_graph_t(builtins.object) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -14065,7 +13534,8 @@ class gdl_graph_t(builtins.object) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -14075,65 +13545,77 @@ class gdl_graph_t(builtins.object) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14150,84 +13632,81 @@ class gdl_graph_t(builtins.object) Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) -> 'bool' + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool Build and display a complex xref graph. - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) -> 'bool' + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool Build and display a flow graph. - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) -> 'void' + gen_gdl(g, fname) Create GDL file for graph. - gen_gdl(g, fname) - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) -> 'bool' + gen_simple_call_chart(filename, wait, title, gflags) -> bool Build and display a simple function call graph. - gen_simple_call_chart(filename, wait, title, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) -> 'bool' + is_noret_block(btype) -> bool Does this block never return? - is_noret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) -> 'bool' + is_ret_block(btype) -> bool Does this block return? - is_ret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -14238,16 +13717,19 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator - | _g: gdl_graph_t const * - | n: int + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -14305,66 +13787,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -14378,12 +13866,12 @@ class qbasic_block_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -14405,15 +13893,18 @@ class qflow_chart_t(cancellable_graph_t) | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t - | n: int + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | _title: char const * - | _pfn: func_t * - | _ea1: ea_t - | _ea2: ea_t - | _flags: int + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -14422,59 +13913,69 @@ class qflow_chart_t(cancellable_graph_t) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) - | @param _title (C++: const char *) - | @param _pfn (C++: func_t *) - | @param _ea1 (C++: ea_t) - | @param _ea2 (C++: ea_t) - | @param _flags (C++: int) | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | create(self, _title, ranges, _flags) - | @param _title (C++: const char *) - | ranges: rangevec_t const & - | @param _flags (C++: int) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -14484,29 +13985,30 @@ class qflow_chart_t(cancellable_graph_t) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bounds - | qflow_chart_t_bounds_get(self) -> range_t + | bounds | | flags - | qflow_chart_t_flags_get(self) -> int + | flags | | nproper - | qflow_chart_t_nproper_get(self) -> int + | nproper | | pfn - | qflow_chart_t_pfn_get(self) -> func_t * + | pfn | | thisown | The membership flag | | title - | qflow_chart_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from cancellable_graph_t: @@ -14517,7 +14019,7 @@ class qflow_chart_t(cancellable_graph_t) | Data descriptors inherited from cancellable_graph_t: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | ---------------------------------------------------------------------- | Methods inherited from gdl_graph_t: @@ -14527,9 +14029,10 @@ class qflow_chart_t(cancellable_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -14542,7 +14045,8 @@ class qflow_chart_t(cancellable_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -14552,35 +14056,41 @@ class qflow_chart_t(cancellable_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14591,101 +14101,10 @@ class qflow_chart_t(cancellable_graph_t) | __weakref__ | list of weak references to the object (if defined) -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CALL_ENDS -""" -call instructions terminate basic blocks -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_NOPREDS -""" -do not compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -14851,81 +14270,81 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -14942,8 +14361,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -14952,10 +14373,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -14978,20 +14399,24 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | a: double - | b: double + | __init__(self, a, b) -> TPointDouble | + | @param a: double + | @param b: double | | __init__(self, r) -> TPointDouble - | r: point_t const & + | + | @param r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -15000,14 +14425,16 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15022,10 +14449,10 @@ class TPointDouble(builtins.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15048,7 +14475,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15057,52 +14485,57 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | create_circle_layout(self, *args) -> 'bool' | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) -> 'bool' | create_tree_layout(self) -> bool | - | get_edge(self, *args) -> 'edge_info_t' + | get_edge(self, *args) -> 'edge_info_t *' | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) -> 'ssize_t' | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) -> 'rect_t' | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) -> 'void' | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | thisown | The membership flag | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -15112,9 +14545,10 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -15127,7 +14561,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -15137,65 +14572,77 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -15209,88 +14656,86 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) Help on function calc_dist in module ida_graph: calc_dist(*args) -> 'double' + calc_dist(p, q) -> double Calculate distance between p and q. - calc_dist(p, q) -> double - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) -> 'void' + clr_node_info(gid, node, flags) Clear node info for the given node. - clr_node_info(gid, node, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) -> 'mutable_graph_t *' - Create a graph for the function that contains 'ea'. - create_disasm_graph(ea) -> mutable_graph_t - @param ea (C++: ea_t) + Create a graph using an arbitrary set of ranges. + @param ea: ea_t create_disasm_graph(ranges) -> mutable_graph_t - ranges: rangevec_t const & + + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) -> 'graph_viewer_t *' + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * Create a custom graph viewer. - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) + @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) -> 'mutable_graph_t *' + create_mutable_graph(id) -> mutable_graph_t Create a new empty graph with given id. - create_mutable_graph(id) -> mutable_graph_t - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) -> 'user_graph_place_t *' - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - create_user_graph_place(node, lnnum) -> user_graph_place_t - @param node (C++: int) - @param lnnum (C++: int) + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) -> 'void' - Delete the 'node_info_t' for the given node. - del_node_info(gid, node) - @param gid (C++: graph_id_t) - @param node (C++: int) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) -> 'void' - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - delete_mutable_graph(g) - @param g (C++: mutable_graph_t *) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -15320,22 +14765,22 @@ class edge_info_t(builtins.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width Help on class edge_infos_wrapper_t in module ida_graph: @@ -15362,7 +14807,7 @@ class edge_infos_wrapper_t(builtins.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -15376,20 +14821,24 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | r: edge_layout_point_t const & + | __init__(self, r) -> edge_layout_point_t | + | @param r: edge_layout_point_t const & | | __init__(self, _e, _pidx) -> edge_layout_point_t - | _e: edge_t const & - | _pidx: int + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -15398,7 +14847,8 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | @param r (C++: const edge_layout_point_t &) + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15410,10 +14860,10 @@ class edge_layout_point_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -15435,7 +14885,8 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: edge_segment_t const & + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -15458,19 +14909,19 @@ class edge_segment_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 Help on class edge_t in module ida_graph: @@ -15481,20 +14932,25 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | x: int - | y: int + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -15511,10 +14967,10 @@ class edge_t(builtins.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -15527,29 +14983,29 @@ class edge_t(builtins.object) Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) -> 'graph_viewer_t *' + get_graph_viewer(parent) -> graph_viewer_t * Get custom graph viewer for given form. - get_graph_viewer(parent) -> graph_viewer_t * - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) -> 'bool' + get_node_info(out, gid, node) -> bool Get node info. - get_node_info(out, gid, node) -> bool - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) -> 'mutable_graph_t *' + get_viewer_graph(gv) -> mutable_graph_t Get graph object for given custom graph viewer. - get_viewer_graph(gv) -> mutable_graph_t - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -15582,25 +15038,25 @@ class graph_item_t(builtins.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type Help on class graph_node_visitor_t in module ida_graph: @@ -15613,7 +15069,8 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15621,32 +15078,33 @@ class graph_node_visitor_t(builtins.object) | delete_graph_node_visitor_t(self) | | is_forbidden_edge(self, *args) -> 'bool' + | is_forbidden_edge(self, arg0, arg1) -> bool | Should the edge between 'n' and 'm' be ignored? | - | is_forbidden_edge(self, arg0, arg1) -> bool - | arg0: int - | arg1: int + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) -> 'bool' + | is_visited(self, n) -> bool | Have we already visited the given node? | - | is_visited(self, n) -> bool - | @param n (C++: int) + | @param n: (C++: int) | | reinit(self, *args) -> 'void' + | reinit(self) | Reset visited nodes. | | set_visited(self, *args) -> 'void' + | set_visited(self, n) | Mark node as visited. | - | set_visited(self, n) - | @param n (C++: int) + | @param n: (C++: int) | | visit_node(self, *args) -> 'int' + | visit_node(self, arg0) -> int | Implements action to take when a node is visited. | - | visit_node(self, arg0) -> int - | arg0: int + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15671,7 +15129,8 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15680,11 +15139,13 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15696,10 +15157,10 @@ class graph_path_visitor_t(builtins.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -15715,7 +15176,8 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15724,13 +15186,15 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int - | arg2: edge_t - | arg3: edge_info_t * + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int - | arg2: int - | arg3: rect_t & + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15769,10 +15233,10 @@ class group_crinfo_t(builtins.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -15786,20 +15250,24 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | y0: int - | y1: int + | __init__(self, y0, y1) -> interval_t | + | @param y0: int + | @param y1: int | | __init__(self, s) -> interval_t - | s: edge_segment_t const & + | + | @param s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -15808,25 +15276,29 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool - | @param x (C++: int) + | + | @param x: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | move_by(self, *args) -> 'void' | move_by(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15841,10 +15313,10 @@ class interval_t(builtins.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15866,7 +15338,8 @@ class mutable_graph_t(abstract_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15875,266 +15348,317 @@ class mutable_graph_t(abstract_graph_t) | | add_edge(self, *args) -> 'bool' | add_edge(self, i, j, ei) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param ei (C++: const edge_info_t *) + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * | | add_node(self, *args) -> 'int' + | add_node(self, r) -> int | Add a node, possibly with a specific geometry | - | add_node(self, r) -> int - | @param r: the node geometry (can be nullptr) (C++: const rect_t *) - | @return: the new node + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node | | calc_group_ea(self, *args) -> 'ea_t' | calc_group_ea(self, arg2) -> ea_t - | arg2: intvec_t const & + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' + | change_group_visibility(self, group, expand) -> bool | Expand/collapse a group node | - | change_group_visibility(self, group, expand) -> bool - | @param group: the group node (C++: int) - | @param expand: whether to expand or collapse (C++: bool) - | @return: success + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) -> 'bool' | create_digraph_layout(self) -> bool | | create_group(self, *args) -> 'int' + | create_group(self, nodes) -> int | Create a new group node, that will contain all the nodes in 'nodes'. | - | create_group(self, nodes) -> int - | @param nodes: the nodes that will be part of the group (C++: const - | intvec_t &) - | @return: the group node, or -1 in case of error + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | | del_edge(self, *args) -> 'bool' | del_edge(self, i, j) -> bool - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t | Delete a node | - | del_node(self, n) -> ssize_t - | @param n: the node to delete (C++: int) - | @return: the number of deleted edges + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges | | delete_group(self, *args) -> 'bool' - | Delete a group node.This deletes the group node only; it does not - | delete nodes that are part of the group. - | | delete_group(self, group) -> bool - | @param group: the group node (C++: int) - | @return: success + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) -> 'bool' + | exists(self, node) -> bool | Is the node visible? | - | exists(self, node) -> bool - | @param node: the node number (C++: int) - | @return: success + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) -> 'bool' | get_custom_layout(self) -> bool | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int - | @param group (C++: int) + | + | @param group: int | | get_graph_groups(self, *args) -> 'bool' | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) -> 'int' | get_next_subgraph_node(self, group, current) -> int - | @param group (C++: int) - | @param current (C++: int) + | + | @param group: int + | @param current: int | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | get_node_representative(self, *args) -> 'int' - | Get the node that currently visually represents 'node'. This will find - | the "closest" parent group node that's visible, by attempting to walk - | up the group nodes that contain 'node', and will stop when it finds a - | node that is currently visible.See also get_group_node() - | | get_node_representative(self, node) -> int - | @param node: the node (C++: int) - | @return: the node that represents 'node', or 'node' if it's not part - | of any group + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' - | Is the node currently visible?An invisible node is a node that's part - | of a group that's currently collapsed. - | | is_visible_node(self, node) -> bool - | @param node: the node (C++: int) - | @return: success + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) -> 'int' - | Get the number of visible nodes (the list can be retrieved using - | 'gdl.hpp' 's 'node_iterator' )See also size() + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) -> 'int' | npred(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | pred(self, *args) -> 'int' | pred(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success | | refresh(self, *args) -> 'bool' - | Refresh the graphA graph needs refreshing when it's "backing data". - | E.g., if the number (or contents) of the objects in the above example, - | change.Let's say the user's plugin ends up finding a 5th piece of - | scattered data. It should then add it to its internal list of known - | objects, and tell IDA that the graph needs to be refreshed, using - | 'refresh_viewer()' . This will cause IDA to:discard all its internal - | rendering information,call 'mutable_graph_t::refresh()' on the graph - | so that the user's plugin has a chance to "sync" the number of nodes & - | edges that this graph contains, to the information that the plugin has - | collected so farre-create internal rendering information, andrepaint - | the view + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success | | replace_edge(self, *args) -> 'bool' | replace_edge(self, i, j, x, y) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param x (C++: int) - | @param y (C++: int) + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) -> 'void' | reset(self) | | resize(self, *args) -> 'void' + | resize(self, n) | Resize the graph to 'n' nodes | - | resize(self, n) - | @param n: the new size (C++: int) + | @param n: (C++: int) the new size | | set_custom_layout(self, *args) -> 'void' | set_custom_layout(self) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) - | @param node (C++: int) + | + | @param node: int | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool - | @param e (C++: edge_t) - | @param ei (C++: const edge_info_t *) + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) - | @param node (C++: int) - | @param group (C++: int) + | + | @param node: int + | @param group: int | | set_nrect(self, *args) -> 'bool' | set_nrect(self, n, r) -> bool - | @param n (C++: int) - | @param r (C++: const rect_t &) + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) -> 'int' - | Get the total number of nodes (including group nodes, and including - | hidden nodes.)See also node_qty() + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) -> 'int' | succ(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * + | belongs | | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t + | edges | | gid - | mutable_graph_t_gid_get(self) -> uval_t + | gid | | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * + | node_flags | | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t + | nodes | | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t * + | org_preds | | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t * + | org_succs | | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t * + | preds | | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t * + | succs | | thisown | The membership flag @@ -16146,49 +15670,54 @@ class mutable_graph_t(abstract_graph_t) | | create_circle_layout(self, *args) -> 'bool' | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) -> 'bool' | create_tree_layout(self) -> bool | - | get_edge(self, *args) -> 'edge_info_t' + | get_edge(self, *args) -> 'edge_info_t *' | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) -> 'ssize_t' | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) -> 'rect_t' | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) -> 'void' | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors inherited from abstract_graph_t: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -16198,9 +15727,10 @@ class mutable_graph_t(abstract_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | end(self, *args) -> 'node_iterator' | end(self) -> node_iterator @@ -16216,41 +15746,49 @@ class mutable_graph_t(abstract_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -16277,23 +15815,28 @@ class node_info_t(builtins.object) | delete_node_info_t(self) | | get_flags_for_valid(self, *args) -> 'uint32' - | Get combination of 'Node info flags' describing which attributes are - | valid. + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) -> 'bool' - | Has valid 'bg_color' ? + | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) -> 'bool' - | Has valid 'ea' ? + | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) -> 'bool' - | Has valid 'flags' ? + | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) -> 'bool' - | Has valid 'frame_color' ? + | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) -> 'bool' - | Has non-empty 'text' ? + | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16305,19 +15848,19 @@ class node_info_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -16331,15 +15874,19 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | x: qvector< rect_t > const & + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16349,36 +15896,42 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: rect_t const & + | + | @param i: size_t + | @param v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: rect_t const & + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rect_t >::const_iterator' | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16391,78 +15944,85 @@ class node_layout_t(builtins.object) | | end(self, *args) -> 'qvector< rect_t >::const_iterator' | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t - | it: qvector< rect_t >::iterator | + | @param it: qvector< rect_t >::iterator | | erase(self, first, last) -> rect_t - | first: qvector< rect_t >::iterator - | last: qvector< rect_t >::iterator + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) -> 'rect_t *' | extract(self) -> rect_t | | find(self, *args) -> 'qvector< rect_t >::const_iterator' | find(self, x) -> rect_t - | x: rect_t const & | - | - | find(self, x) -> rect_t - | x: rect_t const & + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) - | x: rect_t const & + | + | @param x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: rect_t * - | len: size_t + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t - | it: qvector< rect_t >::iterator - | x: rect_t const & + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) - | x: rect_t const & + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: rect_t const & | + | @param _newsize: size_t + | @param x: rect_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< rect_t > & + | + | @param r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16504,24 +16064,29 @@ class node_ordering_t(builtins.object) | | clr(self, *args) -> 'bool' | clr(self, _node) -> bool - | @param _node (C++: int) + | + | @param _node: int | | node(self, *args) -> 'int' | node(self, _order) -> int - | @param _order (C++: size_t) + | + | @param _order: size_t | | order(self, *args) -> 'int' | order(self, _node) -> int - | @param _node (C++: int) + | + | @param _node: int | | resize(self, *args) -> 'void' | resize(self, n) - | @param n (C++: int) + | + | @param n: int | | set(self, *args) -> 'void' | set(self, _node, num) - | @param _node (C++: int) - | @param num (C++: int) + | + | @param _node: int + | @param num: int | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -16547,16 +16112,20 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | _x: int - | _y: int + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | @@ -16565,14 +16134,16 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16587,10 +16158,10 @@ class point_t(builtins.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16628,11 +16199,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16642,31 +16215,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16679,78 +16258,85 @@ class pointseq_t(pointvec_t) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16778,15 +16364,19 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | x: qvector< point_t > const & + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16796,36 +16386,42 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16838,78 +16434,85 @@ class pointvec_t(builtins.object) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16935,20 +16538,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) - self: PyObject * - nid: int + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -16959,23 +16565,27 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | l: int - | t: int - | r: int - | b: int + | __init__(self, l, t, r, b) -> rect_t | + | @param l: int + | @param t: int + | @param r: int + | @param b: int | | __init__(self, p0, p1) -> rect_t - | p0: point_t const & - | p1: point_t const & + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -16993,37 +16603,44 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) - | @param delta (C++: int) + | + | @param delta: int | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | make_union(self, *args) -> 'void' | make_union(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | move_by(self, *args) -> 'void' | move_by(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | move_to(self, *args) -> 'void' | move_to(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -17041,19 +16658,19 @@ class rect_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17063,10 +16680,10 @@ class rect_t(builtins.object) Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) -> 'void' + refresh_viewer(gv) Redraw the graph in the given view. - refresh_viewer(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -17096,16 +16713,16 @@ class row_info_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top Help on class screen_graph_selection_base_t in module ida_graph: @@ -17116,15 +16733,19 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | x: qvector< selection_item_t > const & + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17134,36 +16755,42 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | __swig_destroy__ = delete_screen_graph_selection_base_t(...) | delete_screen_graph_selection_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17176,78 +16803,85 @@ class screen_graph_selection_base_t(builtins.object) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17291,33 +16925,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) -> 'void' | add_node(self, node) - | @param node (C++: int) + | + | @param node: int | | add_point(self, *args) -> 'void' | add_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) -> 'void' | del_node(self, node) - | @param node (C++: int) + | + | @param node: int | | del_point(self, *args) -> 'void' | del_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) -> 'bool' | has(self, item) -> bool - | @param item (C++: const selection_item_t &) + | + | @param item: selection_item_t const & | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t - | @param look_for_nodes (C++: bool) + | + | @param look_for_nodes: bool | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -17327,7 +16968,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17340,11 +16982,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17354,31 +16998,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17391,74 +17041,80 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17486,28 +17142,33 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | n: int + | __init__(self, n) -> selection_item_t | + | @param n: int | | __init__(self, _elp) -> selection_item_t - | _elp: edge_layout_point_t & | + | @param _elp: edge_layout_point_t & | | __init__(self, e, idx) -> selection_item_t - | e: edge_t - | idx: int + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -17516,7 +17177,8 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | @param r (C++: const selection_item_t &) + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17528,13 +17190,13 @@ class selection_item_t(builtins.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17547,23 +17209,23 @@ class selection_item_t(builtins.object) Help on function set_node_info in module ida_graph: set_node_info(*args) -> 'void' + set_node_info(gid, node, ni, flags) Set node info. - set_node_info(gid, node, ni, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) -> 'void' + set_viewer_graph(gv, g) Set the underlying graph object for the given viewer. - set_viewer_graph(gv, g) - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -17590,7 +17252,7 @@ class user_graph_place_t(builtins.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17598,201 +17260,158 @@ class user_graph_place_t(builtins.object) Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) -> 'bool' - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - viewer_attach_menu_item(g, name) -> bool - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param name: (C++: const char *) action name + @param name: (C++: const char *) action name + @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) -> 'void' + viewer_center_on(gv, node) Center the graph view on the given node. - viewer_center_on(gv, node) - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) -> 'bool' - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around 'mutable_graph_t::create_group' that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - viewer_create_groups(gv, out_group_nodes, gi) -> bool - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) -> 'void' - Delete node info for node in given viewer (see 'del_node_info()' ) - viewer_del_node_info(gv, n) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) -> 'bool' - Wrapper around 'mutable_graph_t::delete_group' . This function - will:clone the current graphattempt deleting the groups in that new - graphif successful, animate to that new graph. - viewer_delete_groups(gv, groups, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) -> 'void' + viewer_fit_window(gv) Fit graph viewer to its parent form. - viewer_fit_window(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) -> 'int' + viewer_get_curnode(gv) -> int Get number of currently selected node (-1 if none) - viewer_get_curnode(gv) -> int - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) -> 'bool' - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - viewer_get_gli(out, gv, flags=0) -> bool - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) -> 'bool' - Get node info for node in given viewer (see 'get_node_info()' ) - viewer_get_node_info(gv, out, n) -> bool - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) -> 'bool' + viewer_get_selection(gv, sgs) -> bool Get currently selected items for graph viewer. - viewer_get_selection(gv, sgs) -> bool - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) -> 'void' - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - viewer_set_gli(gv, gli, flags=0) - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) -> 'bool' - Wrapper around 'mutable_graph_t::change_visibility' . This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) -> 'void' - Set node info for node in given viewer (see 'set_node_info()' ) - viewer_set_node_info(gv, n, ni, flags) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) -> 'int' - Set height of node title bars ( 'grcode_set_titlebar_height' ) - viewer_set_titlebar_height(gv, height) -> int - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" -'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" -'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" -'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" -'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" -'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(builtins.Exception) @@ -17879,266 +17498,256 @@ class Hexrays_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | - | build_callinfo(self, *args) -> 'int' + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | close_pseudocode(self, *args) -> 'int' + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) -> 'PyObject *' - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) -> 'int' - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) -> 'int' + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) -> 'int' - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) -> 'int' - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) -> 'int' + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) -> 'int' + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) -> 'int' + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) -> 'int' + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) -> 'int' + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) -> 'int' - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | right_click(self, *args) -> 'int' - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) -> 'int' - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) -> 'int' + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -18169,120 +17778,116 @@ class __cbhooks_t(Hexrays_Hooks) | | __init__(self, callback) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | create_hint(self, *args) - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | func_printed(self, *args) - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | interr(self, *args) + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | print_func(self, *args) + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | refresh_pseudocode(self, *args) - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | right_click(self, *args) - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | switch_pseudocode(self, *args) - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -18299,146 +17904,140 @@ class __cbhooks_t(Hexrays_Hooks) | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | - | build_callinfo(self, *args) -> 'int' + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) -> 'int' - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -18464,54 +18063,75 @@ Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: _kludge_force_declare_TPopupMenu(*args) -> 'void' _kludge_force_declare_TPopupMenu(arg1) - arg1: TPopupMenu const * + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) -> 'cexpr_t *' _ll_call_helper(rettype, args, format) -> cexpr_t - rettype: tinfo_t const & - args: carglist_t * - format: char const * + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) -> 'cexpr_t *' _ll_create_helper(standalone, type, format) -> cexpr_t - standalone: bool - type: tinfo_t const & - format: char const * + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) -> 'cexpr_t *' _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - e: cexpr_t * - ptrsize: int - is_flt: bool + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) -> 'cexpr_t *' _ll_lnot(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) -> 'cexpr_t *' _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - n: uint64 - func: cfunc_t * - ea: ea_t - opnum: int - sign: type_sign_t - size: int + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) -> 'cexpr_t *' _ll_make_ref(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -18526,27 +18146,28 @@ _map_as_dict(maptype, name, keytype, valuetype) Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) -> 'bool' + accepts_small_udts(op) -> bool Is the operator allowed on small structure or union? - accepts_small_udts(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) -> 'bool' + arglocs_overlap(loc1, w1, loc2, w2) -> bool Do two arglocs overlap? - arglocs_overlap(loc1, w1, loc2, w2) -> bool - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -18557,15 +18178,19 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | x: qvector< bitset_t > const & + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18575,36 +18200,42 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bitset_t const & + | + | @param i: size_t + | @param v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: bitset_t const & + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18617,78 +18248,85 @@ class array_of_bitsets(builtins.object) | | end(self, *args) -> 'qvector< bitset_t >::const_iterator' | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t - | it: qvector< bitset_t >::iterator | + | @param it: qvector< bitset_t >::iterator | | erase(self, first, last) -> bitset_t - | first: qvector< bitset_t >::iterator - | last: qvector< bitset_t >::iterator + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) -> 'bitset_t *' | extract(self) -> bitset_t | | find(self, *args) -> 'qvector< bitset_t >::const_iterator' | find(self, x) -> bitset_t - | x: bitset_t const & | - | - | find(self, x) -> bitset_t - | x: bitset_t const & + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) - | x: bitset_t const & + | + | @param x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bitset_t * - | len: size_t + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t - | it: qvector< bitset_t >::iterator - | x: bitset_t const & + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) - | x: bitset_t const & + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bitset_t const & | + | @param _newsize: size_t + | @param x: bitset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bitset_t > & + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18719,15 +18357,19 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | x: qvector< ivlset_t > const & + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18737,36 +18379,42 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ivlset_t const & + | + | @param i: size_t + | @param v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ivlset_t const & + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18779,78 +18427,85 @@ class array_of_ivlsets(builtins.object) | | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t - | it: qvector< ivlset_t >::iterator | + | @param it: qvector< ivlset_t >::iterator | | erase(self, first, last) -> ivlset_t - | first: qvector< ivlset_t >::iterator - | last: qvector< ivlset_t >::iterator + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) -> 'ivlset_t *' | extract(self) -> ivlset_t | | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' | find(self, x) -> ivlset_t - | x: ivlset_t const & | - | - | find(self, x) -> ivlset_t - | x: ivlset_t const & + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ivlset_t * - | len: size_t + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t - | it: qvector< ivlset_t >::iterator - | x: ivlset_t const & + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) - | x: ivlset_t const & + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ivlset_t const & | + | @param _newsize: size_t + | @param x: ivlset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ivlset_t > & + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18875,22 +18530,21 @@ class array_of_ivlsets(builtins.object) Help on function asgop in module ida_hexrays: asgop(*args) -> 'ctype_t' - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - asgop(cop) -> ctype_t - @param cop (C++: ctype_t) + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) -> 'ctype_t' - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - asgop_revert(cop) -> ctype_t - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -18901,8 +18555,9 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t - | n: int - | s: int + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -18919,10 +18574,10 @@ class bit_bound_t(builtins.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -18936,35 +18591,43 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | m: bitset_t const & + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -18973,16 +18636,17 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int @@ -18995,19 +18659,24 @@ class bitset_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -19020,77 +18689,91 @@ class bitset_t(builtins.object) | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19112,69 +18795,69 @@ class bitset_t(builtins.object) Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) -> 'block_chains_iterator_t' - Get iterator pointing to the beginning of 'block_chains_t' . - block_chains_begin(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) -> 'void' - Clear 'block_chains_t' . - block_chains_clear(set) - @param set (C++: block_chains_t *) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) -> 'block_chains_iterator_t' - Get iterator pointing to the end of 'block_chains_t' . - block_chains_end(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) -> 'void' - Erase current element from 'block_chains_t' . - block_chains_erase(set, p) - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) -> 'block_chains_iterator_t' - Find the specified key in set 'block_chains_t' . - block_chains_find(set, val) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) -> 'void' - Delete 'block_chains_t' instance. - block_chains_free(set) - @param set (C++: block_chains_t *) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) -> 'chain_t &' + block_chains_get(p) -> chain_t Get reference to the current set value. - block_chains_get(p) -> chain_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) -> 'block_chains_iterator_t' - Insert new ( 'chain_t' ) into set 'block_chains_t' . - block_chains_insert(set, val) -> block_chains_iterator_t - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -19185,14 +18868,16 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19212,7 +18897,7 @@ class block_chains_iterator_t(builtins.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19222,31 +18907,32 @@ class block_chains_iterator_t(builtins.object) Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) -> 'block_chains_t *' - Create a new 'block_chains_t' instance. + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) -> 'block_chains_iterator_t' + block_chains_next(p) -> block_chains_iterator_t Move to the next element. - block_chains_next(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) -> 'block_chains_iterator_t' + block_chains_prev(p) -> block_chains_iterator_t Move to the previous element. - block_chains_prev(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) -> 'size_t' - Get size of 'block_chains_t' . - block_chains_size(set) -> size_t - @param set (C++: block_chains_t *) + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -19270,50 +18956,26 @@ class block_chains_t(builtins.object) | dstr(self) -> char const * | | get_chain(self, *args) -> 'chain_t *' - | Get chain for the specified value offset. - | | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) - | - | - | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) | + | @param k: voff_t const & + | @param width: int | | get_chain(self, ch) -> chain_t - | ch: chain_t const & | - | - | get_chain(self, ch) -> chain_t - | ch: chain_t const & + | @param ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' - | Get chain for the specified register - | | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) | - | - | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) -> 'chain_t *' - | Get chain for the specified stack offset - | | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) | - | - | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19336,11 +18998,14 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | x: qvector< block_chains_t > const & + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -19352,22 +19017,23 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | __swig_destroy__ = delete_block_chains_vec_t(...) | delete_block_chains_vec_t(self) | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -19380,16 +19046,16 @@ class block_chains_vec_t(builtins.object) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -19399,47 +19065,56 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< block_chains_t > & + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -19459,70 +19134,70 @@ class block_chains_vec_t(builtins.object) Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) -> 'boundaries_iterator_t' + boundaries_begin(map) -> boundaries_iterator_t Get iterator pointing to the beginning of boundaries_t. - boundaries_begin(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' + boundaries_clear(map) Clear boundaries_t. - boundaries_clear(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) -> 'boundaries_iterator_t' + boundaries_end(map) -> boundaries_iterator_t Get iterator pointing to the end of boundaries_t. - boundaries_end(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) -> 'void' + boundaries_erase(map, p) Erase current element from boundaries_t. - boundaries_erase(map, p) - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) -> 'boundaries_iterator_t' + boundaries_find(map, key) -> boundaries_iterator_t Find the specified key in boundaries_t. - boundaries_find(map, key) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) -> 'cinsn_t *const &' + boundaries_first(p) -> cinsn_t Get reference to the current map key. - boundaries_first(p) -> cinsn_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) -> 'void' + boundaries_free(map) Delete boundaries_t instance. - boundaries_free(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) -> 'boundaries_iterator_t' - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - boundaries_insert(map, key, val) -> boundaries_iterator_t - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -19533,14 +19208,16 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19560,7 +19237,7 @@ class boundaries_iterator_t(builtins.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19570,39 +19247,40 @@ class boundaries_iterator_t(builtins.object) Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) -> 'boundaries_t *' + boundaries_new() -> boundaries_t Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) -> 'boundaries_iterator_t' + boundaries_next(p) -> boundaries_iterator_t Move to the next element. - boundaries_next(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) -> 'boundaries_iterator_t' + boundaries_prev(p) -> boundaries_iterator_t Move to the previous element. - boundaries_prev(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) -> 'rangeset_t &' + boundaries_second(p) -> rangeset_t Get reference to the current map value. - boundaries_second(p) -> rangeset_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) -> 'size_t' + boundaries_size(map) -> size_t Get size of boundaries_t. - boundaries_size(map) -> size_t - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -19713,7 +19391,8 @@ class boundaries_t(builtins.object) | | at(self, *args) -> 'rangeset_t &' | at(self, _Keyval) -> rangeset_t - | _Keyval: cinsn_t *const & + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -19786,6 +19465,7 @@ class boundaries_t(builtins.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -19802,30 +19482,36 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -19834,20 +19520,22 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: carg_t const & + | + | @param r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) - | @param e (C++: cexpr_t *) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -19869,8 +19557,8 @@ class carg_t(cexpr_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -19890,8 +19578,8 @@ class carg_t(cexpr_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -19907,194 +19595,238 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) -> 'bool' - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -20106,29 +19838,35 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' @@ -20138,63 +19876,62 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) -> 'uint64' - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -20202,7 +19939,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -20228,7 +19965,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -20260,6 +19997,8 @@ class carg_t(cexpr_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -20274,36 +20013,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -20318,19 +20058,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20357,32 +20097,40 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | ftype: tinfo_t const & - | fl: int + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -20391,16 +20139,17 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: carglist_t const & + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -20415,7 +20164,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20425,31 +20175,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -20462,78 +20220,85 @@ class carglist_t(qvector_carg_t) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20561,35 +20326,42 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t - | ea: ea_t | + | @param ea: ea_t | | __init__(self, r) -> casm_t - | r: casm_t const & + | + | @param r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -20598,7 +20370,8 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: casm_t const & + | + | @param r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -20619,7 +20392,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20629,24 +20403,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20670,70 +20453,81 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ | + | @param x: unsigned-ea-like-numeric-type const &↗ | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned-ea-like-numeric-type *↗ - | len: size_t + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned-ea-like-numeric-type const &↗ | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -20749,42 +20543,48 @@ class casm_t(ida_pro.eavec_t)↗ Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | builtins.object | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -20796,7 +20596,8 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cblock_t const & + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20810,11 +20611,12 @@ class cblock_t(qlist_cinsn_t) | __hash__ = None | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | | __getitem__(self, *args) -> 'cinsn_t const &' | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20824,16 +20626,17 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & + | + | @param i: size_t + | @param v: cinsn_t const & | | at(self, index) | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) -> 'void' | clear(self) @@ -20841,21 +20644,13 @@ class cblock_t(qlist_cinsn_t) | empty(self, *args) -> 'bool' | empty(self) -> bool | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | | erase(self, p) - | p: qlist_cinsn_t_iterator + | + | @param p: cinsn_list_t_iterator | | find(self, item) | @@ -20864,24 +20659,16 @@ class cblock_t(qlist_cinsn_t) | | index(self, item) | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | + | insert(self, *args) -> 'cinsn_list_t_iterator' | insert(self, i, v) - | i: size_t - | v: cinsn_t const & | + | @param i: size_t + | @param v: cinsn_t const & | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -20891,11 +20678,15 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t | | push_front(self, *args) -> 'void' | push_front(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -20903,7 +20694,8 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) -> 'bool' | remove(self, v) -> bool - | v: cinsn_t const & + | + | @param v: cinsn_t const & | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -20914,10 +20706,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) - | x: qlist< cinsn_t > & + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -20940,30 +20733,36 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -20972,14 +20771,16 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ccase_t const & + | + | @param r: ccase_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t | | value(self, *args) -> 'uint64 const &' | value(self, i) -> uint64 const & - | @param i (C++: int) + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20988,7 +20789,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -21033,137 +20834,175 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) -> 'bool' - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -21171,7 +21010,8 @@ class ccase_t(cinsn_t) | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -21223,6 +21063,8 @@ class ccase_t(cinsn_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -21237,36 +21079,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -21281,16 +21124,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21317,30 +21160,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -21349,7 +21198,8 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ccases_t const & + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21367,7 +21217,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21377,31 +21228,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -21414,78 +21273,85 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21508,11 +21374,12 @@ class cdg_insn_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self, mba_) -> cdg_insn_iterator_t - | mba_: mba_t const * | + | @param mba_: mba_t const * | | __init__(self, r) -> cdg_insn_iterator_t - | r: cdg_insn_iterator_t const & + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -21530,14 +21397,16 @@ class cdg_insn_iterator_t(builtins.object) | | next(self, *args) -> 'merror_t' | next(self, ins) -> merror_t - | @param ins (C++: insn_t *) + | + | @param ins: insn_t * | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) - | @param rng (C++: const range_t &) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21549,25 +21418,25 @@ class cdg_insn_iterator_t(builtins.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | | mba - | cdg_insn_iterator_t_mba_get(self) -> mba_t + | mba | | severed_branch - | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t + | severed_branch | | thisown | The membership flag @@ -21587,30 +21456,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -21619,7 +21494,8 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cdo_t const & + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21637,7 +21513,8 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21646,7 +21523,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -21658,7 +21535,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -21685,7 +21562,7 @@ class ceinsn_t(builtins.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -21709,49 +21586,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * + | __init__(self, cop, _x) -> cexpr_t | + | @param cop: enum ctype_t + | @param _x: cexpr_t * | | __init__(self, cop, _x, _y) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * | | __init__(self, cop, _x, _y, _z) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * - | _z: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * | | __init__(self, r) -> cexpr_t - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -21767,8 +21652,8 @@ class cexpr_t(citem_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -21788,8 +21673,8 @@ class cexpr_t(citem_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -21805,198 +21690,243 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) -> 'bool' - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -22008,29 +21938,35 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' @@ -22040,63 +21976,62 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) -> 'uint64' - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22104,7 +22039,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -22133,7 +22068,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -22167,6 +22102,8 @@ class cexpr_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -22181,36 +22118,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -22225,19 +22163,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -22265,30 +22203,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -22297,16 +22241,17 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cfor_t const & + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -22321,7 +22266,8 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22330,7 +22276,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22342,7 +22288,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -22361,8 +22307,9 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t - | f: cfunc_t * - | post: bool + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | @@ -22370,24 +22317,22 @@ class cfunc_parentee_t(ctree_parentee_t) | delete_cfunc_parentee_t(self) | | calc_rvalue_type(self, *args) -> 'bool' - | Calculate rvalue type. This function tries to determine the type of - | the specified item based on its context. For example, if the current - | expression is the right side of an assignment operator, the type of - | its left side will be returned. This function can be used to determine - | the 'best' type of the specified expression. - | | calc_rvalue_type(self, target, e) -> bool - | @param target: 'best' type of the expression will be returned here - | (C++: tinfo_t *) - | @param e: expression to determine the desired type (C++: const - | cexpr_t *) - | @return: false if failed + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -22395,113 +22340,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -22513,10 +22469,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -22537,189 +22493,208 @@ class cfunc_t(builtins.object) | delete_cfunc_t(self) | | build_c_tree(self, *args) -> 'void' - | Generate the function body. This function (re)generates the function - | body from the underlying microcode. + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) -> 'int' - | Delete all orphan comments. The 'save_user_cmts()' function must be - | called after this call. + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | @param item (C++: const citem_t *) - | @param px (C++: int *) - | @param py (C++: int *) | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | | find_item_coords(self, item) -> PyObject * - | @param item (C++: const citem_t *) + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t | Find the label. | - | find_label(self, label) -> citem_t - | @param label (C++: int) - | @return: pointer to the ctree item with the specified label number. + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool - | @param ci (C++: const ctree_item_t &) - | @param udm (C++: udt_type_data_t *) + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) -> 'eamap_t &' - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool | Get the function type. | - | get_func_type(self, type) -> bool - | @param type: variable where the function type is returned (C++: - | tinfo_t *) - | @return: false if failure + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) -> 'bool' - | Get ctree item for the specified cursor position. - | 'vdui_t::get_current_item()' - | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | @param line: line of decompilation text (element of sv ) (C++: const - | char *) - | @param x: x cursor coordinate in the line (C++: int) - | @param is_ctree_line: does the line belong to statement area? (if not, - | it is assumed to belong to the declaration area) - | (C++: bool) - | @param phead: ptr to the first item on the line (used to attach block - | comments). May be NULL (C++: ctree_item_t *) - | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t - | *) - | @param ptail: ptr to the last item on the line (used to attach - | indented comments). May be NULL (C++: ctree_item_t *) - | @return: false if failed to get the current item + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) -> 'strvec_t const &' - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t | Get stack offset delta. The local variable stack offsets retrieved by - | v.location.stkoff() should be adjusted before being used as stack - | frame offsets in IDA. + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * | Retrieve a user defined comment. | - | get_user_cmt(self, loc, rt) -> char const * - | @param loc: ctree location (C++: const treeloc_t &) - | @param rt: should already retrieved comments retrieved again? (C++: - | cmt_retrieval_type_t) - | @return: pointer to the comment string or NULL + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 | Retrieve citem iflags. | - | get_user_iflags(self, loc) -> int32 - | @param loc: citem locator (C++: const citem_locator_t &) - | @return: ctree item iflags bits or 0 + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool | Retrieve a user defined union field selection. | - | get_user_union_selection(self, ea, path) -> bool - | @param ea: address (C++: ea_t) - | @param path: out: path describing the union selection. (C++: intvec_t - | *) - | @return: pointer to the path or NULL + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool | Check if there are orphan comments. | | locked(self, *args) -> 'bool' | locked(self) -> bool | | print_dcl(self, *args) -> 'void' + | print_dcl(self) | Print function prototype. | | print_func(self, *args) -> 'void' + | print_func(self, vp) | Print function text. | - | print_func(self, vp) - | @param vp: printer helper class to receive the generated text. (C++: - | vc_printer_t &) + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) -> 'void' - | Refresh ctext after a ctree modification. This function informs the - | decompiler that ctree ( 'body' ) have been modified and ctext ( 'sv' ) - | does not correspond to it anymore. It also refreshes the pseudocode - | windows if there is any. + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) -> 'void' | release(self) | | remove_unused_labels(self, *args) -> 'void' - | Remove unused labels. This function check what labels are really used - | by the function and removes the unused ones. + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) | Save user-defined comments into the database. | | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) | Save user-defined iflags into the database. | | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) | Save user-defined labels into the database. | | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) | Save user-defined number formats into the database. | | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) -> 'void' - | Set a user defined comment. This function stores the specified comment - | in the 'cfunc_t' structure. The 'save_user_cmts()' function must be - | called after it. - | | set_user_cmt(self, loc, cmt) - | @param loc: ctree location (C++: const treeloc_t &) - | @param cmt: new comment. if empty or NULL, then an existing comment is - | deleted. (C++: const char *) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) | Set citem iflags. | - | set_user_iflags(self, loc, iflags) - | @param loc: citem locator (C++: const citem_locator_t &) - | @param iflags: new iflags (C++: int32) + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) -> 'void' - | Set a union field selection. The 'save_user_unions()' function must be - | called after calling this function. - | | set_user_union_selection(self, ea, path) - | @param ea: address (C++: ea_t) - | @param path: in: path describing the union selection. (C++: const - | intvec_t &) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) -> 'void' - | Verify the ctree. This function verifies the ctree. If the ctree is - | malformed, an internal error is generated. Use it to verify the ctree - | after your modifications. - | | verify(self, aul, even_without_debugger) - | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) - | @param even_without_debugger: if false and there is no debugger, the - | verification will be skipped (C++: bool) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22731,72 +22706,83 @@ class cfunc_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mba_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings Help on function cfunc_type in module ida_hexrays: @@ -22817,11 +22803,12 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t - | p: cfunc_t * | + | @param p: cfunc_t * | | __init__(self, r) -> cfuncptr_t - | r: qrefcnt_t< cfunc_t > const & + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -22844,22 +22831,25 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | item: citem_t const * - | px: int * - | py: int * | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | - | find_item_coords(self, item) -> PyObject * - | item: citem_t const * + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t - | label: int + | + | @param label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool - | ci: ctree_item_t const & - | udm: udt_type_data_t * + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -22869,16 +22859,18 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool - | type: tinfo_t * + | + | @param type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | line: char const * - | x: int - | is_ctree_line: bool - | phead: ctree_item_t * - | pitem: ctree_item_t * - | ptail: ctree_item_t * + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -22891,17 +22883,20 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * - | loc: treeloc_t const & - | rt: enum cmt_retrieval_type_t + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 - | loc: citem_locator_t const & + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool - | ea: ea_t - | path: intvec_t * + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -22917,7 +22912,8 @@ class cfuncptr_t(builtins.object) | | print_func(self, *args) -> 'void' | print_func(self, vp) - | vp: vc_printer_t & + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -22948,23 +22944,27 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) - | loc: treeloc_t const & - | cmt: char const * + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) - | loc: citem_locator_t const & - | iflags: int32 + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) - | ea: ea_t - | path: intvec_t const & + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) - | aul: enum allow_unused_labels_t - | even_without_debugger: bool + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22976,61 +22976,61 @@ class cfuncptr_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mba_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings @@ -23043,30 +23043,36 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -23075,7 +23081,8 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23087,7 +23094,7 @@ class cgoto_t(builtins.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -23106,7 +23113,8 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t - | _gc: graph_chains_t * + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -23118,8 +23126,9 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int - | @param cv (C++: chain_visitor_t &) - | @param gca (C++: int) + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -23150,19 +23159,22 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | t: mopt_t - | off: sval_t - | w: int - | v: int + | __init__(self, t, off, w=1, v=-1) -> chain_t | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int | | __init__(self, _k, w=1) -> chain_t - | _k: voff_t const & - | w: int + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: chain_t const & + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -23173,11 +23185,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' + | append_list(self, mba, list) | Append the contents of the chain to the specified list of locations. | - | append_list(self, mba, list) - | @param mba (C++: const mba_t *) - | @param list (C++: mlist_t *) + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -23196,7 +23208,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -23227,53 +23240,61 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | set_inited(self, *args) -> 'void' | set_inited(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_term(self, *args) -> 'void' | set_term(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_value(self, *args) -> 'void' | set_value(self, r) - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from ida_pro.intvec_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23283,28 +23304,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23328,70 +23359,81 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23421,7 +23463,8 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -23430,8 +23473,9 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int - | @param nblock (C++: int) - | @param ch (C++: chain_t &) + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23443,7 +23487,7 @@ class chain_visitor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -23451,17 +23495,16 @@ class chain_visitor_t(builtins.object) Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) -> 'bool' - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - checkout_hexrays_license(silent) -> bool - @param silent: silently fail if the license cannot be checked out. - (C++: bool) - @return: false if failed + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -23477,31 +23520,39 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | r: cif_t const & + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -23510,23 +23561,25 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t - | @param r (C++: const cif_t &) + | + | @param r: cif_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cif_t const & + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -23546,13 +23599,204 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -23567,31 +23811,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | r: cinsn_t const & + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -23633,141 +23885,180 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) -> 'bool' - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -23775,7 +24066,8 @@ class cinsn_t(citem_t) | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23832,6 +24124,8 @@ class cinsn_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -23846,36 +24140,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -23890,16 +24185,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -23916,7 +24211,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) -> 'bool' cinsn_t_insn_is_epilog(insn) -> bool - insn: cinsn_t const * + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -23927,15 +24223,19 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | x: qvector< cinsn_t * > const & + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23944,25 +24244,31 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t *const & + | + | @param i: size_t + | @param v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: cinsn_t *const & + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -23990,70 +24296,81 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator | + | @param it: qvector< cinsn_t * >::iterator | | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | first: qvector< cinsn_t * >::iterator - | last: qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) -> 'cinsn_t **' | extract(self) -> cinsn_t ** | | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' | find(self, x) -> qvector< cinsn_t * >::iterator - | x: cinsn_t *const & | + | @param x: cinsn_t *const & | | find(self, x) -> qvector< cinsn_t * >::const_iterator - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: cinsn_t ** - | len: size_t + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator - | x: cinsn_t *const & + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: cinsn_t *const & | + | @param _newsize: size_t + | @param x: cinsn_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< cinsn_t * > & + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24084,7 +24401,9 @@ class citem_cmt_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | s: char const * + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -24110,7 +24429,7 @@ class citem_cmt_t(builtins.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used Help on class citem_locator_t in module ida_hexrays: @@ -24121,36 +24440,43 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t - | _ea: ea_t - | _op: enum ctype_t | + | @param _ea: ea_t + | @param _op: enum ctype_t | | __init__(self, i) -> citem_locator_t - | i: citem_t const * + | + | @param i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24159,7 +24485,8 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24171,10 +24498,10 @@ class citem_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -24192,8 +24519,9 @@ class citem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | o: enum ctype_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -24214,6 +24542,8 @@ class citem_t(builtins.object) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -24228,53 +24558,54 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | print1(self, *args) -> 'void' + | print1(self, func) | Print item into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) - | @return: length of the generated text. + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' - | Swap two 'citem_t' . - | | swap(self, r) - | @param r (C++: citem_t &) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24286,19 +24617,19 @@ class citem_t(builtins.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -24322,6 +24653,7 @@ citem_to_specific_type(self) Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) -> 'void' + clear_cached_cfuncs() Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -24338,11 +24670,13 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | b: cinsn_t * + | __init__(self, b) -> cloop_t | + | @param b: cinsn_t * | | __init__(self, r) -> cloop_t - | r: cloop_t const & + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -24351,7 +24685,8 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -24360,7 +24695,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -24375,22 +24710,23 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function close_hexrays_waitbox in module ida_hexrays: close_hexrays_waitbox(*args) -> 'void' - Close the waitbox displayed by the decompiler. Useful if - DECOMP_NO_HIDE was used during decompilation. + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) -> 'bool' + close_pseudocode(f) -> bool Close pseudocode window. - close_pseudocode(f) -> bool - @param f: pointer to window (C++: TWidget *) - @return: false if failed + @param f: (C++: TWidget *) pointer to window + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -24401,31 +24737,38 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t - | _opnum: int + | + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -24434,28 +24777,32 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) - | type: tinfo_t const & - | parent: citem_t const * - | nice_stroff: bool * + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' + | assign(self, v, nbytes, sign) | Assign new value | - | assign(self, v, nbytes, sign) - | @param v: new value (C++: uint64) - | @param nbytes: size of the new value in bytes (C++: int) - | @param sign: sign of the value (C++: type_sign_t) + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | value(self, *args) -> 'uint64' - | Get value. This function will properly extend the number sign to - | 64bits depending on the type sign. - | | value(self, type) -> uint64 - | @param type (C++: const tinfo_t &) + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24467,10 +24814,10 @@ class cnumber_t(builtins.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -24496,92 +24843,94 @@ class codegen_t(builtins.object) | delete_codegen_t(self) | | analyze_prolog(self, *args) -> 'merror_t' - | Analyze prolog/epilog of the function to decompile. If prolog is - | found, allocate and fill 'mba->pi' structure. - | | analyze_prolog(self, fc, reachable) -> merror_t - | @param fc: flow chart (C++: const class qflow_chart_t &) - | @param reachable: bitmap of reachable blocks (C++: const class - | bitset_t &) - | @return: error code + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) -> 'minsn_t *' - | Emit one microinstruction. The L, R, D arguments usually mean the - | register number. However, they depend on CODE. For example:for m_goto - | and m_jcnd L is the target addressfor m_ldc L is the constant value to - | load - | | emit(self, code, width, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param width (C++: int) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int | | emit(self, code, l, r, d) -> minsn_t - | @param code (C++: mcode_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) -> 'minsn_t *' + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t | Emit one microinstruction. This variant takes a data type not a size. | - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param dtype (C++: op_dtype_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) -> 'merror_t' + | gen_micro(self) -> merror_t | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal | | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t | Generate microcode to calculate the address of a memory operand. | - | load_effective_address(self, n, flags=0) -> mreg_t - | @param n: - number of INSN operand (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand address. mr_none - failed - | (not a memory operand) + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) -> 'mreg_t' + | load_operand(self, opnum, flags=0) -> mreg_t | Generate microcode to load one operand. | - | load_operand(self, opnum, flags=0) -> mreg_t - | @param opnum (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand. + | @param opnum: (C++: int) + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand. | | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) | This method is called when the microcode generation is done. | | prepare_gen_micro(self, *args) -> 'merror_t' - | Setup internal data to handle new instruction. This method should be - | called before calling 'gen_micro()' . Usually 'gen_micro()' is called - | by the decompiler. You have to call this function explicitly only if - | you yourself call 'gen_micro()' . The instruction is in INSN + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal | | store_operand(self, *args) -> 'bool' - | Generate microcode to store an operand. In case of success an - | arbitrary number of instructions can be generated (and even no - | instruction if the source and target are the same) - | | store_operand(self, n, mop, flags=0, outins=None) -> bool - | @param n: - number of target INSN operand (C++: int) - | @param mop: - operand to be stored (C++: const mop_t &) - | @param flags: - reserved for future use (C++: int) - | @param outins: - (OUT) the last generated instruction (C++: minsn_t - | **) - | @return: success + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24593,19 +24942,19 @@ class codegen_t(builtins.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -24613,51 +24962,49 @@ class codegen_t(builtins.object) Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) -> 'merror_t' + convert_to_user_call(udc, cdg) -> merror_t try to generate user-defined call for an instruction - convert_to_user_call(udc, cdg) -> merror_t - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) Help on function create_cfunc in module ida_hexrays: create_cfunc(*args) -> 'cfuncptr_t' - Create a new 'cfunc_t' object. - create_cfunc(mba) -> cfuncptr_t - @param mba: microcode object. After creating the cfunc object it takes - the ownership of MBA. (C++: mba_t *) + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. Help on function create_field_name in module ida_hexrays: create_field_name(*args) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring - @param type (C++: const tinfo_t &) - @param offset (C++: uval_t) + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' - Create a reference to a named type. - create_typedef(name) -> tinfo_t - @param name: type name (C++: const char *) - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + Create a reference to an ordinal type. + @param name: char const * + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - n: int - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + + @param n: int Help on class creturn_t in module ida_hexrays: @@ -24673,30 +25020,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -24705,7 +25058,8 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: creturn_t const & + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24728,7 +25082,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -24744,30 +25098,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -24776,16 +25136,17 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -24805,7 +25166,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -24816,33 +25177,40 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | _lnnum: int - | _x: int - | _y: int + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -24851,13 +25219,14 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24869,16 +25238,16 @@ class ctext_position_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24934,7 +25303,7 @@ class ctree_anchor_t(builtins.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value Help on class ctree_item_t in module ida_hexrays: @@ -24967,31 +25336,36 @@ class ctree_item_t(builtins.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) -> 'int' + | get_label_num(self, gln_flags) -> int | Get label number of the current item. | - | get_label_num(self, gln_flags) -> int - | @param gln_flags: Combination of get_label_num control bits (C++: - | int) - | @return: -1 if failed or no label + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) -> 'lvar_t *' - | Get pointer to local variable. If the current item is a local - | variable, this function will return pointer to its definition. + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) -> 'member_t *' - | Get pointer to structure member. If the current item is a structure - | field, this function will return pointer to its definition. - | | get_memptr(self, p_sptr=None) -> member_t * - | @param p_sptr: pointer to the variable where the pointer to the parent - | structure is returned. This parameter can be NULL. - | (C++: struc_t **) - | @return: NULL if failed + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) -> 'bool' + | is_citem(self) -> bool | Is the current item is a ctree item? | | ---------------------------------------------------------------------- @@ -25004,7 +25378,7 @@ class ctree_item_t(builtins.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -25017,7 +25391,7 @@ class ctree_item_t(builtins.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -25031,15 +25405,19 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | x: qvector< citem_t * > const & + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25048,25 +25426,31 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: citem_t *const & + | + | @param i: size_t + | @param v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: citem_t *const & + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -25094,70 +25478,81 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator | + | @param it: qvector< citem_t * >::iterator | | erase(self, first, last) -> qvector< citem_t * >::iterator - | first: qvector< citem_t * >::iterator - | last: qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) -> 'citem_t **' | extract(self) -> citem_t ** | | find(self, *args) -> 'qvector< citem_t * >::const_iterator' | find(self, x) -> qvector< citem_t * >::iterator - | x: citem_t *const & | + | @param x: citem_t *const & | | find(self, x) -> qvector< citem_t * >::const_iterator - | x: citem_t *const & + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: citem_t ** - | len: size_t + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator - | x: citem_t *const & + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) - | x: citem_t *const & + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: citem_t *const & | + | @param _newsize: size_t + | @param x: citem_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< citem_t * > & + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25195,20 +25590,28 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t - | post: bool + | + | @param post: bool | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_ctree_parentee_t(...) | delete_ctree_parentee_t(self) | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25220,101 +25623,105 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -25326,10 +25733,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -25342,7 +25749,8 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t - | _flags: int + | + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -25350,101 +25758,105 @@ class ctree_visitor_t(builtins.object) | delete_ctree_visitor_t(self) | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25456,10 +25868,10 @@ class ctree_visitor_t(builtins.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -25479,30 +25891,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -25511,7 +25929,8 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25529,7 +25948,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -25538,7 +25958,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -25550,14 +25970,15 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' debug_hexrays_ctree(level, msg) - level: int - msg: char const * + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: @@ -25567,121 +25988,123 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - Decompile a function. Multiple decompilations of the same function - return the same object. - decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) -> 'bool' + decompile_many(outfile, funcaddrs, flags) -> bool Batch decompilation. Decompile all or the specified functions - decompile_many(outfile, funcaddrs, flags) -> bool - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) -> 'char const *' - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - dstr(tif) -> char const * - @param tif (C++: const tinfo_t *) + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) -> 'tinfo_t' + dummy_ptrtype(ptrsize, isfp) -> tinfo_t Generate a dummy pointer type - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) -> 'eamap_iterator_t' + eamap_begin(map) -> eamap_iterator_t Get iterator pointing to the beginning of eamap_t. - eamap_begin(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' + eamap_clear(map) Clear eamap_t. - eamap_clear(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) -> 'eamap_iterator_t' + eamap_end(map) -> eamap_iterator_t Get iterator pointing to the end of eamap_t. - eamap_end(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) -> 'void' + eamap_erase(map, p) Erase current element from eamap_t. - eamap_erase(map, p) - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) -> 'eamap_iterator_t' + eamap_find(map, key) -> eamap_iterator_t Find the specified key in eamap_t. - eamap_find(map, key) -> eamap_iterator_t - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) -> 'ea_t const &' + eamap_first(p) -> ea_t const & Get reference to the current map key. - eamap_first(p) -> ea_t const & - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) -> 'void' + eamap_free(map) Delete eamap_t instance. - eamap_free(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) -> 'eamap_iterator_t' + eamap_insert(map, key, val) -> eamap_iterator_t Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - eamap_insert(map, key, val) -> eamap_iterator_t - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -25692,14 +26115,16 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -25719,7 +26144,7 @@ class eamap_iterator_t(builtins.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -25729,39 +26154,40 @@ class eamap_iterator_t(builtins.object) Help on function eamap_new in module ida_hexrays: eamap_new(*args) -> 'eamap_t *' + eamap_new() -> eamap_t Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) -> 'eamap_iterator_t' + eamap_next(p) -> eamap_iterator_t Move to the next element. - eamap_next(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) -> 'eamap_iterator_t' + eamap_prev(p) -> eamap_iterator_t Move to the previous element. - eamap_prev(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) -> 'cinsnptrvec_t &' + eamap_second(p) -> cinsnptrvec_t Get reference to the current map value. - eamap_second(p) -> cinsnptrvec_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) -> 'size_t' + eamap_size(map) -> size_t Get size of eamap_t. - eamap_size(map) -> size_t - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -25872,7 +26298,8 @@ class eamap_t(builtins.object) | | at(self, *args) -> 'cinsnptrvec_t &' | at(self, _Keyval) -> cinsnptrvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -25964,30 +26391,36 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -25999,7 +26432,8 @@ class fnumber_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -26017,10 +26451,10 @@ class fnumber_t(builtins.object) | list of weak references to the object (if defined) | | fnum - | fnumber_t_fnum_get(self) -> fpvalue_t + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -26046,16 +26480,17 @@ class gco_info_t(builtins.object) | delete_gco_info_t(self) | | append_to_list(self, *args) -> 'bool' - | Append operand info to LIST. This function converts IDA register - | number or stack offset to a decompiler list. - | | append_to_list(self, list, mba) -> bool - | @param list: list to append to (C++: mlist_t *) - | @param mba: microcode object (C++: const mba_t *) + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object | | cvt_to_ivl(self, *args) -> 'vivl_t' - | Convert operand info to VIVL. The returned VIVL can be used, for - | example, in a call of get_valranges(). + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -26076,13 +26511,19 @@ class gco_info_t(builtins.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag @@ -26090,172 +26531,171 @@ class gco_info_t(builtins.object) Help on function gen_microcode in module ida_hexrays: gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) -> 'char const *' get_ctype_name(op) -> char const * - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) -> 'bool' - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - returns true. - get_current_operand(out) -> bool - @param out (C++: gco_info_t *) + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) -> 'tinfo_t' + get_float_type(width) -> tinfo_t Get a type of a floating point value with the specified width - get_float_type(width) -> tinfo_t - @param width: width of the desired type (C++: int) - @return: type info object + @param width: (C++: int) width of the desired type + @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) -> 'char const *' + get_hexrays_version() -> char const * Get decompiler version. The returned string is of the form <major>.<minor>.<revision>.<build-date> + + @return: pointer to version string. For example: "2.0.0.140605" Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) -> 'tinfo_t' - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) -> 'bool' - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - get_member_type(mptr, type) -> bool - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) -> 'qstring *' + get_merror_desc(code, mba) -> str Get textual description of an error code - get_merror_desc(code, mba) -> str - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mba_t *) - @return: the error address + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' + get_mreg_name(reg, width, ud=None) -> str Get the microregister name. - get_mreg_name(reg, width, ud=None) -> str - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param out: (C++: qstring *) output buffer, may be nullptr + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) -> 'type_sign_t' - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - get_op_signness(op) -> type_sign_t - @param op (C++: ctype_t) + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) -> 'mcode_t' get_signed_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) -> 'mlist_t const &' - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) -> 'bool' + get_type(id, tif, guess) -> bool Get a global type. Global types are types of addressable objects and struct/union/enum types - get_type(id, tif, guess) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) -> 'tinfo_t' - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - get_unk_type(size) -> tinfo_t - @param size: size of the type in bytes (C++: int) + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) -> 'vdui_t *' - Get the 'vdui_t' instance associated to the TWidget - get_widget_vdui(f) -> vdui_t - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) -> 'minsn_t *' - Skip assertions backward. - getb_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) -> 'minsn_t *' - Skip assertions forward. - getf_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -26278,26 +26718,30 @@ class graph_chains_t(block_chains_vec_t) | delete_graph_chains_t(self) | | acquire(self, *args) -> 'void' + | acquire(self) | Lock the chains. | | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca_flags) -> int | Visit all chains | - | for_all_chains(self, cv, gca_flags) -> int - | @param cv: chain visitor (C++: chain_visitor_t &) - | @param gca_flags: combination of GCA_ bits (C++: int) + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) -> 'bool' - | Are the chains locked? It is a good idea to lock the chains before - | using them. This ensures that they won't be recalculated and - | reallocated during the use. See the 'chain_keeper_t' class for that. + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) -> 'void' + | release(self) | Unlock the chains. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: graph_chains_t &) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26310,7 +26754,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26320,19 +26765,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26345,16 +26791,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -26364,40 +26810,48 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -26417,22 +26871,24 @@ class graph_chains_t(block_chains_vec_t) Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) -> 'bool' + has_cached_cfunc(ea) -> bool Do we have a cached decompilation result for 'ea'? - has_cached_cfunc(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function has_mcode_seloff in module ida_hexrays: has_mcode_seloff(*args) -> 'bool' has_mcode_seloff(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * - @param size (C++: size_t) + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -26443,15 +26899,17 @@ class hexrays_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, c, ea, buf=None) -> hexrays_failure_t | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, c, ea, buf) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: qstring const & + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -26473,13 +26931,13 @@ class hexrays_failure_t(builtins.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -26488,7 +26946,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) - @param ptr (C++: void *) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -26499,30 +26958,36 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -26531,7 +26996,8 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26543,13 +27009,13 @@ class hexwarn_t(builtins.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -26568,15 +27034,19 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | x: qvector< hexwarn_t > const & + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26585,25 +27055,31 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: hexwarn_t const & + | + | @param i: size_t + | @param v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: hexwarn_t const & + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -26614,7 +27090,6 @@ class hexwarns_t(builtins.object) | | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26627,78 +27102,85 @@ class hexwarns_t(builtins.object) | | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator | + | @param it: qvector< hexwarn_t >::iterator | | erase(self, first, last) -> hexwarn_t - | first: qvector< hexwarn_t >::iterator - | last: qvector< hexwarn_t >::iterator + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) -> 'hexwarn_t *' | extract(self) -> hexwarn_t | | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | find(self, x) -> hexwarn_t - | x: hexwarn_t const & | - | - | find(self, x) -> hexwarn_t - | x: hexwarn_t const & + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: hexwarn_t * - | len: size_t + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator - | x: hexwarn_t const & + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: hexwarn_t const & | + | @param _newsize: size_t + | @param x: hexwarn_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< hexwarn_t > & + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26734,15 +27216,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | _ea: ea_t - | _lnnum: int - | _x: int - | _y: int | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __init__(self, _ea, p) -> history_item_t - | _ea: ea_t - | p: ctext_position_t const & + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -26753,10 +27236,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -26766,37 +27249,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -26808,13 +27298,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes inherited from ctext_position_t: @@ -26849,22 +27339,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) - | v: history_item_t const & + | + | @param v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26877,35 +27371,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26918,78 +27419,85 @@ class history_t(qvector_history_t) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -27011,314 +27519,329 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' - Check that your plugin is compatible with hex-rays decompiler. This - function must be called before calling any other decompiler function. - init_hexrays_plugin(flags=0) -> bool - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and is compatible with your - plugin + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - install_microcode_filter(filter, install=True) -> bool - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - @return: success + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) -> 'bool' + is_additive(op) -> bool Is additive operator? - is_additive(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) -> 'bool' + is_assignment(op) -> bool Is assignment operator? - is_assignment(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) -> 'bool' + is_binary(op) -> bool Is binary operator? - is_binary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) -> 'bool' + is_bitop(op) -> bool Is bit related operator? - is_bitop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) -> 'bool' + is_bool_type(type) -> bool Is a boolean type? - is_bool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) -> 'bool' + is_break_consumer(op) -> bool Does a break statement influence the specified statement code? - is_break_consumer(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) -> 'bool' + is_commutative(op) -> bool Is commutative operator? - is_commutative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) -> 'bool' + is_inplace_def(type) -> bool Is struct/union/enum definition (not declaration)? - is_inplace_def(type) -> bool - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> 'bool' - Is a kernel register? Kernel registers are temporary registers that - can be used freely. They may be used to store values that cross - instruction or basic block boundaries. Kernel registers do not map to - regular processor registers. See also 'mba_t::alloc_kreg()' - is_kreg(r) -> bool - @param r (C++: mreg_t) + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) -> 'bool' + is_logical(op) -> bool Is logical operator? - is_logical(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) -> 'bool' + is_loop(op) -> bool Is loop statement code? - is_loop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) -> 'bool' + is_lvalue(op) -> bool Is Lvalue operator? - is_lvalue(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool - @param maymust (C++: maymust_t) + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) -> 'bool' is_mcode_convertible_to_jmp(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) -> 'bool' is_mcode_convertible_to_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) -> 'bool' - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - is_mcode_propagatable(mcode) -> bool - @param mcode (C++: mcode_t) + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) -> 'bool' + is_multiplicative(op) -> bool Is multiplicative operator? - is_multiplicative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) -> 'bool' + is_nonbool_type(type) -> bool Is definitely a non-boolean type? - is_nonbool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) -> 'bool' + is_paf(t) -> bool Is a pointer, array, or function type? - is_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) -> 'bool' + is_prepost(op) -> bool Is pre/post increment/decrement operator? - is_prepost(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) -> 'bool' + is_ptr_or_array(t) -> bool Is a pointer or array type? - is_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) -> 'bool' + is_relational(op) -> bool Is comparison operator? - is_relational(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) -> 'bool' + is_small_udt(tif) -> bool Is a small structure or union? - is_small_udt(tif) -> bool - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) -> 'bool' + is_type_correct(ptr) -> bool Verify a type string. - is_type_correct(ptr) -> bool - @param ptr (C++: const type_t *) - @return: true if type string is correct + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) -> 'bool' + is_unary(op) -> bool Is unary operator? - is_unary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on class iterator in module ida_hexrays: @@ -27329,15 +27852,18 @@ class iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __init__(self, *args) | __init__(self, n=-1) -> iterator - | n: int + | + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -27378,32 +27904,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t - | _off: uval_t - | _size: uval_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -27415,11 +27948,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ivl_t const & + | + | @param r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool - | @param off2 (C++: uval_t) + | + | @param off2: uval_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27429,19 +27964,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27476,10 +28015,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -27506,16 +28045,16 @@ class ivl_with_name_t(builtins.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole Help on class ivlset_t in module ida_hexrays: @@ -27531,31 +28070,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -27567,29 +28114,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | add(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | add(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool - | @param ivs (C++: const ivlset_t &) - | @param mask (C++: const ivl_t &) + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool - | @param off (C++: uval_t) + | + | @param off: uval_t | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27599,33 +28150,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool - | @param ivl (C++: const ivl_t &) - | @param strict (C++: bool) | + | @param ivl: ivl_t const & + | @param strict: bool | | has_common(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | sub(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | sub(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27660,7 +28215,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -27676,11 +28232,14 @@ class ivlset_t(uval_ivl_ivlset_t) | | single_value(self, *args) -> 'bool' | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -27695,31 +28254,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int - a: mop_t const & - b: mop_t const & + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. Help on function locate_lvar in module ida_hexrays: locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool Find a variable by name. - locate_lvar(out, func_ea, varname) -> bool - @param out: output buffer for the variable locator (C++: - lvar_locator_t *) - @param func_ea: function start address (C++: ea_t) - @param varname: variable name (C++: const char *) - @return: success Since VARNAME is not always enough to find the - variable, it may decompile the function. + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -27730,32 +28295,40 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -27764,33 +28337,46 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -27803,10 +28389,10 @@ class lvar_locator_t(builtins.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -27819,71 +28405,70 @@ class lvar_locator_t(builtins.object) Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_begin(map) -> lvar_mapping_iterator_t Get iterator pointing to the beginning of lvar_mapping_t. - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) -> 'void' + lvar_mapping_clear(map) Clear lvar_mapping_t. - lvar_mapping_clear(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_end(map) -> lvar_mapping_iterator_t Get iterator pointing to the end of lvar_mapping_t. - lvar_mapping_end(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) -> 'void' + lvar_mapping_erase(map, p) Erase current element from lvar_mapping_t. - lvar_mapping_erase(map, p) - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t Find the specified key in lvar_mapping_t. - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) -> 'lvar_locator_t const &' + lvar_mapping_first(p) -> lvar_locator_t Get reference to the current map key. - lvar_mapping_first(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) -> 'void' + lvar_mapping_free(map) Delete lvar_mapping_t instance. - lvar_mapping_free(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -27894,14 +28479,16 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -27921,7 +28508,7 @@ class lvar_mapping_iterator_t(builtins.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27931,39 +28518,40 @@ class lvar_mapping_iterator_t(builtins.object) Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) -> 'lvar_mapping_t *' + lvar_mapping_new() -> lvar_mapping_t Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_next(p) -> lvar_mapping_iterator_t Move to the next element. - lvar_mapping_next(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_prev(p) -> lvar_mapping_iterator_t Move to the previous element. - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) -> 'lvar_locator_t &' + lvar_mapping_second(p) -> lvar_locator_t Get reference to the current map value. - lvar_mapping_second(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) -> 'size_t' + lvar_mapping_size(map) -> size_t Get size of lvar_mapping_t. - lvar_mapping_size(map) -> size_t - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -27982,7 +28570,8 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t - | _Keyval: lvar_locator_t const & + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -28008,37 +28597,44 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t - | m: mba_t * - | i: int - | o: sval_t | + | @param m: mba_t * + | @param i: int + | @param o: sval_t | | __init__(self, r) -> lvar_ref_t - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -28047,13 +28643,16 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lvar_ref_t &) + | + | @param r: lvar_ref_t & | | var(self, *args) -> 'lvar_t &' + | var(self) -> lvar_t | Retrieve the referenced variable. | | ---------------------------------------------------------------------- @@ -28066,13 +28665,13 @@ class lvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -28091,14 +28690,16 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -28163,25 +28764,25 @@ class lvar_saved_info_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28197,15 +28798,19 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | x: qvector< lvar_saved_info_t > const & + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28214,25 +28819,31 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_saved_info_t const & + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | __swig_destroy__ = delete_lvar_saved_infos_t(...) | delete_lvar_saved_infos_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_saved_info_t const & + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -28243,7 +28854,6 @@ class lvar_saved_infos_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28256,78 +28866,85 @@ class lvar_saved_infos_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator | + | @param it: qvector< lvar_saved_info_t >::iterator | | erase(self, first, last) -> lvar_saved_info_t - | first: qvector< lvar_saved_info_t >::iterator - | last: qvector< lvar_saved_info_t >::iterator + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) -> 'lvar_saved_info_t *' | extract(self) -> lvar_saved_info_t | | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & | - | - | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_saved_info_t * - | len: size_t + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator - | x: lvar_saved_info_t const & + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_saved_info_t &' | push_back(self, x) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_saved_info_t const & | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_saved_info_t > & + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28363,8 +28980,10 @@ class lvar_t(lvar_locator_t) | | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __repr__ = _swig_repr(self) | @@ -28372,20 +28991,20 @@ class lvar_t(lvar_locator_t) | delete_lvar_t(self) | | accepts_type(self, *args) -> 'bool' - | Check if the variable accept the specified type. Some types are - | forbidden (void, function types, wrong arrays, etc) - | | accepts_type(self, t, may_change_thisarg=False) -> bool - | @param t (C++: const tinfo_t &) - | @param may_change_thisarg (C++: bool) + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) -> 'void' + | append_list(self, mba, lst, pad_if_scattered=False) | Append local variable to mlist. | - | append_list(self, mba, lst, pad_if_scattered=False) - | @param mba: ptr to the current mba_t (C++: const mba_t *) - | @param lst: list to append to (C++: mlist_t *) - | @param pad_if_scattered (C++: bool) + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -28448,54 +29067,63 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) -> 'bool' + | has_common(self, v) -> bool | Do variables overlap? | - | has_common(self, v) -> bool - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) -> 'bool' + | has_common_bit(self, loc, width2) -> bool | Does the variable overlap with the specified location? | - | has_common_bit(self, loc, width2) -> bool - | @param loc (C++: const vdloc_t &) - | @param width2 (C++: asize_t) + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) -> 'bool' + | has_regname(self) -> bool | Has a register name? (like _RAX) | | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mba) -> bool | Is the variable aliasable? | - | is_aliasable(self, mba) -> bool - | @param mba: ptr to the current mba_t Aliasable variables may be - | modified indirectly (through a pointer) (C++: const mba_t - | *) + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) -> 'bool' + | is_automapped(self) -> bool | Was the variable automatically mapped to another variable? | | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) -> 'bool' + | is_dummy_arg(self) -> bool | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) -> 'bool' + | is_forced_var(self) -> bool | Is a forced variable? | | is_noptr_var(self, *args) -> 'bool' + | is_noptr_var(self) -> bool | Variable type should not be a pointer. | | is_notarg(self, *args) -> 'bool' + | is_notarg(self) -> bool | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) -> 'bool' + | is_thisarg(self) -> bool | Is 'this' argument of a C++ member function? | | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' @@ -28514,10 +29142,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) -> 'void' + | set_final_lvar_type(self, t) | Set final variable type. | - | set_final_lvar_type(self, t) - | @param t (C++: const tinfo_t &) + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -28526,17 +29154,16 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) -> 'bool' - | Set variable type Note: this function does not modify the idb, only - | the lvar instance in the memory. For permanent changes see - | modify_user_lvars() Also, the variable type is not considered as final - | by the decompiler and may be modified later by the type derivation. In - | some cases set_final_var_type() may work better, but it does not do - | persistent changes to the database neither. - | | set_lvar_type(self, t, may_fail=False) -> bool - | @param t: new type (C++: const tinfo_t &) - | @param may_fail: if false and type is bad, interr (C++: bool) - | @return: success + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -28581,144 +29208,177 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) -> 'bool' - | Change the variable width. We call the variable size 'width', it is - | represents the number of bytes. This function may change the variable - | type using 'set_lvar_type()' . - | | set_width(self, w, svw_flags=0) -> bool - | @param w: new width (C++: int) - | @param svw_flags: combination of SVW_... bits (C++: int) - | @return: success + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) -> 'tinfo_t &' - | Get variable type. + | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name + | has_nice_name(self) -> bool | Does the variable have a nice name? | | has_user_info + | has_user_info(self) -> bool | Has any user-defined information? | | has_user_name + | has_user_name(self) -> bool | Has user-defined name? | | has_user_type + | has_user_type(self) -> bool | Has user-defined type? | | is_arg_var + | is_arg_var(self) -> bool | Is the function argument? | | is_fake_var + | is_fake_var(self) -> bool | Is fake return variable? | | is_floating_var + | is_floating_var(self) -> bool | Used by a fpu insn? | | is_mapdst_var + | is_mapdst_var(self) -> bool | Other variable(s) map to this var? | | is_overlapped_var + | is_overlapped_var(self) -> bool | Is overlapped variable? | | is_result_var + | is_result_var(self) -> bool | Is the function result? | | is_spoiled_var + | is_spoiled_var(self) -> bool | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width + | is_unknown_width(self) -> bool | Do we know the width of the variable? | | mreg_done - | Have corresponding microregs been replaced by references to this - | variable? + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed + | typed(self) -> bool | Has the variable a type? | | used + | used(self) -> bool | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from lvar_locator_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -28731,10 +29391,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | ---------------------------------------------------------------------- | Data and other attributes inherited from lvar_locator_t: @@ -28763,20 +29423,21 @@ class lvar_uservec_t(builtins.object) | empty(self) -> bool | | find_info(self, *args) -> 'lvar_saved_info_t *' + | find_info(self, vloc) -> lvar_saved_info_t | find saved user settings for given var | - | find_info(self, vloc) -> lvar_saved_info_t - | @param vloc (C++: const lvar_locator_t &) + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) -> 'void' + | keep_info(self, v) | Preserve user settings for given var. | - | keep_info(self, v) - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lvar_uservec_t &) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28788,19 +29449,19 @@ class lvar_uservec_t(builtins.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags Help on class lvars_t in module ida_hexrays: @@ -28823,37 +29484,36 @@ class lvars_t(qvector_lvar_t) | delete_lvars_t(self) | | find(self, *args) -> 'lvar_t *' + | find(self, ll) -> lvar_t | Find variable at the specified location. | - | find(self, ll) -> lvar_t - | @param ll: variable location (C++: const lvar_locator_t &) - | @return: pointer to variable or NULL + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) -> 'int' + | find_input_lvar(self, argloc, _size) -> int | Find input variable at the specified location. | - | find_input_lvar(self, argloc, _size) -> int - | @param argloc: variable location (C++: const vdloc_t &) - | @param _size: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' + | find_lvar(self, location, width, defblk=-1) -> int | Find variable at the specified location. | - | find_lvar(self, location, width, defblk=-1) -> int - | @param location: variable location (C++: const vdloc_t &) - | @param width: variable size (C++: int) - | @param defblk: definition block of the lvar. -1 means any block (C++: - | int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' + | find_stkvar(self, spoff, width) -> int | Find stack variable at the specified location. | - | find_stkvar(self, spoff, width) -> int - | @param spoff: offset from the minimal sp (C++: sval_t) - | @param width: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28866,11 +29526,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28880,35 +29542,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28921,16 +29592,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -28940,51 +29611,61 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29006,32 +29687,34 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) -> 'tinfo_t' - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - make_pointer(type) -> tinfo_t - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) -> 'bool' - Flush the cached decompilation results. Erases a cache entry for the - specified function. - mark_cfunc_dirty(ea, close_views=False) -> bool - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -29059,7 +29742,8 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool - | @param mbr (C++: const mba_ranges_t &) + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29071,10 +29755,10 @@ class mba_range_iterator_t(builtins.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -29088,11 +29772,12 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t - | _pfn: func_t * | + | @param _pfn: func_t * | | __init__(self, r) -> mba_ranges_t - | r: rangevec_t const & + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -29124,10 +29809,10 @@ class mba_ranges_t(builtins.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag @@ -29152,66 +29837,62 @@ class mba_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | | alloc_fict_ea(self, *args) -> 'ea_t' - | Allocate a fictional address. This function can be used to allocate a - | new unique address for a new instruction, if re-using any existing - | address leads to conflicts. For example, if the last instruction of - | the function modifies R0 and falls through to the next function, it - | will be a tail call: LDM R0!, {R4,R7} end of the function start of - | another function In this case R0 generates two different lvars at the - | same address:one modified by LDManother that represents the return - | value from the tail call Another example: a third-party plugin makes a - | copy of an instruction. This may lead to the generation of two - | variables at the same address. Example 3: fictional addresses can be - | used for new instructions created while modifying the microcode. This - | function can be used to allocate a new unique address for a new - | instruction or a variable. The fictional address is selected from an - | unallocated address range. - | | alloc_fict_ea(self, real_ea) -> ea_t - | @param real_ea (C++: ea_t) - | @return: a unique fictional address + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address | | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t | Allocate a kernel register. | - | alloc_kreg(self, size, check_size=True) -> mreg_t - | @param size: size of the register in bytes (C++: size_t) - | @param check_size: if true, only the sizes that correspond to a size - | of a basic type will be accepted. (C++: bool) - | @return: allocated register. mr_none means failure. + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. | | alloc_lvars(self, *args) -> 'void' + | alloc_lvars(self) | Allocate local variables. Must be called only immediately after - | 'optimize_global()' , with no modifications to the microcode. Converts - | registers, stack variables, and similar operands into mop_l. This call - | will not fail because all necessary checks were performed in - | 'optimize_global()' . After this call the microcode reaches its final - | state. + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) -> 'int' + | analyze_calls(self, acflags) -> int | Analyze calls and determine calling conventions. | - | analyze_calls(self, acflags) -> int - | @param acflags: permitted actions that are necessary for successful - | detection of calling conventions. See Bits for - | analyze_calls() (C++: int) - | @return: number of calls. -1 means error. + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' - | Get input argument of the decompiled function. - | | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) | - | - | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) + | @param n: int | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -29226,10 +29907,12 @@ class mba_t(builtins.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) -> 'merror_t' - | Build control flow graph. This function may be called only once. It - | calculates the type of each basic block and the adjacency list. - | 'optimize_local()' calls this function if necessary. You need to call - | this function only before MMAT_LOCOPT. + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -29245,50 +29928,50 @@ class mba_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | code16_bit_removed(self, *args) -> 'bool' | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) -> 'bool' - | Combine blocks. This function merges blocks constituting linear flow. - | It calls 'remove_empty_and_unreachable_blocks()' as well. + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> 'mblock_t *' - | Make a copy of a block. This function makes a simple copy of the - | block. It does not fix the predecessor and successor lists, they must - | be fixed if necessary. - | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | @param blk: block to copy (C++: mblock_t *) - | @param new_serial: position of the copied block (C++: int) - | @param cpblk_flags: combination of Batch decompilation bits ... bits - | (C++: int) - | @return: pointer to the new copy + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy | | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t | Create a call of a helper function. | - | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t - | @param ea: The desired address of the instruction (C++: ea_t) - | @param helper: The helper name (C++: const char *) - | @param rettype: The return type (NULL or empty type means 'void') - | (C++: const tinfo_t *) - | @param callargs: The helper arguments (NULL-no arguments) (C++: const - | mcallargs_t *) - | @param out: The operand where the call result should be stored. If - | this argument is not NULL, "mov helper_call(), out" will - | be generated. Otherwise "call helper()" will be generated. - | Note: the size of this operand must be equal to the - | RETTYPE size (C++: const mop_t *) - | @return: pointer to the created instruction or NULL if error + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -29300,60 +29983,57 @@ class mba_t(builtins.object) | display_valnums(self) -> bool | | dump(self, *args) -> 'void' - | Dump microcode to a file. The file will be created in the directory - | pointed by IDA_DUMPDIR envvar. Dump will be created only if IDA is run - | under debugger. + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) -> 'void' | dump_mba(self, _verify, title) - | @param _verify (C++: bool) - | @param title (C++: const char *) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) -> 'mop_t *' - | Find an operand in the microcode. This function tries to find the - | operand that matches LIST. Any operand that overlaps with LIST is - | considered as a match. - | | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | @param ctx: context information for the result (C++: op_parent_info_t - | *) - | @param ea: desired address of the operand (C++: ea_t) - | @param is_dest: search for destination operand? this argument may be - | ignored if the exact match could not be found (C++: - | bool) - | @param list: list of locations the correspond to the operand (C++: - | const mlist_t &) - | @return: pointer to the operand or NULL. + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits all instruction and | subinstructions. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int | Visit all operands of all instructions. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' + | for_all_topinsns(self, mv) -> int | Visit all top level instructions. | - | for_all_topinsns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | free_kreg(self, *args) -> 'void' - | Free a kernel register. If wrong arguments are passed, this function - | will generate an internal error. - | | free_kreg(self, reg, size) - | @param reg: a previously allocated kernel register (C++: mreg_t) - | @param size: size of the register in bytes (C++: size_t) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -29365,12 +30045,13 @@ class mba_t(builtins.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) -> 'mbl_graph_t *' - | Get control graph. Call 'build_graph()' if you need the graph before - | MMAT_LOCOPT. + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) -> 'argloc_t' | get_ida_argloc(self, v) -> argloc_t - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -29382,14 +30063,9 @@ class mba_t(builtins.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) -> 'mblock_t *' - | Get basic block by its serial number. - | | get_mblock(self, n) -> mblock_t - | @param n (C++: int) | - | - | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | @param n: int | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -29398,11 +30074,11 @@ class mba_t(builtins.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) -> 'ivl_t const &' - | Get information about various memory regions. We map the stack frame - | to the global memory, to some unused range. - | | get_std_region(self, idx) -> ivl_t - | @param idx (C++: memreg_index_t) + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -29421,19 +30097,19 @@ class mba_t(builtins.object) | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t - | @param loc (C++: const argloc_t &) - | @param width (C++: int) + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) -> 'mblock_t *' - | Insert a block in the middle of the mbl array. The very first block of - | microcode must be empty, it is the entry block. The very last block of - | microcode must be BLT_STOP, it is the exit block. Therefore inserting - | a new block before the entry point or after the exit block is not a - | good idea. - | | insert_block(self, bblk) -> mblock_t - | @param bblk: the new block will be inserted before BBLK (C++: int) - | @return: ptr to the new block + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -29452,7 +30128,8 @@ class mba_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -29470,36 +30147,37 @@ class mba_t(builtins.object) | lvars_renamed(self) -> bool | | map_fict_ea(self, *args) -> 'ea_t' - | Resolve a fictional address. This function provides a reverse of the - | mapping made by 'alloc_fict_ea()' . - | | map_fict_ea(self, fict_ea) -> ea_t - | @param fict_ea: fictional definition address (C++: ea_t) - | @return: the real instruction address + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address | | mark_chains_dirty(self, *args) -> 'void' - | Mark the microcode use-def chains dirty. Call this function is any - | inter-block data dependencies got changed because of your - | modifications to the microcode. Failing to do so may cause an internal - | error. + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) -> 'bool' | may_refine_rettype(self) -> bool | | optimize_global(self, *args) -> 'merror_t' - | Optimize microcode globally. This function applies various - | optimization methods until we reach the fixed point. After that it - | preallocates lvars unless reqmat forbids it. + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) -> 'int' + | optimize_local(self, locopt_bits) -> int | Optimize each basic block locally | - | optimize_local(self, locopt_bits) -> int - | @param locopt_bits: combination of Bits for optimize_local() bits - | (C++: int) - | @return: number of changes. 0 means nothing changed This function is - | called by the decompiler, usually there is no need to call it - | explicitly. + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) -> 'bool' | optimized(self) -> bool @@ -29517,16 +30195,16 @@ class mba_t(builtins.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) -> 'bool' + | remove_block(self, blk) -> bool | Delete a block. | - | remove_block(self, blk) -> bool - | @param blk: block to delete (C++: mblock_t *) - | @return: true if at least one of the other blocks became empty or - | unreachable + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' - | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP - | won't be deleted. + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -29535,33 +30213,36 @@ class mba_t(builtins.object) | rtype_refined(self) -> bool | | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) | Create and save microcode snapshot. | - | save_snapshot(self, description) - | @param description (C++: const char *) + | @param description: (C++: const char *) char const * | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' + | serialize(self) | Serialize mbl array into a sequence of bytes. | | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool | Set maturity level. | - | set_maturity(self, mat) -> bool - | @param mat (C++: mba_maturity_t) - | @return: true if it is time to stop analysis Plugins may use this - | function to skip some parts of the analysis. The maturity - | level cannot be decreased. + | @param mat: (C++: mba_maturity_t) enum mba_maturity_t + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -29574,11 +30255,13 @@ class mba_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | term(self, *args) -> 'void' | term(self) @@ -29594,25 +30277,25 @@ class mba_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) - | spd: sval_t | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t | | vd2idaloc(self, loc, width) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) -> 'void' + | verify(self, always) | Verify microcode consistency. | - | verify(self, always) - | @param always: if false, the check will be performed only if ida runs - | under debugger If any inconsistency is discovered, an - | internal error will be generated. We strongly recommend - | you to call this function before returing control to - | the decompiler from your callbacks, in the case if you - | modified the microcode. (C++: bool) + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -29622,7 +30305,10 @@ class mba_t(builtins.object) | | deserialize(*args) -> 'mba_t *' | deserialize(bytes) -> mba_t - | bytes: uchar const * + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29634,156 +30320,157 @@ class mba_t(builtins.object) | list of weak references to the object (if defined) | | aliased_args - | mba_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mba_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mba_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mba_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mba_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mba_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mba_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs | | deprecated_idb_node - | mba_t_deprecated_idb_node_get(self) -> netnode + | deprecated_idb_node | | entry_ea - | mba_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mba_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mba_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mba_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mba_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mba_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mba_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mba_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mba_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mba_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mba_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node | | idb_spoiled - | mba_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mba_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mba_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mba_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mba_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mba_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mba_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mba_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mba_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mba_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mba_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mba_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mba_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mba_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mba_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mba_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mba_t_qty_get(self) -> int + | qty | | reqmat - | mba_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mba_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mba_t_retsize_get(self) -> int + | retsize | | retvaridx - | mba_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mba_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mba_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mba_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mba_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mba_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mba_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mba_t_vars_get(self) -> lvars_t + | vars Help on function mba_t_deserialize in module ida_hexrays: mba_t_deserialize(*args) -> 'mba_t *' mba_t_deserialize(bytes) -> mba_t - bytes: uchar const * + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -29800,7 +30487,8 @@ class mbl_graph_t(simple_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29808,54 +30496,55 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) -> 'graph_chains_t *' + | get_du(self, gctype) -> graph_chains_t | Get def-use chains. | - | get_du(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | + | @param n: int | | get_ud(self, *args) -> 'graph_chains_t *' + | get_ud(self, gctype) -> graph_chains_t | Get use-def chains. | - | get_ud(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) -> 'bool' + | is_du_chain_dirty(self, gctype) -> bool | Is the def-use chain of the specified kind dirty? | - | is_du_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) -> 'bool' + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST redefined in the graph? | - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' + | is_ud_chain_dirty(self, gctype) -> bool | Is the use-def chain of the specified kind dirty? | - | is_ud_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) -> 'bool' + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST used in the graph? | - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29867,10 +30556,10 @@ class mbl_graph_t(simple_graph_t) | Data descriptors inherited from simple_graph_t: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -29885,9 +30574,10 @@ class mbl_graph_t(simple_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -29900,7 +30590,8 @@ class mbl_graph_t(simple_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -29910,65 +30601,77 @@ class mbl_graph_t(simple_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -29996,208 +30699,184 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' - | Append def-list of an operand. This function calculates list of - | locations that may or must be modified by the operand and appends it - | to LIST. - | | append_def_list(self, list, op, maymust) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the def list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) -> 'void' - | Append use-list of an operand. This function calculates list of - | locations that may or must be used by the operand and appends it to - | LIST. - | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the use list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @param mask: if only part of the operand should be considered, a - | bitmask can be used to specify which part. example: - | op=AX,mask=0xFF means that we will consider only AL. - | (C++: bitrange_t) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) -> 'mlist_t' - | Build def-list of an instruction. This function calculates list of - | locations that may or must be modified by the instruction. Examples: - | "stx ebx.4, ds.2, eax.4", may-list: all aliasable memory "stx ebx.4, - | ds.2, eax.4", must-list: empty Since STX uses EAX for indirect access, - | it may modify any aliasable memory. On the other hand, we cannot tell - | for sure which memory cells will be modified, this is why the must- - | list is empty. - | | build_def_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the def list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated def-list + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' + | build_lists(self, kill_deads) -> int | Build def-use lists and eliminate deads. | - | build_lists(self, kill_deads) -> int - | @param kill_deads: do delete dead instructions? (C++: bool) - | @return: the number of eliminated instructions Better mblock_t::call - | make_lists_ready() rather than this function. + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) -> 'mlist_t' - | Build use-list of an instruction. This function calculates list of - | locations that may or must be used by the instruction. Examples: "ldx - | ds.2, eax.4, ebx.4", may-list: all aliasable memory "ldx ds.2, eax.4, - | ebx.4", must-list: empty Since LDX uses EAX for indirect access, it - | may access any aliasable memory. On the other hand, we cannot tell for - | sure which memory cells will be accessed, this is why the must-list is - | empty. - | | build_use_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the use list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated use-list + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) -> 'void' - | Dump block info. This function is useful for debugging, see - | 'mba_t::dump' for info + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) -> 'void' | dump_block(self, title) - | @param title (C++: const char *) + | + | @param title: char const * | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' - | Find the instruction that accesses the specified operand. This - | function search inside one block. - | | find_access(self, op, parent, mend, fdflags) -> minsn_t - | @param op: operand to search for (C++: const mop_t &) - | @param parent (C++: minsn_t **) - | @param mend (C++: const minsn_t *) - | @param fdflags (C++: int) - | @return: the instruction that accesses the operand. this instruction - | may be a sub-instruction. to find out the top level - | instruction, check out *p_i1. NULL means 'not found'. + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param p_i1: ptr to ptr to a top level instruction. denotes the beginning of the + | search range. + | @param mend: (C++: const minsn_t *) minsn_t const * + | @param fdflags: (C++: int) + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) -> 'minsn_t *' - | Find the first insn that uses the specified list in the insn range. - | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. Upon return LIST will - | contain only locations not redefined by insns [i1..result] + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) -> 'minsn_t *' - | Find the first insn that redefines any part of the list in the insn - | range. - | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits subinstructions too. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: zero or the value returned by mv.visit_insn() See also - | mba_t::for_all_topinsns() + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int | Visit all operands. This function visit subinstruction operands too. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: zero or the value returned by mv.visit_mop() + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' + | for_all_uses(self, list, i1, i2, mmv) -> int | Visit all operands that use LIST. | - | for_all_uses(self, list, i1, i2, mmv) -> int - | @param list: ptr to the list of locations. it may be modified: parts - | that get redefined by the instructions in [i1,i2) will be - | deleted. (C++: mlist_t *) - | @param i1: starting instruction. must be a top level insn. (C++: - | minsn_t *) - | @param i2: ending instruction (excluded). must be a top level insn. - | (C++: minsn_t *) - | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) - | @return: zero or the value returned by mmv.visit_mop() + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) -> 'size_t' - | Calculate number of regular instructions in the block. Assertions are - | skipped by this function. + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) -> 'bool' - | Find possible values for a block. - | | get_valranges(self, res, vivl, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) - | + | Find possible values for an instruction. | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | m: minsn_t const * - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) -> 'minsn_t *' + | insert_into_block(self, nm, om) -> minsn_t | Insert instruction into the doubly linked list | - | insert_into_block(self, nm, om) -> minsn_t - | @param nm: new instruction (C++: minsn_t *) - | @param om: existing instruction, part of the doubly linked list if - | NULL, then the instruction will be inserted at the - | beginning of the list NM will be inserted immediately after - | OM (C++: minsn_t *) - | @return: pointer to NM + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -30209,32 +30888,26 @@ class mblock_t(builtins.object) | is_nway(self) -> bool | | is_redefined(self, *args) -> 'bool' + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list redefined by the specified instructions? | - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) -> 'bool' - | Is the right hand side of the instruction redefined the insn range? - | "right hand side" corresponds to the source operands of the - | instruction. - | | is_rhs_redefined(self, ins, i1, i2) -> bool - | @param ins: instruction to consider (C++: const minsn_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -30246,20 +30919,16 @@ class mblock_t(builtins.object) | is_unknown_call(self) -> bool | | is_used(self, *args) -> 'bool' + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list used by the specified instruction range? | - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -30271,12 +30940,11 @@ class mblock_t(builtins.object) | make_lists_ready(self) -> int | | make_nop(self, *args) -> 'void' - | Erase the instruction (convert it to nop) and mark the lists dirty. - | This is the recommended function to use because it also marks the - | block use-def lists dirty. - | | make_nop(self, m) - | @param m (C++: minsn_t *) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -30285,49 +30953,57 @@ class mblock_t(builtins.object) | needs_propagation(self) -> bool | | npred(self, *args) -> 'int' + | npred(self) -> int | Get number of block predecessors. | | nsucc(self, *args) -> 'int' + | nsucc(self) -> int | Get number of block successors. | | optimize_block(self, *args) -> 'int' + | optimize_block(self) -> int | Optimize a basic block. Usually there is no need to call this function - | explicitly because the decompiler will call it itself if - | 'optinsn_t::func' or 'optblock_t::func' return non-zero. + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) -> 'int' + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int | Optimize one instruction in the context of the block. | - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | @param m: pointer to a top level instruction (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the block This function may change - | other instructions in the block too. However, it will not - | destroy top level instructions (it may convert them to - | nop's). This function performs only intrablock modifications. - | See also minsn_t::optimize_solo() + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) -> 'int' - | Remove a jump at the end of the block if it is useless. This function - | preserves any side effects when removing a useless jump. Both - | conditional and unconditional jumps are handled (and jtbl too). This - | function deletes useless jumps, not only replaces them with a nop. - | (please note that \optimize_insn does not handle useless jumps). + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) -> 'int' | pred(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' + | remove_from_block(self, m) -> minsn_t | Remove instruction from the doubly linked list | - | remove_from_block(self, m) -> minsn_t - | @param m: instruction to remove The removed instruction is not - | deleted, the caller gets its ownership (C++: minsn_t *) - | @return: pointer to the next instruction + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -30337,7 +31013,8 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -30352,70 +31029,70 @@ class mblock_t(builtins.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mba_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type Help on class mcallarg_t in module ida_hexrays: @@ -30431,7 +31108,9 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | rarg: mop_t const & + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -30440,79 +31119,89 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) - | @param op (C++: const mop_t &) + | + | @param op: mop_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) - | @param mr (C++: mreg_t) - | @param sz (C++: int) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & | | set_regarg(self, mr, tif) - | @param mr (C++: mreg_t) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param tif: tinfo_t const & | | set_regarg(self, mr, dt, sign=type_unsigned) - | @param mr (C++: mreg_t) - | dt: char - | sign: type_sign_t + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea | | flags - | mcallarg_t_flags_get(self) -> uint32 + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from mop_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -30525,6 +31214,8 @@ class mcallarg_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -30574,90 +31265,84 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -30679,173 +31364,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -30854,122 +31583,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -30984,29 +31713,32 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -31019,140 +31751,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -31172,36 +31900,37 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -31243,7 +31972,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -31254,13 +31983,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -31276,15 +32005,19 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | x: qvector< mcallarg_t > const & + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31294,36 +32027,42 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: mcallarg_t const & + | + | @param i: size_t + | @param v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: mcallarg_t const & + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -31336,78 +32075,85 @@ class mcallargs_t(builtins.object) | | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator | + | @param it: qvector< mcallarg_t >::iterator | | erase(self, first, last) -> mcallarg_t - | first: qvector< mcallarg_t >::iterator - | last: qvector< mcallarg_t >::iterator + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) -> 'mcallarg_t *' | extract(self) -> mcallarg_t | | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | find(self, x) -> mcallarg_t - | x: mcallarg_t const & | - | - | find(self, x) -> mcallarg_t - | x: mcallarg_t const & + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: mcallarg_t * - | len: size_t + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator - | x: mcallarg_t const & + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: mcallarg_t const & | + | @param _newsize: size_t + | @param x: mcallarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< mcallarg_t > & + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31438,8 +32184,9 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | _callee: ea_t - | _sargs: int + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | @@ -31448,8 +32195,11 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) - | size: int - | shins_flags: int + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -31462,11 +32212,13 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int - | @param f (C++: const mcallinfo_t &) + | + | @param f: mcallinfo_t const & | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool - | @param type (C++: const tinfo_t &) + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31478,58 +32230,58 @@ class mcallinfo_t(builtins.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory Help on class mcases_t in module ida_hexrays: @@ -31540,30 +32292,36 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -31575,7 +32333,8 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mcases_t const & + | + | @param r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -31585,14 +32344,16 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) - | @param s (C++: int) + | + | @param s: int | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: mcases_t &) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31604,13 +32365,13 @@ class mcases_t(builtins.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31621,7 +32382,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -31634,7 +32396,8 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31642,20 +32405,20 @@ class microcode_filter_t(builtins.object) | delete_microcode_filter_t(self) | | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) -> 'bool' + | match(self, cdg) -> bool | check if the filter object is to be appied | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) - | @return: success + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31678,15 +32441,17 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t - | _ea: ea_t | + | @param _ea: ea_t | | __init__(self, m) -> minsn_t - | m: minsn_t const & + | + | @param m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool - | ri: minsn_t const & + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -31702,10 +32467,10 @@ class minsn_t(builtins.object) | | _ensure_no_obj(self, o, attr, attr_is_acquired) | + | _ensure_ownership_transferrable(self, v) + | | _make_nop(self, *args) -> 'void' - | Convert instruction to nop. This function erases all info but the - | prev/next fields. In most cases it is better to use - | 'mblock_t::make_nop()' , which also marks the block lists as dirty. + | _make_nop(self) | | _maybe_disown_and_deregister(self) | @@ -31724,7 +32489,10 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -31757,97 +32525,85 @@ class minsn_t(builtins.object) | clr_tailcall(self) | | contains_call(self, *args) -> 'bool' + | contains_call(self, with_helpers=False) -> bool | Does the instruction contain a call? | - | contains_call(self, with_helpers=False) -> bool - | @param with_helpers (C++: bool) + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) -> 'bool' + | contains_opcode(self, mcode) -> bool | Does the instruction have the specified opcode? This function searches | subinstructions as well. | - | contains_opcode(self, mcode) -> bool - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: (C++: mcode_t) opcode to search for. | | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' - | Compare instructions. This is the main comparison function for - | instructions. - | | equal_insns(self, m, eqflags) -> bool - | @param m: instruction to compare with (C++: const minsn_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) -> 'minsn_t *' + | find_call(self, with_helpers=False) -> minsn_t | Find a call instruction. Check for the current instruction and its | subinstructions. | - | find_call(self, with_helpers=False) -> minsn_t - | @param with_helpers: consider helper calls as well? (C++: bool) + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) -> 'minsn_t *' - | Find an operand that is a subinsruction with the specified opcode. - | This function checks only the 'l' and 'r' operands of the current - | insn. - | | find_ins_op(self, op=m_nop) -> minsn_t - | @param op: opcode to search for (C++: mcode_t) - | @return: &l or &r or NULL + | + | @param op: enum mcode_t | | find_num_op(self, *args) -> 'mop_t *' - | Find a numeric operand of the current instruction. This function - | checks only the 'l' and 'r' operands of the current insn. + | find_num_op(self) -> mop_t | | find_opcode(self, *args) -> 'minsn_t *' - | Find a (sub)insruction with the specified opcode. - | | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) | - | - | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: enum mcode_t | | for_all_insns(self, *args) -> 'int' - | Visit all instructions. This function visits the instruction itself - | and all its subinstructions. - | | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' - | Visit all instruction operands. This function visits subinstruction - | operands as well. - | | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) -> 'funcrole_t' + | get_role(self) -> funcrole_t | Get the function role of a call. | | get_split_size(self, *args) -> 'int' | get_split_size(self) -> int | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Does the instruction have a side effect? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? stx is always considered as - | having side effects. Apart from ldx/std - | only call may have side effects. (C++: - | bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) -> 'bool' + | is_after(self, m) -> bool | Is the instruction after the specified one? | - | is_after(self, m) -> bool - | @param m: the instruction to compare against in the list (C++: const - | minsn_t *) + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -31856,15 +32612,13 @@ class minsn_t(builtins.object) | is_assert(self) -> bool | | is_between(self, *args) -> 'bool' + | is_between(self, m1, m2) -> bool | Is the instruction in the specified range of instructions? | - | is_between(self, m1, m2) -> bool - | @param m1: beginning of the range in the doubly linked list (C++: - | const minsn_t *) - | @param m2: end of the range in the doubly linked list (excluded, may - | be NULL) This function assumes that m1 and m2 belong to the - | same basic block and they are top level instructions. (C++: - | const minsn_t *) + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -31888,13 +32642,12 @@ class minsn_t(builtins.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) -> 'bool' - | Is a helper call with the specified name? Helper calls usually have - | well-known function names (see 'Well known function names' ) but they - | may have any other name. The decompiler does not assume any special - | meaning for non-well-known names. - | | is_helper(self, name) -> bool - | @param name (C++: const char *) + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -31921,10 +32674,11 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' + | is_noret_call(self, flags=0) -> bool | Is a non-returing call? | - | is_noret_call(self, flags=0) -> bool - | @param flags (C++: int) + | @param ignore_noret_icall: if set, indirect calls to noret functions will return + | false | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -31942,49 +32696,52 @@ class minsn_t(builtins.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool | Is an unknown call? Unknown calls are calls without the argument list - | ( 'mcallinfo_t' ). Usually the argument lists are determined by - | 'mba_t::analyze_calls()' . Unknown calls exist until the MMAT_CALLS - | maturity level. See also mblock_t::is_call_block + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) -> 'bool' | is_wild_match(self) -> bool | | lexcompare(self, *args) -> 'int' | lexcompare(self, ri) -> int - | @param ri (C++: const minsn_t &) + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) -> 'bool' - | Does the instruction modify its 'd' operand? Some instructions (e.g. - | m_stx) do not modify the 'd' operand. + | modifes_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) -> 'bool' | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) -> 'int' - | Optimize one instruction without context. This function does not have - | access to the instruction context (the previous and next instructions - | in the list, the block number, etc). It performs only basic - | optimizations that are available without this info. - | | optimize_solo(self, optflags=0) -> int - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes, 0-unchanged See also - | mblock_t::optimize_insn() + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int | Optimize instruction in its context. Do not use this function, use | mblock_t::optimize() | - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | @param blk (C++: mblock_t *) - | @param top (C++: minsn_t *) - | @param parent (C++: minsn_t *) - | @param converted_call (C++: ea_t *) - | @param optflags (C++: int) + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | @@ -32029,7 +32786,8 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) - | @param s (C++: int) + | + | @param s: int | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) @@ -32038,18 +32796,17 @@ class minsn_t(builtins.object) | set_wild_match(self) | | setaddr(self, *args) -> 'void' - | Change the instruction address. This function modifies subinstructions - | as well. - | | setaddr(self, new_ea) - | @param new_ea (C++: ea_t) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) -> 'void' - | Swap two instructions. The prev/next fields are not modified by this - | function because it would corrupt the doubly linked list. - | | swap(self, m) - | @param m (C++: minsn_t &) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -32067,33 +32824,33 @@ class minsn_t(builtins.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -32114,9 +32871,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -32142,16 +32900,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -32164,7 +32922,8 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32173,7 +32932,8 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int - | @param op (C++: mop_t *) + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32185,19 +32945,19 @@ class mlist_mop_visitor_t(builtins.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins Help on class mlist_t in module ida_hexrays: @@ -32208,36 +32968,44 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | ivl: ivl_t const & + | __init__(self, ivl) -> mlist_t | + | @param ivl: ivl_t const & | | __init__(self, r, size) -> mlist_t - | r: mreg_t - | size: int + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -32249,32 +33017,35 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | add(self, r) -> bool - | @param r (C++: mreg_t) | + | @param r: rlist_t const & | | add(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | add(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool - | @param ea (C++: ea_t) - | @param size (C++: asize_t) + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mlist_t const & + | + | @param r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -32287,53 +33058,62 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool - | @param r (C++: mreg_t) + | + | @param r: mreg_t | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | sub(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | sub(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: mlist_t &) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32345,10 +33125,10 @@ class mlist_t(builtins.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -32372,33 +33152,40 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | v: uint64 - | _ea: ea_t - | n: int + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -32407,23 +33194,25 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) - | @param val64 (C++: uint64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32440,33 +33229,31 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' + modify_user_lvar_info(func_ea, mli_flags, info) -> bool Modify saved local variable settings of one variable. - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - @param func_ea: function start address (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) -> 'bool' + modify_user_lvars(entry_ea, mlv) -> bool Modify saved local variable settings. - modify_user_lvars(entry_ea, mlv) -> bool - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -32482,13 +33269,15 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | ra: mop_addr_t const & + | __init__(self, ra) -> mop_addr_t | + | @param ra: mop_addr_t const & | | __init__(self, ra, isz, osz) -> mop_addr_t - | ra: mop_t const & - | isz: int - | osz: int + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | @@ -32497,16 +33286,17 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int - | @param ra (C++: const mop_addr_t &) + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -32516,15 +33306,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -32537,6 +33330,8 @@ class mop_addr_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -32586,90 +33381,84 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -32688,170 +33477,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -32860,11 +33696,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -32873,122 +33709,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -33003,29 +33839,32 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -33038,136 +33877,131 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -33187,36 +34021,37 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -33258,7 +34093,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -33269,13 +34104,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -33307,10 +34142,10 @@ class mop_pair_t(builtins.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -33324,24 +34159,29 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | rop: mop_t const & + | __init__(self, rop) -> mop_t | + | @param rop: mop_t const & | | __init__(self, _r, _s) -> mop_t - | _r: mreg_t - | _s: int + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -33359,6 +34199,8 @@ class mop_t(builtins.object) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -33408,90 +34250,84 @@ class mop_t(builtins.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -33510,170 +34346,217 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -33682,11 +34565,11 @@ class mop_t(builtins.object) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -33695,122 +34578,122 @@ class mop_t(builtins.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -33825,29 +34708,32 @@ class mop_t(builtins.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -33860,140 +34746,136 @@ class mop_t(builtins.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -34013,36 +34895,37 @@ class mop_t(builtins.object) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -34084,7 +34967,7 @@ class mop_t(builtins.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -34095,7 +34978,7 @@ class mop_t(builtins.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -34104,7 +34987,7 @@ class mop_t(builtins.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34127,9 +35010,10 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34138,15 +35022,16 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int - | @param op (C++: mop_t *) - | @param type (C++: const tinfo_t *) - | @param is_target (C++: bool) + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -34161,16 +35046,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -34181,15 +35066,19 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | x: qvector< mop_t > const & + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34199,36 +35088,42 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: mop_t const & + | + | @param i: size_t + | @param v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: mop_t const & + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mop_t >::const_iterator' | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -34241,78 +35136,85 @@ class mopvec_t(builtins.object) | | end(self, *args) -> 'qvector< mop_t >::const_iterator' | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t - | it: qvector< mop_t >::iterator | + | @param it: qvector< mop_t >::iterator | | erase(self, first, last) -> mop_t - | first: qvector< mop_t >::iterator - | last: qvector< mop_t >::iterator + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) -> 'mop_t *' | extract(self) -> mop_t | | find(self, *args) -> 'qvector< mop_t >::const_iterator' | find(self, x) -> mop_t - | x: mop_t const & | - | - | find(self, x) -> mop_t - | x: mop_t const & + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) - | x: mop_t const & + | + | @param x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: mop_t * - | len: size_t + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t - | it: qvector< mop_t >::iterator - | x: mop_t const & + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) - | x: mop_t const & + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: mop_t const & | + | @param _newsize: size_t + | @param x: mop_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< mop_t > & + | + | @param r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -34337,45 +35239,46 @@ class mopvec_t(builtins.object) Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) -> 'int' + mreg2reg(reg, width) -> int Map a microregister to a processor register. - mreg2reg(reg, width) -> int - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) -> 'bool' - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - must_mcode_close_block(mcode, including_calls) -> bool - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case: unknown - calls (is_unknown_call) are considered as - closing opcodes. (C++: bool) + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) -> 'ctype_t' + negated_relation(op) -> ctype_t Negate a comparison operator. For example, cot_sge becomes cot_slt. - negated_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -34386,7 +35289,8 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t - | _opnum: int + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | @@ -34394,39 +35298,51 @@ class number_format_t(builtins.object) | delete_number_format_t(self) | | get_radix(self, *args) -> 'int' + | get_radix(self) -> int | Get number radix + | + | @return: 2,8,10, or 16 | | has_unmutable_type(self, *args) -> 'bool' | has_unmutable_type(self) -> bool | | is_char(self, *args) -> 'bool' + | is_char(self) -> bool | Is a character constant? | | is_dec(self, *args) -> 'bool' + | is_dec(self) -> bool | Is a decimal number? | | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool | Is a symbolic constant? | | is_fixed(self, *args) -> 'bool' - | Is number representation fixed? Fixed representation cannot be - | modified by the decompiler + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool | Is a hexadecimal number? | | is_numop(self, *args) -> 'bool' + | is_numop(self) -> bool | Is a number? | | is_oct(self, *args) -> 'bool' + | is_oct(self) -> bool | Is a octal number? | | is_stroff(self, *args) -> 'bool' + | is_stroff(self) -> bool | Is a structure field offset? | | needs_to_be_inverted(self, *args) -> 'bool' - | Does the number need to be negated or bitwise negated? Returns true if - | the user requested a negation but it is not done yet + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34438,25 +35354,25 @@ class number_format_t(builtins.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name Help on class op_parent_info_t in module ida_hexrays: @@ -34467,9 +35383,10 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34486,54 +35403,54 @@ class op_parent_info_t(builtins.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) -> 'bool' - Does operator use the 'x' field of 'cexpr_t' ? - op_uses_x(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) -> 'bool' - Does operator use the 'y' field of 'cexpr_t' ? - op_uses_y(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) -> 'bool' - Does operator use the 'z' field of 'cexpr_t' ? - op_uses_z(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) -> 'vdui_t *' - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - open_pseudocode(ea, flags) -> vdui_t - @param ea: function to decompile (C++: ea_t) - @param flags: a combination of OPF_ flags (C++: int) - @return: false if failed + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -34544,32 +35461,39 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t - | _ea: ea_t - | _opnum: int + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -34578,7 +35502,8 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34590,10 +35515,10 @@ class operand_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -34614,7 +35539,8 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -34622,16 +35548,14 @@ class optblock_t(builtins.object) | delete_optblock_t(self) | | func(self, *args) -> 'int' - | Optimize a block. This function usually performs the optimizations - | that require analyzing the entire block and/or its neighbors. For - | example it can recognize patterns and perform conversions like: b0: - | b0: ... ... jnz x, 0, @b2 => jnz x, 0, @b2 b1: b1: add x, 0, y mov x, - | y ... ... - | | func(self, blk) -> int - | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) - | @return: number of changes made to the block. See also - | mark_lists_dirty. + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -34662,7 +35586,8 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -34670,26 +35595,23 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' + | func(self, blk, ins, optflags) -> int | Optimize an instruction. | - | func(self, blk, ins, optflags) -> int - | @param blk: current basic block. maybe NULL, which means that the - | instruction must be optimized without context (C++: - | mblock_t *) - | @param ins: instruction to optimize; it is always a top-level - | instruction. the callback may not delete the instruction - | but may convert it into nop (see mblock_t::make_nop ). to - | optimize sub-instructions, visit them using - | minsn_visitor_t . sub-instructions may not be converted - | into nop but can be converted to "mov x,x". for example: - | add x,0,x => mov x,x this callback may change other - | instructions in the block, but should do this with care, - | e.g. to no break the propagation algorithm if called with - | OPTI_NO_LDXOPT. (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the instruction. if after this call - | the instruction's use/def lists have changed, you must mark - | the block level lists as dirty (see mark_lists_dirty) + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) -> 'void' | install(self) @@ -34712,232 +35634,38 @@ class optinsn_t(builtins.object) Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) -> 'bool' + parse_user_call(udc, decl, silent) -> bool Convert function type declaration into internal structure - parse_user_call(udc, decl, silent) -> bool - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) -> 'int' + partial_type_num(type) -> int Calculate number of partial subtypes. - partial_type_num(type) -> int - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) -> 'qstring *' - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - print_vdloc(loc, nbytes) - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(builtins.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __getitem__(self, *args) -> 'cinsn_t const &' - | __getitem__(self, i) -> cinsn_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | x: qlist< cinsn_t > const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | __swig_destroy__ = delete_qlist_cinsn_t(...) - | delete_qlist_cinsn_t(self) - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) -> 'void' - | clear(self) - | - | empty(self, *args) -> 'bool' - | empty(self) -> bool - | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | - | erase(self, p) - | p: qlist_cinsn_t_iterator - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | insert(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & - | - | pop_back(self, *args) -> 'void' - | pop_back(self) - | - | pop_front(self, *args) -> 'void' - | pop_front(self) - | - | push_back(self, *args) -> 'cinsn_t &' - | push_back(self, x) - | x: cinsn_t const & - | - | push_front(self, *args) -> 'void' - | push_front(self, x) - | x: cinsn_t const & - | - | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) -> 'bool' - | remove(self, v) -> bool - | v: cinsn_t const & - | - | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) -> 'size_t' - | size(self) -> size_t - | - | swap(self, *args) -> 'void' - | swap(self, x) - | x: qlist< cinsn_t > & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(builtins.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __next__(self, *args) -> 'void' - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_qlist_cinsn_t_iterator(...) - | delete_qlist_cinsn_t_iterator(self) - | - | next = __next__(self, *args) -> 'void' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -34953,15 +35681,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t - | f: cfunc_t const * - | tags: bool + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -34975,7 +35707,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -34986,16 +35718,19 @@ class qstring_printer_t(vc_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -35007,17 +35742,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) - a: cinsn_t & - b: cinsn_t & + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -35028,15 +35764,19 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | x: qvector< carg_t > const & + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35045,25 +35785,31 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -35074,7 +35820,6 @@ class qvector_carg_t(builtins.object) | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35087,78 +35832,85 @@ class qvector_carg_t(builtins.object) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35189,15 +35941,19 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | x: qvector< ccase_t > const & + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35206,25 +35962,31 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -35235,7 +35997,6 @@ class qvector_ccase_t(builtins.object) | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35248,78 +36009,85 @@ class qvector_ccase_t(builtins.object) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35350,15 +36118,19 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | x: qvector< history_item_t > const & + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35368,36 +36140,42 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35410,78 +36188,85 @@ class qvector_history_t(builtins.object) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35512,15 +36297,19 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | x: qvector< lvar_t > const & + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35529,25 +36318,31 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -35558,7 +36353,6 @@ class qvector_lvar_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35571,78 +36365,85 @@ class qvector_lvar_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t | | find(self, *args) -> 'qvector< lvar_t >::const_iterator' | find(self, x) -> lvar_t - | x: lvar_t const & | - | - | find(self, x) -> lvar_t - | x: lvar_t const & + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35667,113 +36468,116 @@ class qvector_lvar_t(builtins.object) Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) -> 'mreg_t' + reg2mreg(reg) -> mreg_t Map a processor register to a microregister. - reg2mreg(reg) -> mreg_t - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) - @param e (C++: const citem_t *) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. Help on function rename_lvar in module ida_hexrays: rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool Rename a local variable. - rename_lvar(func_ea, oldname, newname) -> bool - @param func_ea: function start address (C++: ea_t) - @param oldname: old name of the variable (C++: const char *) - @param newname: new name of the variable (C++: const char *) - @return: success This is a convenience function. For bulk renaming - consider using modify_user_lvars. + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) -> 'user_cmts_t *' + restore_user_cmts(func_ea) -> user_cmts_t Restore user defined comments from the database. - restore_user_cmts(func_ea) -> user_cmts_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) -> 'bool' + restore_user_defined_calls(udcalls, func_ea) -> bool Restore user defined function calls from the database. - restore_user_defined_calls(udcalls, func_ea) -> bool - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) -> 'user_iflags_t *' + restore_user_iflags(func_ea) -> user_iflags_t Restore user defined citem iflags from the database. - restore_user_iflags(func_ea) -> user_iflags_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) -> 'user_labels_t *' + restore_user_labels(func_ea) -> user_labels_t Restore user defined labels from the database. - restore_user_labels(func_ea) -> user_labels_t - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() Help on function restore_user_labels2 in module ida_hexrays: restore_user_labels2(*args) -> 'user_labels_t *' restore_user_labels2(func_ea, func=None) -> user_labels_t - @param func_ea (C++: ea_t) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) -> 'bool' + restore_user_lvar_settings(lvinf, func_ea) -> bool Restore user defined local variable settings in the database. - restore_user_lvar_settings(lvinf, func_ea) -> bool - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) -> 'user_numforms_t *' + restore_user_numforms(func_ea) -> user_numforms_t Restore user defined number formats from the database. - restore_user_numforms(func_ea) -> user_numforms_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) -> 'user_unions_t *' + restore_user_unions(func_ea) -> user_unions_t Restore user defined union field selections from the database. - restore_user_unions(func_ea) -> user_unions_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -35789,12 +36593,14 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | m: rlist_t const & + | __init__(self, m) -> rlist_t | + | @param m: rlist_t const & | | __init__(self, reg, width) -> rlist_t - | reg: mreg_t - | width: int + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -35815,46 +36621,55 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int @@ -35867,19 +36682,24 @@ class rlist_t(bitset_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -35889,77 +36709,91 @@ class rlist_t(bitset_t) | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -35978,81 +36812,74 @@ class rlist_t(bitset_t) Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) -> 'void' + save_user_cmts(func_ea, user_cmts) Save user defined comments into the database. - save_user_cmts(func_ea, user_cmts) - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) -> 'void' + save_user_defined_calls(func_ea, udcalls) Save user defined local function calls into the database. - save_user_defined_calls(func_ea, udcalls) - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) -> 'void' + save_user_iflags(func_ea, iflags) Save user defined citem iflags into the database. - save_user_iflags(func_ea, iflags) - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) -> 'void' + save_user_labels(func_ea, user_labels) Save user defined labels into the database. - save_user_labels(func_ea, user_labels) - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels Help on function save_user_labels2 in module ida_hexrays: save_user_labels2(*args) -> 'void' save_user_labels2(func_ea, user_labels, func=None) - @param func_ea (C++: ea_t) - @param user_labels (C++: const user_labels_t *) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) -> 'void' + save_user_lvar_settings(func_ea, lvinf) Save user defined local variable settings into the database. - save_user_lvar_settings(func_ea, lvinf) - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) -> 'void' + save_user_numforms(func_ea, numforms) Save user defined number formats into the database. - save_user_numforms(func_ea, numforms) - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) -> 'void' + save_user_unions(func_ea, unions) Save user defined union field selections into the database. - save_user_unions(func_ea, unions) - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -36069,9 +36896,10 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, tif, n=None) -> scif_t - | _mba: mba_t * - | tif: tinfo_t * - | n: qstring * + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -36082,63 +36910,75 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mba_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from vdloc_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -36149,191 +36989,221 @@ class scif_t(vdloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -36355,7 +37225,8 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36364,8 +37235,9 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int - | @param r (C++: const mop_t &) - | @param off (C++: int) + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36382,48 +37254,46 @@ class scif_visitor_t(builtins.object) Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) -> 'int' + select_udt_by_offset(udts, ops, applicator) -> int Select UDT - select_udt_by_offset(udts, ops, applicator) -> int - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) Help on function send_database in module ida_hexrays: send_database(*args) -> 'void' - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - send_database(err, silent) - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) -> 'mcode_t' set2jcnd(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) -> 'bool' + set_type(id, tif, source, force=False) -> bool Set a global type. - set_type(id, tif, source, force=False) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success Help on class simple_graph_t in module ida_hexrays: @@ -36439,7 +37309,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36447,13 +37318,13 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | Data descriptors defined here: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -36468,9 +37339,10 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -36483,7 +37355,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -36493,65 +37366,77 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -36571,32 +37456,39 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t - | m: mba_t * - | o: sval_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -36605,19 +37497,20 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off=None) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off=None) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: stkvar_ref_t &) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36629,10 +37522,10 @@ class stkvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -36646,19 +37539,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) -> 'ctype_t' + swapped_relation(op) -> ctype_t Swap a comparison operator. For example, cot_sge becomes cot_sle. - swapped_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) -> 'void' + term_hexrays_plugin() Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -36670,14 +37565,16 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -36694,10 +37591,10 @@ class treeloc_t(builtins.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -36723,7 +37620,8 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36731,26 +37629,35 @@ class udc_filter_t(microcode_filter_t) | delete_udc_filter_t(self) | | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | init(self, *args) -> 'bool' | init(self, decl) -> bool - | @param decl (C++: const char *) + | + | @param decl: char const * | | install(self, *args) -> 'void' | install(self) | | match(self, *args) -> 'bool' + | match(self, cdg) -> bool | return true if the filter object should be appied to given instruction | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) + | @param cdg: (C++: codegen_t &) | | remove(self, *args) -> 'bool' | remove(self) -> bool @@ -36773,70 +37680,70 @@ class udc_filter_t(microcode_filter_t) Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) -> 'udcall_map_iterator_t' + udcall_map_begin(map) -> udcall_map_iterator_t Get iterator pointing to the beginning of udcall_map_t. - udcall_map_begin(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) -> 'void' + udcall_map_clear(map) Clear udcall_map_t. - udcall_map_clear(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) -> 'udcall_map_iterator_t' + udcall_map_end(map) -> udcall_map_iterator_t Get iterator pointing to the end of udcall_map_t. - udcall_map_end(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) -> 'void' + udcall_map_erase(map, p) Erase current element from udcall_map_t. - udcall_map_erase(map, p) - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) -> 'udcall_map_iterator_t' + udcall_map_find(map, key) -> udcall_map_iterator_t Find the specified key in udcall_map_t. - udcall_map_find(map, key) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) -> 'ea_t const &' + udcall_map_first(p) -> ea_t const & Get reference to the current map key. - udcall_map_first(p) -> ea_t const & - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) -> 'void' + udcall_map_free(map) Delete udcall_map_t instance. - udcall_map_free(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) -> 'udcall_map_iterator_t' - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -36847,14 +37754,16 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -36874,7 +37783,7 @@ class udcall_map_iterator_t(builtins.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36884,39 +37793,40 @@ class udcall_map_iterator_t(builtins.object) Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) -> 'udcall_map_t *' + udcall_map_new() -> udcall_map_t * Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) -> 'udcall_map_iterator_t' + udcall_map_next(p) -> udcall_map_iterator_t Move to the next element. - udcall_map_next(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) -> 'udcall_map_iterator_t' + udcall_map_prev(p) -> udcall_map_iterator_t Move to the previous element. - udcall_map_prev(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) -> 'udcall_t &' + udcall_map_second(p) -> udcall_t Get reference to the current map value. - udcall_map_second(p) -> udcall_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) -> 'size_t' + udcall_map_size(map) -> size_t Get size of udcall_map_t. - udcall_map_size(map) -> size_t - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -36927,30 +37837,36 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -36959,7 +37875,11 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: udcall_t const & + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36971,13 +37891,13 @@ class udcall_t(builtins.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36995,7 +37915,8 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -37004,12 +37925,11 @@ class ui_stroff_applicator_t(builtins.object) | | apply(self, *args) -> 'bool' | apply(self, opnum, path, top_tif, spath) -> bool - | @param opnum: operand ordinal number, see below (C++: size_t) - | @param path: path describing the union selection, maybe empty (C++: - | const intvec_t &) - | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const - | tinfo_t &) - | @param spath: selected path (C++: const char *) + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -37032,14 +37952,16 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -37056,10 +37978,10 @@ class ui_stroff_op_t(builtins.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -37078,15 +38000,19 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | x: qvector< ui_stroff_op_t > const & + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -37095,25 +38021,31 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ui_stroff_op_t const & + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | __swig_destroy__ = delete_ui_stroff_ops_t(...) | delete_ui_stroff_ops_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ui_stroff_op_t const & + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -37124,7 +38056,6 @@ class ui_stroff_ops_t(builtins.object) | | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -37137,78 +38068,85 @@ class ui_stroff_ops_t(builtins.object) | | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator | + | @param it: qvector< ui_stroff_op_t >::iterator | | erase(self, first, last) -> ui_stroff_op_t - | first: qvector< ui_stroff_op_t >::iterator - | last: qvector< ui_stroff_op_t >::iterator + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) -> 'ui_stroff_op_t *' | extract(self) -> ui_stroff_op_t | | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & | - | - | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ui_stroff_op_t * - | len: size_t + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator - | x: ui_stroff_op_t const & + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ui_stroff_op_t &' | push_back(self, x) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ui_stroff_op_t const & | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ui_stroff_op_t > & + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -37233,70 +38171,70 @@ class ui_stroff_ops_t(builtins.object) Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) -> 'user_cmts_iterator_t' + user_cmts_begin(map) -> user_cmts_iterator_t Get iterator pointing to the beginning of user_cmts_t. - user_cmts_begin(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) -> 'void' + user_cmts_clear(map) Clear user_cmts_t. - user_cmts_clear(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) -> 'user_cmts_iterator_t' + user_cmts_end(map) -> user_cmts_iterator_t Get iterator pointing to the end of user_cmts_t. - user_cmts_end(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) -> 'void' + user_cmts_erase(map, p) Erase current element from user_cmts_t. - user_cmts_erase(map, p) - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) -> 'user_cmts_iterator_t' + user_cmts_find(map, key) -> user_cmts_iterator_t Find the specified key in user_cmts_t. - user_cmts_find(map, key) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) -> 'treeloc_t const &' + user_cmts_first(p) -> treeloc_t Get reference to the current map key. - user_cmts_first(p) -> treeloc_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) -> 'void' + user_cmts_free(map) Delete user_cmts_t instance. - user_cmts_free(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) -> 'user_cmts_iterator_t' - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -37307,14 +38245,16 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37334,7 +38274,7 @@ class user_cmts_iterator_t(builtins.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37344,39 +38284,40 @@ class user_cmts_iterator_t(builtins.object) Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) -> 'user_cmts_t *' + user_cmts_new() -> user_cmts_t Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) -> 'user_cmts_iterator_t' + user_cmts_next(p) -> user_cmts_iterator_t Move to the next element. - user_cmts_next(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) -> 'user_cmts_iterator_t' + user_cmts_prev(p) -> user_cmts_iterator_t Move to the previous element. - user_cmts_prev(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) -> 'citem_cmt_t &' + user_cmts_second(p) -> citem_cmt_t Get reference to the current map value. - user_cmts_second(p) -> citem_cmt_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) -> 'size_t' + user_cmts_size(map) -> size_t Get size of user_cmts_t. - user_cmts_size(map) -> size_t - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -37487,7 +38428,8 @@ class user_cmts_t(builtins.object) | | at(self, *args) -> 'citem_cmt_t &' | at(self, _Keyval) -> citem_cmt_t - | _Keyval: treeloc_t const & + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -37560,70 +38502,70 @@ class user_cmts_t(builtins.object) Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) -> 'user_iflags_iterator_t' + user_iflags_begin(map) -> user_iflags_iterator_t Get iterator pointing to the beginning of user_iflags_t. - user_iflags_begin(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) -> 'void' + user_iflags_clear(map) Clear user_iflags_t. - user_iflags_clear(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) -> 'user_iflags_iterator_t' + user_iflags_end(map) -> user_iflags_iterator_t Get iterator pointing to the end of user_iflags_t. - user_iflags_end(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) -> 'void' + user_iflags_erase(map, p) Erase current element from user_iflags_t. - user_iflags_erase(map, p) - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) -> 'user_iflags_iterator_t' + user_iflags_find(map, key) -> user_iflags_iterator_t Find the specified key in user_iflags_t. - user_iflags_find(map, key) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) -> 'citem_locator_t const &' + user_iflags_first(p) -> citem_locator_t Get reference to the current map key. - user_iflags_first(p) -> citem_locator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) -> 'void' + user_iflags_free(map) Delete user_iflags_t instance. - user_iflags_free(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) -> 'user_iflags_iterator_t' - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -37634,14 +38576,16 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37661,7 +38605,7 @@ class user_iflags_iterator_t(builtins.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37671,39 +38615,40 @@ class user_iflags_iterator_t(builtins.object) Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) -> 'user_iflags_t *' + user_iflags_new() -> user_iflags_t Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) -> 'user_iflags_iterator_t' + user_iflags_next(p) -> user_iflags_iterator_t Move to the next element. - user_iflags_next(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) -> 'user_iflags_iterator_t' + user_iflags_prev(p) -> user_iflags_iterator_t Move to the previous element. - user_iflags_prev(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) -> 'int32 const &' + user_iflags_second(p) -> int32 const & Get reference to the current map value. - user_iflags_second(p) -> int32 const & - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) -> 'size_t' + user_iflags_size(map) -> size_t Get size of user_iflags_t. - user_iflags_size(map) -> size_t - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -37814,7 +38759,8 @@ class user_iflags_t(builtins.object) | | at(self, *args) -> 'int &' | at(self, _Keyval) -> int & - | _Keyval: citem_locator_t const & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -37900,70 +38846,70 @@ class user_iflags_t(builtins.object) Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) -> 'user_labels_iterator_t' + user_labels_begin(map) -> user_labels_iterator_t Get iterator pointing to the beginning of user_labels_t. - user_labels_begin(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) -> 'void' + user_labels_clear(map) Clear user_labels_t. - user_labels_clear(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) -> 'user_labels_iterator_t' + user_labels_end(map) -> user_labels_iterator_t Get iterator pointing to the end of user_labels_t. - user_labels_end(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) -> 'void' + user_labels_erase(map, p) Erase current element from user_labels_t. - user_labels_erase(map, p) - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) -> 'user_labels_iterator_t' + user_labels_find(map, key) -> user_labels_iterator_t Find the specified key in user_labels_t. - user_labels_find(map, key) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) -> 'int const &' + user_labels_first(p) -> int const & Get reference to the current map key. - user_labels_first(p) -> int const & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) -> 'void' + user_labels_free(map) Delete user_labels_t instance. - user_labels_free(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) -> 'user_labels_iterator_t' + user_labels_insert(map, key, val) -> user_labels_iterator_t Insert new (int, qstring) pair into user_labels_t. - user_labels_insert(map, key, val) -> user_labels_iterator_t - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -37974,14 +38920,16 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38001,7 +38949,7 @@ class user_labels_iterator_t(builtins.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38011,39 +38959,40 @@ class user_labels_iterator_t(builtins.object) Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) -> 'user_labels_t *' + user_labels_new() -> user_labels_t Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) -> 'user_labels_iterator_t' + user_labels_next(p) -> user_labels_iterator_t Move to the next element. - user_labels_next(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) -> 'user_labels_iterator_t' + user_labels_prev(p) -> user_labels_iterator_t Move to the previous element. - user_labels_prev(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) -> 'qstring &' + user_labels_second(p) -> qstring & Get reference to the current map value. - user_labels_second(p) -> qstring & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) -> 'size_t' + user_labels_size(map) -> size_t Get size of user_labels_t. - user_labels_size(map) -> size_t - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -38062,7 +39011,8 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & - | _Keyval: int const & + | + | @param _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -38090,7 +39040,8 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -38098,10 +39049,10 @@ class user_lvar_modifier_t(builtins.object) | delete_user_lvar_modifier_t(self) | | modify_lvars(self, *args) -> 'bool' + | modify_lvars(self, lvinf) -> bool | Modify lvar settings. Returns: true-modified | - | modify_lvars(self, lvinf) -> bool - | @param lvinf (C++: lvar_uservec_t *) + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38118,71 +39069,70 @@ class user_lvar_modifier_t(builtins.object) Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) -> 'user_numforms_iterator_t' + user_numforms_begin(map) -> user_numforms_iterator_t Get iterator pointing to the beginning of user_numforms_t. - user_numforms_begin(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) -> 'void' + user_numforms_clear(map) Clear user_numforms_t. - user_numforms_clear(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) -> 'user_numforms_iterator_t' + user_numforms_end(map) -> user_numforms_iterator_t Get iterator pointing to the end of user_numforms_t. - user_numforms_end(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) -> 'void' + user_numforms_erase(map, p) Erase current element from user_numforms_t. - user_numforms_erase(map, p) - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) -> 'user_numforms_iterator_t' + user_numforms_find(map, key) -> user_numforms_iterator_t Find the specified key in user_numforms_t. - user_numforms_find(map, key) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) -> 'operand_locator_t const &' + user_numforms_first(p) -> operand_locator_t Get reference to the current map key. - user_numforms_first(p) -> operand_locator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) -> 'void' + user_numforms_free(map) Delete user_numforms_t instance. - user_numforms_free(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) -> 'user_numforms_iterator_t' - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -38193,14 +39143,16 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38220,7 +39172,7 @@ class user_numforms_iterator_t(builtins.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38230,39 +39182,40 @@ class user_numforms_iterator_t(builtins.object) Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) -> 'user_numforms_t *' + user_numforms_new() -> user_numforms_t Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) -> 'user_numforms_iterator_t' + user_numforms_next(p) -> user_numforms_iterator_t Move to the next element. - user_numforms_next(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) -> 'user_numforms_iterator_t' + user_numforms_prev(p) -> user_numforms_iterator_t Move to the previous element. - user_numforms_prev(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) -> 'number_format_t &' + user_numforms_second(p) -> number_format_t Get reference to the current map value. - user_numforms_second(p) -> number_format_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) -> 'size_t' + user_numforms_size(map) -> size_t Get size of user_numforms_t. - user_numforms_size(map) -> size_t - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -38373,7 +39326,8 @@ class user_numforms_t(builtins.object) | | at(self, *args) -> 'number_format_t &' | at(self, _Keyval) -> number_format_t - | _Keyval: operand_locator_t const & + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -38446,70 +39400,70 @@ class user_numforms_t(builtins.object) Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) -> 'user_unions_iterator_t' + user_unions_begin(map) -> user_unions_iterator_t Get iterator pointing to the beginning of user_unions_t. - user_unions_begin(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) -> 'void' + user_unions_clear(map) Clear user_unions_t. - user_unions_clear(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) -> 'user_unions_iterator_t' + user_unions_end(map) -> user_unions_iterator_t Get iterator pointing to the end of user_unions_t. - user_unions_end(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) -> 'void' + user_unions_erase(map, p) Erase current element from user_unions_t. - user_unions_erase(map, p) - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) -> 'user_unions_iterator_t' + user_unions_find(map, key) -> user_unions_iterator_t Find the specified key in user_unions_t. - user_unions_find(map, key) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) -> 'ea_t const &' + user_unions_first(p) -> ea_t const & Get reference to the current map key. - user_unions_first(p) -> ea_t const & - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) -> 'void' + user_unions_free(map) Delete user_unions_t instance. - user_unions_free(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) -> 'user_unions_iterator_t' + user_unions_insert(map, key, val) -> user_unions_iterator_t Insert new (ea_t, intvec_t) pair into user_unions_t. - user_unions_insert(map, key, val) -> user_unions_iterator_t - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -38520,14 +39474,16 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38547,7 +39503,7 @@ class user_unions_iterator_t(builtins.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38557,39 +39513,40 @@ class user_unions_iterator_t(builtins.object) Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) -> 'user_unions_t *' + user_unions_new() -> user_unions_t Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) -> 'user_unions_iterator_t' + user_unions_next(p) -> user_unions_iterator_t Move to the next element. - user_unions_next(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) -> 'user_unions_iterator_t' + user_unions_prev(p) -> user_unions_iterator_t Move to the previous element. - user_unions_prev(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) -> 'intvec_t &' + user_unions_second(p) -> intvec_t Get reference to the current map value. - user_unions_second(p) -> intvec_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) -> 'size_t' + user_unions_size(map) -> size_t Get size of user_unions_t. - user_unions_size(map) -> size_t - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -38700,7 +39657,8 @@ class user_unions_t(builtins.object) | | at(self, *args) -> 'qvector< int > &' | at(self, _Keyval) -> intvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -38778,15 +39736,19 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -38812,7 +39774,8 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -38828,11 +39791,14 @@ class uval_ivl_ivlset_t(builtins.object) | | single_value(self, *args) -> 'bool' | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38860,8 +39826,9 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t - | _off: unsigned-ea-like-numeric-type↗ - | _size: unsigned-ea-like-numeric-type↗ + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -38887,10 +39854,10 @@ class uval_ivl_t(builtins.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -38904,35 +39871,42 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | size_: int | + | @param size_: int | | __init__(self, r) -> valrng_t - | r: valrng_t const & + | + | @param r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -38953,11 +39927,13 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: valrng_t const & + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool - | @param strict (C++: bool) + | + | @param strict: bool | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -38973,11 +39949,13 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | inverse(self, *args) -> 'void' | inverse(self) @@ -38987,31 +39965,43 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_value(self) -> uvlr_t | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool - | @param new_size (C++: int) + | + | @param new_size: int | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) - | @param cmp (C++: cmpop_t) - | @param _value (C++: uvlr_t) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) -> 'void' | set_eq(self, v) - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | set_none(self, *args) -> 'void' | set_none(self) @@ -39021,11 +40011,13 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: valrng_t &) + | + | @param r: valrng_t & | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39053,30 +40045,36 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -39085,7 +40083,8 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | getv(self, *args) -> 'lvar_t &' | getv(self) -> lvar_t @@ -39100,10 +40099,10 @@ class var_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -39129,7 +40128,8 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t - | f: cfunc_t const * + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -39137,16 +40137,19 @@ class vc_printer_t(vd_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -39156,8 +40159,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -39169,10 +40175,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -39183,19 +40189,21 @@ class vd_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, code, ea, buf=None) -> vd_failure_t | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, code, ea, buf) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: qstring const & | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __init__(self, _hf) -> vd_failure_t - | _hf: hexrays_failure_t const & + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -39215,7 +40223,7 @@ class vd_failure_t(builtins.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -39234,8 +40242,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t - | ea: ea_t - | buf: char const * + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -39264,7 +40273,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -39277,7 +40286,8 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -39286,8 +40296,11 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39299,13 +40312,13 @@ class vd_printer_t(builtins.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vdloc_t in module ida_hexrays: @@ -39321,30 +40334,36 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -39353,23 +40372,29 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39386,191 +40411,221 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -39597,321 +40652,344 @@ class vdui_t(builtins.object) | delete_vdui_t(self) | | calc_cmt_type(self, *args) -> 'cmt_type_t' - | Check if the specified line can have a comment. Due to the coordinate - | system for comments: (https://www.hex-rays.com/blog/coordinate-system- - | for-hex-rays) some function lines cannot have comments. This function - | checks if a comment can be attached to the specified line. - | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | @param lnnum: line number (0 based) (C++: size_t) - | @param cmttype: comment types to check (C++: cmt_type_t) - | @return: possible comment types + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) -> 'void' - | Clear the pseudocode window. It deletes the current function and - | microcode. + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) -> 'bool' + | collapse_item(self, hide) -> bool | Collapse/uncollapse item. This function collapses the current item. | - | collapse_item(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' + | collapse_lvars(self, hide) -> bool | Collapse/uncollapse local variable declarations. | - | collapse_lvars(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) -> 'bool' - | Jump to disassembly. This function jumps to the address in the - | disassembly window which corresponds to the current item. The current - | item is determined based on the current keyboard cursor position. + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) -> 'bool' - | Delete all orphan comments. Delete all orphan comments and refresh the - | screen. + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) -> 'bool' - | Edit an indented comment. This function displays a dialog box and - | allows the user to edit the comment for the specified ctree location. - | | edit_cmt(self, loc) -> bool - | @param loc: comment location (C++: const treeloc_t &) - | @return: false if failed or cancelled + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) -> 'bool' - | Edit a function comment. This function displays a dialog box and - | allows the user to edit the function comment. + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) -> 'bool' - | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' - | fields. 'cfunc_t::get_line_item()' - | | get_current_item(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) -> 'int' - | Get current label. If there is a label under the cursor, return its - | number. + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) -> 'cnumber_t *' - | Get current number. If the current item is a number, return pointer to - | it. + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) -> 'bool' + | in_ctree(self) -> bool | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) -> 'bool' - | Bitwise negate a number. This function inverts all bits of the current - | number. + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) -> 'bool' + | invert_sign(self) -> bool | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) -> 'bool' - | Process the Enter key. This function jumps to the definition of the - | item under the cursor. If the current item is a function, it will be - | decompiled. If the current item is a global data, its disassemly text - | will be displayed. - | | jump_enter(self, idv, omflags) -> bool - | @param idv: what cursor must be used, the keyboard or the mouse (C++: - | input_device_t) - | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse - | the existing window (C++: int) - | @return: false if failed + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) -> 'bool' - | Does the pseudocode window contain valid code? We lock windows before - | modifying them, to avoid recursion due to the events generated by the - | IDA kernel. + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) -> 'bool' - | Map a local variable to another. This function permanently maps one - | lvar to another. All occurrences of the mapped variable are replaced - | by the new variable - | | map_lvar(self, frm, to) -> bool - | @param frm: the variable being mapped (C++: lvar_t *) - | @param to: the variable to map to. if NULL, unmaps the variable (C++: - | lvar_t *) - | @return: false if failed + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' - | Refresh the current position. This function refreshes the 'cpos' - | field. - | | refresh_cpos(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' - | Refresh pseudocode window. This function refreshes the pseudocode - | window by regenerating its text from 'cfunc_t' . Instead of this - | function use refresh_func_ctext(), which refreshes all pseudocode - | windows for the function. 'refresh_view()' , refresh_func_ctext() - | | refresh_ctext(self, activate=True) - | @param activate (C++: bool) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) -> 'void' - | Refresh pseudocode window. This is the highest level refresh function. - | It causes the most profound refresh possible and can lead to - | redecompilation of the current function. Please consider using - | 'refresh_ctext()' if you need a more superficial refresh. - | 'refresh_ctext()' - | | refresh_view(self, redo_mba) - | @param redo_mba: true means to redecompile the current function - | false means to rebuild ctree without regenerating - | microcode (C++: bool) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) -> 'bool' - | Rename global item. This function displays a dialog box and allows the - | user to rename a global item (data or function). - | | rename_global(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' - | Rename a label. This function displays a dialog box and allows the - | user to rename a statement label. - | | rename_label(self, label) -> bool - | @param label: label number (C++: int) - | @return: false if failed or cancelled + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' - | Rename local variable. This function permanently renames a local - | variable.::rename_lvar() - | | rename_lvar(self, v, name, is_user_name) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param name: new variable name (C++: const char *) - | @param is_user_name: use true to save the new name into the database. - | use false to delete the saved name. (C++: bool) - | @return: false if failed + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' - | Rename structure field. This function displays a dialog box and allows - | the user to rename a structure field. - | | rename_strmem(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) -> 'bool' - | Set global item type. This function displays a dialog box and allows - | the user to change the type of a global item (data or function). - | | set_global_type(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool - | @param v (C++: bool) + | + | @param v: bool | | set_lvar_cmt(self, *args) -> 'bool' - | Set local variable comment. This function permanently sets a variable - | comment. - | | set_lvar_cmt(self, v, cmt) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param cmt: new comment (C++: const char *) - | @return: false if failed + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) -> 'bool' - | Set local variable type. This function permanently sets a local - | variable type and clears NOPTR flag if it was set before by function - | 'set_noptr_lvar' - | | set_lvar_type(self, v, type) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param type: new variable type (C++: const tinfo_t &) - | @return: false if failed + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) -> 'bool' - | Inform that local variable should have a non-pointer type This - | function permanently sets a corresponding variable flag (NOPTR) and - | removes type if it was set before by function 'set_lvar_type' - | | set_noptr_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) -> 'bool' - | Convert number to symbolic constant. This function displays a dialog - | box and allows the user to select a symbolic constant to represent the - | number. + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) -> 'bool' - | Change number base. This function changes the current number - | representation. - | | set_num_radix(self, base) -> bool - | @param base: number radix (10 or 16) 0 means a character constant - | (C++: int) - | @return: false if failed + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' + | set_num_stroff(self) -> bool | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) -> 'bool' - | Set structure field type. This function displays a dialog box and - | allows the user to change the type of a structure field. - | | set_strmem_type(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) - | @param v (C++: bool) + | + | @param v: bool | | set_visible(self, *args) -> 'void' | set_visible(self, v) - | @param v (C++: bool) + | + | @param v: bool | | split_item(self, *args) -> 'bool' - | Split/unsplit item. This function splits the current assignment - | expression. - | | split_item(self, split) -> bool - | @param split (C++: bool) - | @return: false if failed. + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' - | Display the specified pseudocode. This function replaces the - | pseudocode window contents with the specified 'cfunc_t' . - | | switch_to(self, f, activate) - | @param f: pointer to the function to display. (C++: cfuncptr_t) - | @param activate: should the pseudocode window get focus? (C++: bool) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) -> 'bool' - | Set local variable comment. This function displays a dialog box and - | allows the user to edit the comment of a local variable. - | | ui_edit_lvar_cmt(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' - | Map a local variable to another. This function displays a variable - | list and allows the user to select mapping. - | | ui_map_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' - | Rename local variable. This function displays a dialog box and allows - | the user to rename a local variable. - | | ui_rename_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> 'bool' - | Set type of a function call This function displays a dialog box and - | allows the user to change the type of a function call - | | ui_set_call_type(self, e) -> bool - | @param e: pointer to call expression (C++: const cexpr_t *) - | @return: false if failed or cancelled + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' - | Set local variable type. This function displays a dialog box and - | allows the user to change the type of a local variable. - | | ui_set_lvar_type(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> 'bool' - | Unmap a local variable. This function displays list of variables - | mapped to the specified variable and allows the user to select a - | variable to unmap. - | | ui_unmap_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) -> 'bool' - | Does the pseudocode window contain valid code? It can become invalid - | if the function type gets changed in IDA. + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) -> 'bool' - | Is the pseudocode window visible? if not, it might be invisible or - | destroyed + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39923,40 +41001,40 @@ class vdui_t(builtins.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mba_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx Help on class vivl_t in module ida_hexrays: @@ -39972,45 +41050,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vivl_t const & | + | @param r: vivl_t const & | | __eq__(self, mop) -> bool - | mop: mop_t const & + | + | @param mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | _type: mopt_t - | _off: sval_t - | _size: int | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | __init__(self, ch) -> vivl_t - | ch: chain_t const & | + | @param ch: chain_t const & | | __init__(self, op) -> vivl_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -40022,69 +41107,73 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vivl_t const & + | + | @param r: vivl_t const & | | contains(self, *args) -> 'bool' + | contains(self, voff2) -> bool | Does our value interval contain the specified value offset? | - | contains(self, voff2) -> bool - | @param voff2 (C++: const voff_t &) + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool | Extend a value interval using another value interval of the same type | - | extend_to_cover(self, r) -> bool - | @param r (C++: const vivl_t &) - | @return: success + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) -> 'bool' + | includes(self, r) -> bool | Does our value interval include another? | - | includes(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) -> 'uval_t' + | intersect(self, r) -> uval_t | Intersect value intervals the same type | - | intersect(self, r) -> uval_t - | @param r (C++: const vivl_t &) - | @return: size of the resulting intersection + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool | Do two value intervals overlap? | - | overlap(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) - | @param _size (C++: int) | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | set(self, voff, _size) - | voff: voff_t const & - | @param _size (C++: int) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) - | @param mreg (C++: mreg_t) - | @param sz (C++: int) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) - | @param stkoff (C++: sval_t) - | @param sz (C++: int) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -40099,14 +41188,16 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -40116,7 +41207,8 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -40137,10 +41229,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -40151,36 +41243,44 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | _type: mopt_t - | _off: sval_t + | __init__(self, _type, _off) -> voff_t | + | @param _type: mopt_t + | @param _off: sval_t | | __init__(self, op) -> voff_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -40189,18 +41289,21 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: voff_t const & + | + | @param r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -40210,7 +41313,8 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -40220,16 +41324,19 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) - | @param mreg (C++: mreg_t) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) - | @param stkoff (C++: sval_t) + | + | @param stkoff: sval_t | | undef(self, *args) -> 'void' | undef(self) @@ -40244,1075 +41351,32 @@ class voff_t(builtins.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFL_NORET -""" -call does not return -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LOCKED -""" -cfunc is temporarily locked -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_HIDE -""" -do not close display waitbox. see close_hexrays_waitboxes() -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_NO_XREFS -""" -do not update global xrefs cache -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore source operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.LVINF_UNUSED -""" -unused argument, corresponds to CVAR_UNUSED -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_KEEP -""" -do not remove even if unreachable -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_VALID -""" -internal bit: stroff or enum is valid for enums: this bit is set -immediately for stroffs: this bit is set at the end of decompilation -""" - -ida_hexrays.OPF_NEW_WINDOW -""" -open new window -""" - -ida_hexrays.OPF_NO_WAIT -""" -do not display waitbox if decompilation happens -""" - -ida_hexrays.OPF_REUSE -""" -reuse existing window -""" - -ida_hexrays.OPF_REUSE_ACTIVE -""" -currently active widget is a pseudocode view - -reuse existing window, only if the -""" - -ida_hexrays.OPROP_CCFLAGS -""" -else: value of a condition code register (like mr_cc) - -mop_n: a pc-relative value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_LOWADDR -""" -a low address offset -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -the function is called after the propagation attempt, we do not -optimize low/high(ldx) in this case -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -41320,12 +41384,15 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - #<pycode(py_ida)> Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + Help on function __wrap_hooks_callback in module ida_ida: __wrap_hooks_callback(klass, new_name, old_name, do_call) @@ -41333,6 +41400,7 @@ __wrap_hooks_callback(klass, new_name, old_name, do_call) Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) -> 'int' + calc_default_idaplace_flags() -> int Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -41360,34 +41428,34 @@ class compiler_info_t(builtins.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag @@ -41395,30 +41463,36 @@ class compiler_info_t(builtins.object) Help on function delinf in module ida_ida: delinf(*args) -> 'bool' + delinf(tag) -> bool undefine a program specific information - delinf(tag) -> bool - @param tag: one of inftag_t constants (C++: inftag_t) - @return: success + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success Help on function get_dbctx_id in module ida_ida: get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t Get the current database context ID + + @return: the database context ID, or -1 if no current database Help on function get_dbctx_qty in module ida_ida: get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t Get number of database contexts + + @return: number of database contexts Help on function getinf_str in module ida_ida: getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str get program specific information (a non-scalar value) - getinf_str(tag) -> str - @param tag: one of inftag_t constants (C++: inftag_t) - @return: number of bytes stored in the buffer (<0 - not defined) + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) Help on class idainfo in module ida_ida: @@ -41445,17 +41519,8 @@ class idainfo(builtins.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) -> 'ea_t' - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) -> 'ea_t' - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) -> 'qstring' - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -41508,14 +41573,6 @@ class idainfo(builtins.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) -> 'void' - | set_maxEA(self, ea) - | ea: ea_t - | - | set_minEA(self, *args) -> 'void' - | set_minEA(self, ea) - | ea: ea_t - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -41550,193 +41607,206 @@ class idainfo(builtins.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | lflags | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) -> 'bool' @@ -41755,7 +41825,8 @@ inf_gen_tryblks(*args) -> 'bool' Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) -> 'uchar' - Get 'DEMNAM_MASK' bits of #demnames. + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: @@ -41844,6 +41915,10 @@ inf_map_stkargs(*args) -> 'bool' Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -41855,73 +41930,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) -> 'bool' inf_set_auto_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) -> 'bool' inf_set_gen_lzero(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) -> 'bool' inf_set_gen_null(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) -> 'bool' inf_set_gen_tryblks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) -> 'bool' inf_set_graph_view(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) -> 'bool' inf_set_line_pref_with_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) -> 'int' inf_set_pack_mode(pack_mode) -> int - @param pack_mode (C++: int) + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) -> 'bool' inf_set_show_auto(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) -> 'bool' inf_set_show_line_pref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) -> 'bool' inf_set_show_void(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function <lambda> in module ida_ida: @@ -41931,7 +42018,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) -> 'bool' inf_set_wide_high_byte_first(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -42111,6 +42199,7 @@ inf_get_af2(*args) -> 'uint32' Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) -> 'ushort' + inf_get_af2_low() -> ushort Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -42121,6 +42210,7 @@ inf_get_af_high(*args) -> 'ushort' Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) -> 'ushort' + inf_get_af_low() -> ushort Get/set low/high 16bit halves of inf.af. Help on function inf_get_app_bitness in module ida_ida: @@ -42157,7 +42247,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool - @param out (C++: compiler_info_t *) + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -42214,11 +42305,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) -> 'uchar' inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) -> 'uchar' - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) -> 'uint32' @@ -42353,7 +42439,10 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool - @param out (C++: range_t *) + + @param out: range_t * + + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -42494,7 +42583,8 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) -> 'void' inf_inc_database_change_count(cnt=1) - @param cnt (C++: int) + + @param cnt: int Help on function inf_is_16bit in module ida_ida: @@ -42565,7 +42655,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) -> 'uval_t' inf_postinc_strlit_sernum(cnt=1) -> uval_t - @param cnt (C++: uval_t) + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -42611,951 +42702,1102 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) -> 'bool' inf_set_abi_set_by_user(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) -> 'void' inf_set_af2_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) -> 'void' inf_set_af_high(saf2) - @param saf2 (C++: ushort) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) -> 'void' inf_set_af_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) -> 'bool' inf_set_allow_non_matched_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) -> 'bool' inf_set_allow_sigmulti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) -> 'bool' inf_set_appcall_options(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) -> 'bool' inf_set_append_sigcmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) -> 'bool' inf_set_big_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) -> 'bool' inf_set_bin_prefix_size(_v) -> bool - @param _v (C++: short) + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool - @param _v (C++: const compiler_info_t &) + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) -> 'bool' inf_set_cc_cm(_v) -> bool - @param _v (C++: cm_t) + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) -> 'bool' inf_set_cc_defalign(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) -> 'bool' inf_set_cc_id(_v) -> bool - @param _v (C++: comp_t) + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) -> 'bool' inf_set_cc_size_b(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) -> 'bool' inf_set_cc_size_e(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) -> 'bool' inf_set_cc_size_i(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) -> 'bool' inf_set_cc_size_l(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) -> 'bool' inf_set_cc_size_ldbl(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) -> 'bool' inf_set_cc_size_ll(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) -> 'bool' inf_set_cc_size_s(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) -> 'bool' inf_set_check_manual_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) -> 'bool' inf_set_check_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) -> 'bool' inf_set_coagulate_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) -> 'bool' inf_set_coagulate_data(_v=True) -> bool - @param _v (C++: bool) - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) -> 'bool' - inf_set_comment(_v) -> bool - @param _v (C++: uchar) + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) -> 'bool' inf_set_compress_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) -> 'bool' inf_set_create_all_xrefs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) -> 'bool' inf_set_create_func_from_call(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) -> 'bool' inf_set_create_func_from_ptr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) -> 'bool' inf_set_create_func_tails(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) -> 'bool' inf_set_create_jump_tables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) -> 'bool' inf_set_create_off_on_dref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) -> 'bool' inf_set_create_off_using_fixup(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) -> 'bool' inf_set_create_strlit_on_xref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) -> 'bool' inf_set_data_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) -> 'bool' inf_set_database_change_count(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) -> 'bool' inf_set_dbg_no_store_path(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) -> 'bool' inf_set_decode_fpp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) -> 'bool' inf_set_del_no_xref_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool - @param _v (C++: filetype_t) + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) -> 'bool' inf_set_final_pass(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) -> 'bool' inf_set_flat_off32(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) -> 'bool' inf_set_full_sp_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) -> 'bool' inf_set_gen_assume(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) -> 'bool' inf_set_gen_org(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) -> 'bool' inf_set_guess_func_type(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) -> 'bool' inf_set_handle_eh(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) -> 'bool' inf_set_handle_rtti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) -> 'bool' inf_set_hard_float(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) -> 'bool' inf_set_hide_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) -> 'bool' inf_set_hide_libfuncs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) -> 'bool' inf_set_huge_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) -> 'bool' inf_set_kernel_mode(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) -> 'bool' inf_set_limiter_empty(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) -> 'bool' inf_set_limiter_thick(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) -> 'bool' inf_set_limiter_thin(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) -> 'bool' inf_set_loading_idc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) -> 'bool' inf_set_long_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) -> 'bool' inf_set_macros_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) -> 'bool' inf_set_map_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) -> 'bool' inf_set_mark_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) -> 'bool' inf_set_max_autoname_len(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) -> 'bool' inf_set_max_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) -> 'bool' inf_set_mem_aligned4(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) -> 'bool' inf_set_min_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool - @param _v (C++: sval_t) + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) -> 'bool' inf_set_no_store_user_info(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) -> 'bool' inf_set_noflow_to_data(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) -> 'bool' inf_set_noret_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) -> 'bool' inf_set_omax_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) -> 'bool' inf_set_omin_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) -> 'bool' inf_set_op_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) -> 'bool' inf_set_pack_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) -> 'bool' inf_set_pack_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) -> 'bool' inf_set_prefix_show_funcoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) -> 'bool' inf_set_prefix_show_segaddr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) -> 'bool' inf_set_prefix_show_stack(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool - @param _v (C++: const range_t &) + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) -> 'bool' inf_set_privrange_end_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) -> 'bool' inf_set_privrange_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) -> 'bool' inf_set_procname(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) -> 'bool' inf_set_propagate_regargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) -> 'bool' inf_set_propagate_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) -> 'bool' inf_set_readonly_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) -> 'bool' inf_set_rename_jumpfunc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) -> 'bool' inf_set_rename_nullsub(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) -> 'bool' inf_set_short_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) -> 'bool' inf_set_should_create_stkvars(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) -> 'bool' inf_set_should_trace_sp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) -> 'bool' inf_set_show_all_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) -> 'bool' inf_set_show_hidden_funcs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) -> 'bool' inf_set_show_hidden_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) -> 'bool' inf_set_show_hidden_segms(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) -> 'bool' inf_set_show_repeatables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) -> 'bool' inf_set_show_src_linnum(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) -> 'bool' inf_set_show_xref_fncoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) -> 'bool' inf_set_show_xref_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) -> 'bool' inf_set_show_xref_tmarks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) -> 'bool' inf_set_show_xref_val(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) -> 'bool' inf_set_stack_ldbl(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) -> 'bool' inf_set_stack_varargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) -> 'bool' inf_set_start_cs(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) -> 'bool' inf_set_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) -> 'bool' inf_set_start_ip(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) -> 'bool' inf_set_start_sp(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) -> 'bool' inf_set_start_ss(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) -> 'bool' inf_set_strlit_autocmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) -> 'bool' inf_set_strlit_break(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) -> 'bool' inf_set_strlit_flags(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) -> 'bool' inf_set_strlit_name_bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) -> 'bool' inf_set_strlit_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) -> 'bool' inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) -> 'bool' inf_set_strlit_savecase(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) -> 'bool' inf_set_strlit_serial_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) -> 'bool' inf_set_strlit_sernum(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) -> 'bool' inf_set_strlit_zeroes(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) -> 'bool' inf_set_strtype(_v) -> bool - @param _v (C++: int32) + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) -> 'bool' inf_set_trace_flow(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) -> 'bool' inf_set_truncate_on_del(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) -> 'bool' inf_set_type_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) -> 'bool' inf_set_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) -> 'bool' inf_set_use_allasm(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) -> 'bool' inf_set_use_flirt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) -> 'bool' inf_set_use_gcc_layout(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -43670,10 +43912,10 @@ inf_use_flirt(*args) -> 'bool' Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) -> 'bool' + is_filetype_like_binary(ft) -> bool Is unstructured input file? - is_filetype_like_binary(ft) -> bool - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function <lambda> in module ida_ida: @@ -43682,608 +43924,24 @@ Help on function <lambda> in module ida_ida: Help on function switch_dbctx in module ida_ida: switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * Switch to the database with the provided context ID - switch_dbctx(idx) -> dbctx_t * - @param idx: the index of the database to switch to (C++: size_t) - @return: the current dbctx_t instance or nullptr + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr Help on function to_ea in module ida_ida: to_ea(*args) -> 'ea_t' + to_ea(reg_cs, reg_ip) -> ea_t Convert (sel,off) value to a linear address. - to_ea(reg_cs, reg_ip) -> ea_t - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment. this -bit is not used by ida yet -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program (or higher)? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -44384,7 +44042,8 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44393,81 +44052,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44484,8 +44143,10 @@ class CustomIDAMemo(View_Hooks) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -44494,10 +44155,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44550,6 +44211,8 @@ Help on function IDAPython_ExecScript in module ida_idaapi: IDAPython_ExecScript(path, g, print_error=True) Run the specified script. + + This function is used by the low-level plugin code. Help on function IDAPython_ExecSystem in module ida_idaapi: @@ -44691,33 +44354,6 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on __BC695 in module ida_idaapi object: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on IDAPython_displayhook in module ida_idaapi object: class IDAPython_displayhook(builtins.object) @@ -44745,33 +44381,6 @@ class IDAPython_displayhook(builtins.object) | __weakref__ | list of weak references to the object (if defined) -Help on class __BC695 in module ida_idaapi: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(builtins.object) @@ -44827,6 +44436,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -44895,19 +44512,22 @@ enable_extlang_python(*args) -> 'void' enable_extlang_python(enable) Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) - enable: bool + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' - format_basestring(_in) -> PyObject * - _in: PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: @@ -44918,9 +44538,6 @@ get_inf_structure(*args) -> 'idainfo *' Help on class loader_input_t in module ida_idaapi: class loader_input_t(builtins.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -44928,7 +44545,8 @@ class loader_input_t(builtins.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | Closes the file + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -44937,15 +44555,17 @@ class loader_input_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | file2base(self, *args) -> 'int' | file2base(self, pos, ea1, ea2, patchable) -> int | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -44961,12 +44581,15 @@ class loader_input_t(builtins.object) | get_linput(self) -> linput_t * | | gets(self, *args) -> 'PyObject *' - | gets(self, len) -> PyObject * + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) -> 'PyObject *' | getz(self, sz, fpos=-1) -> PyObject * | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. @@ -44974,12 +44597,16 @@ class loader_input_t(builtins.object) | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) -> 'bool' | open_memory(self, start, size=0) -> bool | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 @@ -44989,21 +44616,31 @@ class loader_input_t(builtins.object) | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' - | read(self, size) -> PyObject * + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) -> 'void' | set_linput(self, linput) | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) -> 'int64' | size(self) -> int64 @@ -45017,15 +44654,19 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t - | linput: linput_t * + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45034,7 +44675,7 @@ class loader_input_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -45046,19 +44687,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) -> 'loader_input_t *' loader_input_t_from_capsule(pycapsule) -> loader_input_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) -> 'loader_input_t *' loader_input_t_from_fp(fp) -> loader_input_t - fp: FILE * + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) -> 'loader_input_t *' loader_input_t_from_linput(linput) -> loader_input_t - linput: linput_t * + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -45098,7 +44742,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * - cmdline: char const * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -45213,43 +44858,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' - pygc_create_groups(_self, groups_infos) -> PyObject * - self: PyObject * - groups_infos: PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) -> 'PyObject *' - pygc_delete_groups(_self, groups, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - new_current: PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) -> 'PyObject *' - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - expand: PyObject * - new_current: PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -45341,28 +44992,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -45391,15 +45055,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45432,8 +45094,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45502,15 +45163,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45543,8 +45202,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45668,8 +45326,7 @@ class Appcall_callable__(builtins.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -45721,11 +45378,12 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - func_ea: ea_t - tid: thid_t - _type_or_none: bytevec_t const & - _fields: bytevec_t const & - arg_list: PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -45752,10 +45410,10 @@ class bptaddr_t(builtins.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -45769,14 +45427,16 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -45793,16 +45453,16 @@ class call_stack_info_t(builtins.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -45821,15 +45481,19 @@ class call_stack_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_info_vec_t - | x: qvector< call_stack_info_t > const & + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45839,36 +45503,42 @@ class call_stack_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | __swig_destroy__ = delete_call_stack_info_vec_t(...) | delete_call_stack_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -45881,78 +45551,85 @@ class call_stack_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46005,11 +45682,13 @@ class call_stack_t(call_stack_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46019,31 +45698,37 @@ class call_stack_t(call_stack_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46056,78 +45741,85 @@ class call_stack_t(call_stack_info_vec_t) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46150,35 +45842,33 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) -> 'error_t' + cleanup_appcall(tid) -> error_t Cleanup after manual appcall. - cleanup_appcall(tid) -> error_t - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) -> 'error_t' + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t Call a function from the debugged application. - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -46190,8 +45880,8 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) -> 'PyObject *' dbg_get_memory_info() -> PyObject * This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: @@ -46199,6 +45889,7 @@ Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) -> 'PyObject *' dbg_get_name() -> PyObject * This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: @@ -46207,8 +45898,8 @@ dbg_get_registers(*args) -> 'PyObject *' dbg_get_registers() -> PyObject * This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -46217,10 +45908,10 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) -> 'PyObject *' dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: @@ -46228,15 +45919,20 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' - dbg_write_memory(ea, buf) -> PyObject * + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -46264,16 +45960,16 @@ class debapp_attrs_t(builtins.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -46287,7 +45983,9 @@ class debug_event_t(builtins.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | r: debug_event_t const & + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -46295,70 +45993,71 @@ class debug_event_t(builtins.object) | delete_debug_event_t(self) | | bpt(self, *args) -> 'bptaddr_t const &' - | 'EXCEPTION' + | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) -> 'ea_t' - | On some systems with special memory mappings the triggered ea might be - | different from the actual ea. Calculate the address to use. + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) -> 'void' - | clear the dependent information (see below), set event code to - | NO_EVENT + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) -> 'void' | clear_all(self) | | copy(self, *args) -> 'debug_event_t &' | copy(self, r) -> debug_event_t - | @param r (C++: const debug_event_t &) + | + | @param r: debug_event_t const & | | eid(self, *args) -> 'event_id_t' + | eid(self) -> event_id_t | Event code. | | exc(self, *args) -> 'excinfo_t const &' | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) -> 'int const &' - | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) - | 'INFORMATION' (will be displayed in the output window if not empty) + | exit_code(self) -> int const & | | info(self, *args) -> 'qstring const &' - | 'BREAKPOINT' + | info(self) -> qstring + | info(self) -> qstring const & | | modinfo(self, *args) -> 'modinfo_t const &' - | Information that depends on the event code: - | - | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' - | 'PROCESS_EXITED' , 'THREAD_EXITED' + | modinfo(self) -> modinfo_t | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' - | Set event code. If the new event code is compatible with the old one - | then the dependent information (see below) will be preserved. - | Otherwise the event will be cleared and the new event code will be - | set. - | | set_eid(self, id) - | @param id (C++: event_id_t) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) -> 'excinfo_t &' | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) -> 'void' | set_exit_code(self, id, code) - | @param id (C++: event_id_t) - | @param code (C++: int) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -46370,19 +46069,19 @@ class debug_event_t(builtins.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid Help on class exception_info_t in module ida_idd: @@ -46393,10 +46092,12 @@ class exception_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | _code: uint - | _flags: uint32 - | _name: char const * - | _desc: char const * + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | @@ -46404,9 +46105,11 @@ class exception_info_t(builtins.object) | delete_exception_info_t(self) | | break_on(self, *args) -> 'bool' + | break_on(self) -> bool | Should we break on the exception? | | handle(self, *args) -> 'bool' + | handle(self) -> bool | Should we handle the exception? | | ---------------------------------------------------------------------- @@ -46419,16 +46122,16 @@ class exception_info_t(builtins.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -46458,16 +46161,16 @@ class excinfo_t(builtins.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -46481,11 +46184,14 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | x: qvector< exception_info_t > const & + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46497,22 +46203,23 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: exception_info_t const & + | + | @param i: size_t + | @param v: exception_info_t const & | | __swig_destroy__ = delete_excvec_t(...) | delete_excvec_t(self) | | at(self, *args) -> 'exception_info_t const &' | at(self, _idx) -> exception_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46525,16 +46232,16 @@ class excvec_t(builtins.object) | | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t - | it: qvector< exception_info_t >::iterator | + | @param it: qvector< exception_info_t >::iterator | | erase(self, first, last) -> exception_info_t - | first: qvector< exception_info_t >::iterator - | last: qvector< exception_info_t >::iterator + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -46544,47 +46251,56 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) - | x: exception_info_t const & + | + | @param x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: exception_info_t * - | len: size_t + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t - | it: qvector< exception_info_t >::iterator - | x: exception_info_t const & + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) - | x: exception_info_t const & + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: exception_info_t const & | + | @param _newsize: size_t + | @param x: exception_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< exception_info_t > & + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46605,49 +46321,57 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) -> 'ea_t' get_event_bpt_hea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) -> 'uint' get_event_exc_code(ev) -> uint - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) -> 'ea_t' get_event_exc_ea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) -> 'size_t' get_event_exc_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) -> 'size_t' get_event_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) -> 'ea_t' get_event_module_base(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) -> 'size_t' get_event_module_name(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) -> 'asize_t' get_event_module_size(ev) -> asize_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -46658,15 +46382,19 @@ class meminfo_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | x: qvector< memory_info_t > const & + | __init__(self, x) -> meminfo_vec_t + | + | @param x: qvector< memory_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46676,36 +46404,42 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: memory_info_t const & + | + | @param i: size_t + | @param v: memory_info_t const & | | __swig_destroy__ = delete_meminfo_vec_t(...) | delete_meminfo_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: memory_info_t const & + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46718,78 +46452,85 @@ class meminfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t - | it: qvector< memory_info_t >::iterator | + | @param it: qvector< memory_info_t >::iterator | | erase(self, first, last) -> memory_info_t - | first: qvector< memory_info_t >::iterator - | last: qvector< memory_info_t >::iterator + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) -> 'memory_info_t *' | extract(self) -> memory_info_t | | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' | find(self, x) -> memory_info_t - | x: memory_info_t const & | - | - | find(self, x) -> memory_info_t - | x: memory_info_t const & + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: memory_info_t * - | len: size_t + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t - | it: qvector< memory_info_t >::iterator - | x: memory_info_t const & + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) - | x: memory_info_t const & + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: memory_info_t const & | + | @param _newsize: size_t + | @param x: memory_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< memory_info_t > & + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46825,14 +46566,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -46843,19 +46586,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -46870,58 +46613,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -46935,12 +46682,12 @@ class memory_info_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -46967,16 +46714,16 @@ class modinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -47006,10 +46753,10 @@ class process_info_t(builtins.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -47023,11 +46770,14 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | x: qvector< process_info_t > const & + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -47039,22 +46789,23 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: process_info_t const & + | + | @param i: size_t + | @param v: process_info_t const & | | __swig_destroy__ = delete_procinfo_vec_t(...) | delete_procinfo_vec_t(self) | | at(self, *args) -> 'process_info_t const &' | at(self, _idx) -> process_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -47067,16 +46818,16 @@ class procinfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< process_info_t >::const_iterator' | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t - | it: qvector< process_info_t >::iterator | + | @param it: qvector< process_info_t >::iterator | | erase(self, first, last) -> process_info_t - | first: qvector< process_info_t >::iterator - | last: qvector< process_info_t >::iterator + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -47086,47 +46837,56 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) - | x: process_info_t const & + | + | @param x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: process_info_t * - | len: size_t + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t - | it: qvector< process_info_t >::iterator - | x: process_info_t const & + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) - | x: process_info_t const & + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: process_info_t const & | + | @param _newsize: size_t + | @param x: process_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< process_info_t > & + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -47168,22 +46928,22 @@ class register_info_t(builtins.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | bit_strings | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -47197,15 +46957,19 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | r: regval_t const & + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -47214,43 +46978,56 @@ class regval_t(builtins.object) | | bytes(self, *args) -> 'bytevec_t const &' | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' + | clear(self) | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) -> 'size_t' | get_data_size(self) -> size_t + | Get size of value. | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) - | data: uchar const * - | size: size_t + | Initialize this regval to an empty custom value. | + | @param data: uchar const * + | @param size: size_t | | set_bytes(self, v) - | v: bytevec_t const & + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & | | set_float(self, *args) -> 'void' | set_float(self, x) - | x: fpvalue_t const & + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) -> 'void' | set_int(self, x) - | x: uint64 + | Set int value (ival) + | + | @param x: (C++: uint64) | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) -> 'void' + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: regval_t &) + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47262,13 +47039,13 @@ class regval_t(builtins.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> fpvalue_t + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype | | thisown | The membership flag @@ -47302,7 +47079,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -47312,66 +47089,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -47385,12 +47168,12 @@ class scattered_segm_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -47401,8 +47184,9 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) -> 'void' set_debug_event_code(ev, id) - @param ev (C++: debug_event_t *) - @param id (C++: event_id_t) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -47429,132 +47213,45 @@ class thread_name_t(builtins.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -47568,7 +47265,8 @@ class IDB_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -47576,736 +47274,750 @@ class IDB_Hooks(builtins.object) | delete_IDB_Hooks(self) | | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) -> 'void' - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) -> 'void' - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) -> 'void' - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) -> 'void' - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) -> 'void' - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) -> 'void' - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) -> 'void' - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) -> 'void' - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) -> 'void' - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) -> 'void' + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' + | savebase(self) | The database is being saved. | | segm_added(self, *args) -> 'void' + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -48330,1288 +48042,1263 @@ class IDP_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDP_Hooks(...) | delete_IDP_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> 'bool' - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) -> 'int' - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) -> 'PyObject *' + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) -> 'int' - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int | Reserved. | | ev_can_have_type(self, *args) -> 'int' - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) -> 'int' + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) -> 'int' - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) -> 'int' - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) -> 'int' + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) -> 'int' + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) -> 'bool' - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) -> 'int' - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_asm_or_lst(self, *args) -> 'int' - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) -> 'int' - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) -> 'int' + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) -> 'PyObject *' - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) -> 'int' - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) -> 'int' - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) -> 'int' - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_get_procmod(self, *args) -> 'int' - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) -> 'int' - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) -> 'int' - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) -> 'int' + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) -> 'int' - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) -> 'int' - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) -> 'int' - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) -> 'int' + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) -> 'int' + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) -> 'int' + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) -> 'int' - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) -> 'int' - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) -> 'int' + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) -> 'int' - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) -> 'int' + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) -> 'int' + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) -> 'int' + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) -> 'int' + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) -> 'int' - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) -> 'int' + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) -> 'int' - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) -> 'int' - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) -> 'bool' - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) -> 'int' - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) -> 'int' - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) -> 'bool' - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) -> 'int' + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) -> 'int' + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) -> 'int' - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) -> 'int' + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) -> 'int' - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) -> 'int' - | Called if the user specified an option string in the command line: - | -p<processor name>:<options>. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_setup_til(self, *args) -> 'int' - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) -> 'int' - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) -> 'int' - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) -> 'int' + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) -> 'int' + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_update_call_stack(self, *args) -> 'int' - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) -> 'int' - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) -> 'int' + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -49737,7 +49424,8 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __init__(self, proc) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -49754,736 +49442,750 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | delete_IDB_Hooks(self) | | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) -> 'void' - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) -> 'void' - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) -> 'void' - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) -> 'void' - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) -> 'void' - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) -> 'void' - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) -> 'void' - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) -> 'void' - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) -> 'void' - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) -> 'void' + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' + | savebase(self) | The database is being saved. | | segm_added(self, *args) -> 'void' + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -50522,166 +50224,170 @@ class asm_t(builtins.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag Help on function assemble in module ida_idp: assemble(*args) -> 'bool' assemble(ea, cs, ip, use32, line) -> bool Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -50694,48 +50400,51 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) -> 'char const *' cfg_get_cc_header_path(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) -> 'char const *' cfg_get_cc_parm(compid, name) -> char const * - compid: comp_t - name: char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) -> 'char const *' cfg_get_cc_predefined_macros(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function clr_module_data in module ida_idp: clr_module_data(*args) -> 'void *' + clr_module_data(data_id) -> void * Unregister pointer to database specific module data. - clr_module_data(data_id) -> void * - @param data_id: an data_id that was assigned by set_module_data() - (C++: int) - @return: previously registered pointer for the current database. it - can be deallocated now. Multiple calls to this function with - the same id are forbidden. + @param data_id: (C++: int) an data_id that was assigned by set_module_data() + @return: previously registered pointer for the current database. it can be + deallocated now. Multiple calls to this function with the same id are + forbidden. Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) -> 'bool' delay_slot_insn(ea, bexec, fexec) -> bool - ea: ea_t * - bexec: bool * - fexec: bool * + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) -> 'void' + gen_idb_event(code) the kernel will use this function to generate idb_events - gen_idb_event(code) - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t Help on function get_ash in module ida_idp: @@ -50746,43 +50455,47 @@ Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) -> 'PyObject *' get_idb_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) -> 'PyObject *' get_idb_notifier_ud_addr(hooks) -> PyObject * - hooks: IDB_Hooks * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) -> 'size_t' - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) -> 'PyObject *' get_idp_notifier_ud_addr(hooks) -> PyObject * - hooks: IDP_Hooks * + + @param hooks: IDP_Hooks * Help on function get_module_data in module ida_idp: get_module_data(*args) -> 'void *' + get_module_data(data_id) -> void * Get pointer to the database specific module data. - get_module_data(data_id) -> void * - @param data_id: data id that was initialized by set_module_data() - (C++: int) - @return: previously registered pointer for the current database + @param data_id: (C++: int) data id that was initialized by set_module_data() + @return: previously registered pointer for the current database Help on function get_ph in module ida_idp: @@ -50793,105 +50506,174 @@ Help on function get_reg_info in module ida_idp: get_reg_info(*args) -> 'char const *' get_reg_info(regname, bitrange) -> char const * - regname: char const * - bitrange: bitrange_t * + + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) -> 'qstring *' - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - get_reg_name(reg, width, reghi=-1) -> str - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) -> 'bool' - Does an instruction with the specified feature modify the i-th - operand? - has_cf_chg(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) -> 'bool' - Does an instruction with the specified feature use a value of the i-th - operand? - has_cf_use(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) -> 'bool' + has_insn_feature(icode, bit) -> bool Does the specified instruction have the specified feature? - has_insn_feature(icode, bit) -> bool - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: int) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) -> 'int' - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - is_align_insn(ea) -> int - @param ea (C++: ea_t) + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) -> 'bool' + is_basic_block_end(insn, call_insn_stops_block) -> bool Is the instruction the end of a basic block? - is_basic_block_end(insn, call_insn_stops_block) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) -> 'bool' + is_call_insn(insn) -> bool Is the instruction a "call"? - is_call_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) -> 'bool' + is_indirect_jump_insn(insn) -> bool Is the instruction an indirect jump? - is_indirect_jump_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) -> 'bool' + is_ret_insn(insn, strict=True) -> bool Is the instruction a "return"? - is_ret_insn(insn, strict=True) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) -> 'bool' + parse_reg_name(ri, regname) -> bool Get register info by name. - parse_reg_name(ri, regname) -> bool - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success Help on __ph in module ida_idp object: @@ -50942,21 +50724,24 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) -> 'bytevec_t *, size_t *' ph_calcrel(ea) - ea: ea_t + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_op_value(insn, op) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - op: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_reg_value(insn, reg) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - reg: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: @@ -50991,7 +50776,7 @@ ph_get_id(*args) -> 'size_t' Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) -> 'PyObject *' - ph_get_instruc() -> PyObject * + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -51010,7 +50795,7 @@ ph_get_instruc_start(*args) -> 'size_t' Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) -> 'PyObject *' - ph_get_operand_info(ea, n) -> PyObject * + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -51023,9 +50808,10 @@ Help on function ph_get_reg_accesses in module ida_idp: ph_get_reg_accesses(*args) -> 'ssize_t' ph_get_reg_accesses(accvec, insn, flags) -> ssize_t - accvec: reg_accesses_t * - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - flags: int + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int Help on function ph_get_reg_code_sreg in module ida_idp: @@ -51054,7 +50840,7 @@ ph_get_reg_last_sreg(*args) -> 'size_t' Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) -> 'PyObject *' - ph_get_regnames() -> PyObject * + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: @@ -51079,8 +50865,9 @@ Help on function process_config_directive in module ida_idp: process_config_directive(*args) -> 'void' process_config_directive(directive, priority=2) - directive: char const * - priority: int + + @param directive: char const * + @param priority: int Help on class processor_t in module ida_idp: @@ -51096,7 +50883,8 @@ class processor_t(IDP_Hooks) | | __init__(self) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_idb_notifier_addr(self) | @@ -51127,575 +50915,553 @@ class processor_t(IDP_Hooks) | determined_main(self, *args) | | ev_ana_insn(self, *args) - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_can_have_type(self, *args) - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_func_frame(self, pfn) - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, s) + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_emu_insn(self, *args) - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_map_file(self, nlines, fp) - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, ctx, v) + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_get_autocmt(self, *args) - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_frame_retsize(self, frsize, pfn) - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_operand_string(self, buf, insn, opnum) + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_is_align_insn(self, *args) - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_far_jump(self, *args) - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, mode, insn, op) - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, s, to_ea, flags) + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, ctx, s) + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, ctx, s) + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow | | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) - | Called if the user specified an option string in the command line: - | -p<processor name>:<options>. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_str2reg(self, *args) - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_validate_flirt_func(self, *args) - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, pfn) + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | func_added(self, pfn) | @@ -51745,710 +51511,706 @@ class processor_t(IDP_Hooks) | __swig_destroy__ = delete_IDP_Hooks(...) | delete_IDP_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) -> 'int' - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) -> 'int' - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int | Reserved. | | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_gen_asm_or_lst(self, *args) -> 'int' - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) -> 'int' - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) -> 'int' - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) -> 'int' - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_procmod(self, *args) -> 'int' - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) -> 'int' - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) -> 'int' - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_setup_til(self, *args) -> 'int' - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) -> 'int' - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) -> 'int' + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_update_call_stack(self, *args) -> 'int' - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -52477,14 +52239,16 @@ class reg_access_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __init__(self, *args) | __init__(self) -> reg_access_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __repr__ = _swig_repr(self) | @@ -52493,7 +52257,8 @@ class reg_access_t(builtins.object) | | have_common_bits(self, *args) -> 'bool' | have_common_bits(self, r) -> bool - | @param r (C++: const reg_access_t &) + | + | @param r: reg_access_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52505,16 +52270,16 @@ class reg_access_t(builtins.object) | list of weak references to the object (if defined) | | access_type - | reg_access_t_access_type_get(self) -> access_type_t + | access_type | | opnum - | reg_access_t_opnum_get(self) -> uchar + | opnum | | range - | reg_access_t_range_get(self) -> bitrange_t + | range | | regnum - | reg_access_t_regnum_get(self) -> int + | regnum | | thisown | The membership flag @@ -52533,15 +52298,19 @@ class reg_access_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) -> 'reg_access_t const &' | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reg_access_vec_t - | x: qvector< reg_access_t > const & + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52551,36 +52320,42 @@ class reg_access_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | __swig_destroy__ = delete_reg_access_vec_t(...) | delete_reg_access_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) -> 'reg_access_t const &' | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52593,78 +52368,85 @@ class reg_access_vec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) -> 'qvector< reg_access_t >::iterator' | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) -> 'reg_access_t *' | extract(self) -> reg_access_t | | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_access_t >::iterator' | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_access_t &' | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52717,11 +52499,13 @@ class reg_accesses_t(reg_access_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) -> 'reg_access_t const &' | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52731,31 +52515,37 @@ class reg_accesses_t(reg_access_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) -> 'reg_access_t const &' | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52768,78 +52558,85 @@ class reg_accesses_t(reg_access_vec_t) | | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) -> 'qvector< reg_access_t >::iterator' | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) -> 'reg_access_t *' | extract(self) -> reg_access_t | | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_access_t >::iterator' | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_access_t &' | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52867,30 +52664,36 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -52899,7 +52702,8 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52911,10 +52715,10 @@ class reg_info_t(builtins.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -52928,49 +52732,48 @@ Help on function register_cfgopts in module ida_idp: register_cfgopts(*args) -> 'bool' register_cfgopts(opts, nopts, cb=None, obj=None) -> bool - opts: cfgopt_t const [] - nopts: size_t - cb: config_changed_cb_t * - obj: void * + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * Help on function set_module_data in module ida_idp: set_module_data(*args) -> 'void *' - Starting from IDA v7.5 all modules should use the following 3 - functions to handle idb specific static data because now the kernel - supports opening and working with multiple idbs files simultaneously. - See the source code of the processor modules in the SDK for the usage - examples. Register pointer to database specific module data. - set_module_data(data_id, data_ptr) -> void * - @param data_id: initially the pointed-to value must be 0, the kernel - will fill it with a unique id. once assigned, the - data_id does not change. (C++: int *) - @param data_ptr: pointer to the data to register (C++: void *) - @return: data_ptr. The registered pointer can later be retrieved using - get_module_data() + Starting from IDA v7.5 all modules should use the following 3 functions to + handle idb specific static data because now the kernel supports opening and + working with multiple idbs files simultaneously. See the source code of the + processor modules in the SDK for the usage examples. Register pointer to + database specific module data. + + @param data_id: (C++: int *) initially the pointed-to value must be 0, the kernel will fill + it with a unique id. once assigned, the data_id does not change. + @param data_ptr: (C++: void *) pointer to the data to register + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function sizeof_ldbl in module ida_idp: @@ -52980,1032 +52783,21 @@ sizeof_ldbl(*args) -> 'size_t' Help on function str2reg in module ida_idp: str2reg(*args) -> 'int' + str2reg(p) -> int Get any reg number (-1 on error) - str2reg(p) -> int - @param p (C++: const char *) + @param p: (C++: const char *) char const * -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME<fld,fld,...> is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_CHG7 -""" -The instruction modifies the 7th operand. -""" - -ida_idp.CF_CHG8 -""" -The instruction modifies the 8th operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CF_USE7 -""" -The instruction uses value of the 7th operand. -""" - -ida_idp.CF_USE8 -""" -The instruction uses value of the 8th operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.HKCB_GLOBAL -""" -is global event listener? if true, the listener will survive database -closing and opening. it will stay in the memory until explicitly -unhooked. otherwise the kernel will delete it as soon as the owner is -unloaded. should be used only with PLUGIN_FIX plugins. -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_RISCV -""" -RISC-V. -""" - -ida_idp.PLFM_RL78 -""" -Renesas RL78. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_XTENSA -""" -Tensilica Xtensa. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PR2_CODE16_BIT -""" -e.g. ARM Thumb, MIPS16 - -low bit of code addresses has special meaning -""" - -ida_idp.PR2_IDP_OPTS -""" -the module has processor-specific configuration options -""" - -ida_idp.PR2_MACRO -""" -processor supports macro instructions -""" - -ida_idp.PR2_MAPPINGS -""" -the processor module uses memory mapping -""" - -ida_idp.PR2_REALCVT -""" -the module has a custom 'ev_realcvt' implementation (otherwise -IEEE-754 format is assumed) -""" - -ida_idp.PR2_REL_BITS -""" -(Lumina) calcrel info has bits granularity, not bytes - construction -flag only -""" - -ida_idp.PR2_USE_CALCREL -""" -(Lumina) the module supports calcrel info -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_OUTER -""" -has outer operands (currently only mc68k) -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback +Module "ida_ieee"s docstring: """ +IEEE floating point functions.""" -ida_idp.PR_USE_TBYTE -""" -'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on function ecleaz in module ida_ieee: ecleaz(*args) -> 'void' ecleaz(x) - @param x (C++: eNI) + + @param x: unsigned short [(6+3)] Help on class fpvalue_shorts_array_t in module ida_ieee: @@ -54016,11 +52808,13 @@ class fpvalue_shorts_array_t(builtins.object) | | __getitem__(self, *args) -> 'unsigned short const &' | __getitem__(self, i) -> unsigned short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> fpvalue_shorts_array_t - | data: unsigned short (&)[FPVAL_NWORDS] + | + | @param data: unsigned short (&)[FPVAL_NWORDS] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -54032,8 +52826,9 @@ class fpvalue_shorts_array_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned short const & + | + | @param i: size_t + | @param v: unsigned short const & | | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) | delete_fpvalue_shorts_array_t(self) @@ -54043,7 +52838,10 @@ class fpvalue_shorts_array_t(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54058,7 +52856,7 @@ class fpvalue_shorts_array_t(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | fpvalue_shorts_array_t_data_get(self) -> unsigned short (&)[FPVAL_NWORDS] + | data | | thisown | The membership flag @@ -54072,43 +52870,53 @@ class fpvalue_t(builtins.object) | | __add__(self, *args) -> 'fpvalue_t' | __add__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __getitem__(self, i) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __init__(self, *args) | __init__(self) -> fpvalue_t - | in: bytevec12_t const & + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __mul__(self, *args) -> 'fpvalue_t' | __mul__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __repr__ = _swig_repr(self) | @@ -54119,14 +52927,16 @@ class fpvalue_t(builtins.object) | | __sub__(self, *args) -> 'fpvalue_t' | __sub__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __swig_destroy__ = delete_fpvalue_t(...) | delete_fpvalue_t(self) | | __truediv__(self, *args) -> 'fpvalue_t' | __truediv__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | _get_10bytes(self, *args) -> 'void' | _get_10bytes(self) @@ -54142,124 +52952,149 @@ class fpvalue_t(builtins.object) | | _set_10bytes(self, *args) -> 'void' | _set_10bytes(self, _in) - | in: bytevec10_t const & + | + | Parameters + | ---------- + | in: bytevec10_t const & | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, _in) - | in: bytevec12_t const & + | + | Parameters + | ---------- + | in: bytevec12_t const & | | _set_float(self, *args) -> 'void' | _set_float(self, v) - | v: double + | + | Parameters + | ---------- + | v: double | | assign(self, *args) -> 'void' | assign(self, r) - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | eabs(self, *args) -> 'void' + | eabs(self) | Calculate absolute value. | | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t | Arithmetic operations. | - | fadd(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | @param y: (C++: const fpvalue_t &) fpvalue_t const & | | fdiv(self, *args) -> 'fpvalue_error_t' | fdiv(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | fmul(self, *args) -> 'fpvalue_error_t' | fmul(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t | Conversions for 10-byte floating point values. | - | from_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t | Conversions for 12-byte floating point values. | - | from_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_int64(self, *args) -> 'void' | from_int64(self, x) - | @param x (C++: int64) + | + | @param x: int64 | | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t | Convert string to IEEE. | - | from_str(self, p) -> fpvalue_error_t - | p: char const * + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. | | from_sval(self, *args) -> 'void' + | from_sval(self, x) | Convert integer to IEEE. | - | from_sval(self, x) - | @param x (C++: sval_t) + | @param x: (C++: sval_t) | | from_uint64(self, *args) -> 'void' | from_uint64(self, x) - | @param x (C++: uint64) + | + | @param x: uint64 | | fsub(self, *args) -> 'fpvalue_error_t' | fsub(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t | Get value kind. | | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool | Is negative value? | | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t | Multiply by a power of 2. | - | mul_pow2(self, power_of_2) -> fpvalue_error_t - | @param power_of_2 (C++: int32) + | @param power_of_2: (C++: int32) | | negate(self, *args) -> 'void' + | negate(self) | Negate. | | to_10bytes(self, *args) -> 'fpvalue_error_t' | to_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_12bytes(self, *args) -> 'fpvalue_error_t' | to_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_int64(self, *args) -> 'fpvalue_error_t' | to_int64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | to_str(self, *args) -> 'void' + | to_str(self, mode) | Convert IEEE to string. | - | to_str(self, mode) - | @param mode: broken down into: low byte: number of digits after '.' - | second byte: FPNUM_LENGTH third byte: FPNUM_DIGITS - | (C++: uint) + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS | | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t | Convert IEEE to integer (+-0.5 if round) | - | to_sval(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | @param round: (C++: bool) | | to_uint64(self, *args) -> 'fpvalue_error_t' | to_uint64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54292,24 +53127,25 @@ class fpvalue_t(builtins.object) | uint64 | | w - | fpvalue_t_w_get(self) -> uint16 [6] + | w | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_ieee EPYDOC INJECTIONS === -ida_ieee.E_SPECIAL_EXP -""" -Exponent in 'fpvalue_t' for NaN and Inf. +Module "ida_kernwin"s docstring: """ +Defines the interface between the kernel and the UI. + +It contains: +* the UI dispatcher notification codes (ui_notification_t) +* convenience functions for UI services +* structures which hold information about the lines (disassembly, structures, +enums) generated by the kernel +* functions to interact with the user (dialog boxes) +* some string and conversion functions.""" -ida_ieee.IEEE_EXONE -""" -The exponent of 1.0. -""" -=== ida_ieee EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(builtins.object) @@ -54372,7 +53208,7 @@ class Choose(builtins.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -54382,7 +53218,7 @@ class Choose(builtins.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -54604,7 +53440,8 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -54613,81 +53450,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -54704,8 +53541,10 @@ class CustomIDAMemo(View_Hooks) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -54714,10 +53553,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -54753,7 +53592,7 @@ class Form(builtins.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param close_normally | 1: form is closed normally as if the user pressed Enter | 0: form is closed abnormally as if the user pressed Esc | @return: None @@ -54801,8 +53640,7 @@ class Form(builtins.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @return: - color button, radio controls: integer | - file/dir input, string input and string label: string | - embedded chooser control (0-based indices of selected items): integer list | - for multilinetext control: textctrl_info_t @@ -54828,7 +53666,7 @@ class Form(builtins.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param value | - embedded chooser: a 0-base indices list to select embedded chooser items | - multilinetext: a textctrl_info_t | - dropdown list: an integer designating the selection index if readonly @@ -55063,7 +53901,8 @@ class IDAViewWrapper(CustomIDAMemo) | | __init__(self, title) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -55161,81 +54000,81 @@ class IDAViewWrapper(CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -55252,8 +54091,10 @@ class IDAViewWrapper(CustomIDAMemo) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -55262,10 +54103,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -55318,6 +54159,7 @@ class PluginForm(builtins.object) | @param options: One of PluginForm.WOPN_ constants | | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. | | ---------------------------------------------------------------------- | Static methods defined here: @@ -55415,7 +54257,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * - ptrval: size_t + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -55428,13 +54271,14 @@ class UI_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __real_database_closed = database_closed(self, *args) -> 'void' - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | __repr__ = _swig_repr(self) | @@ -55442,263 +54286,280 @@ class UI_Hooks(builtins.object) | delete_UI_Hooks(self) | | create_desktop_widget(self, *args) -> 'PyObject *' - | create a widget, to be placed in the widget tree (at desktop- - | creation time.) - | | create_desktop_widget(self, title, cfg) -> PyObject * - | @param title (C++: const char *) - | @param cfg (C++: const jobj_t *) + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) -> 'void' + | current_widget_changed(self, widget, prev_widget) | The currently-active TWidget changed. | - | current_widget_changed(self, widget, prev_widget) - | @param widget (C++: TWidget *) - | @param prev_widget (C++: TWidget *) + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) | | database_closed = __wrapper(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | database_inited(self, *args) -> 'void' - | database initialization has completed. the kernel is about to run - | idc scripts - | | database_inited(self, is_new_database, idc_script) - | @param is_new_database (C++: int) - | @param idc_script: - may be NULL (C++: const char *) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param idc_script: (const char *) - may be nullptr + | @return: void See also ui_initing_database. This event is called for both new + | and old databases. | | debugger_menu_change(self, *args) -> 'void' + | debugger_menu_change(self, enable) | debugger menu modification detected | - | debugger_menu_change(self, enable) - | @param enable: true: debugger menu has been added, or a different - | debugger has been selected false: debugger menu will be - | removed (user switched to "No debugger") (C++: bool) + | @param enable: (bool) true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be removed + | (user switched to "No debugger") | | desktop_applied(self, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) | a desktop has been applied | - | desktop_applied(self, name, from_idb, type) - | @param name: the desktop name (C++: const char *) - | @param from_idb: the desktop was stored in the IDB (false if it comes - | from the registry) (C++: bool) - | @param type: the desktop type (1-disassembly, 2-debugger, 3-merge) - | (C++: int) + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) | | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) | The plugin object is about to be destroyed | - | destroying_plugmod(self, plugmod, entry) - | @param plugmod (C++: const plugmod_t *) - | @param entry (C++: const plugin_t *) + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) | | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) | The processor module is about to be destroyed | - | destroying_procmod(self, procmod) - | @param procmod (C++: const procmod_t *) + | @param procmod: (const procmod_t *) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | finish_populating_widget_popup(self, *args) -> 'void' - | IDA is about to be done populating the context menu for a widget. - | This is your chance to 'attach_action_to_popup()' . - | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is about to be done populating the context menu for a widget. This is + | your chance to attach_action_to_popup(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> 'void' - | get item-specific attributes for a chooser. This callback is - | generated only after enable_chooser_attrs() - | | get_chooser_item_attrs(self, chooser, n, attrs) - | @param chooser (C++: const chooser_base_t *) - | @param n (C++: size_t) - | @param attrs (C++: chooser_item_attrs_t *) + | get item-specific attributes for a chooser. This callback is generated only + | after enable_chooser_attrs() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> 'PyObject *' + | get_custom_viewer_hint(self, viewer, place) -> PyObject * | ui wants to display a hint for a viewer (idaview or custom). Every | subscriber is supposed to append the hint lines to HINT and increment - | IMPORTANT_LINES accordingly. Completely overwriting the existing lines - | in HINT is possible but not recommended. If the REG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the source-level debugger-generated hints. The - | following keywords might appear at the beginning of the returned - | hints: HIGHLIGHT textwhere text will be highlighted CAPTION - | captioncaption for the hint widget + | IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT + | is possible but not recommended. If the REG_HINTS_MARKER sequence is found in + | the returned hints string, it will be replaced with the contents of the + | "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned + | hints string, it will be replaced with the contents of the source-level + | debugger-generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT text + | where text will be highlighted CAPTION caption + | caption for the hint widget | - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | @param viewer: viewer (C++: TWidget*) - | @param place: current position in the viewer (C++: place_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | @param viewer: (TWidget*) viewer + | @param place: (place_t *) current position in the viewer + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | get_ea_hint(self, *args) -> 'PyObject *' - | ui wants to display a simple hint for an address. Use this event - | to generate a custom hint See also more generic 'ui_get_item_hint' - | | get_ea_hint(self, ea) -> PyObject * - | @param ea (C++: ea_t) + | ui wants to display a simple hint for an address. Use this event to generate + | a custom hint See also more generic ui_get_item_hint + | + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) -> 'PyObject *' - | ui wants to display multiline hint for an item. See also more - | generic 'ui_get_custom_viewer_hint' - | | get_item_hint(self, ea, max_lines) -> PyObject * - | @param ea: or item id like a structure or enum member (C++: ea_t) - | @param max_lines: maximal number of lines (C++: int) + | ui wants to display multiline hint for an item. See also more generic + | ui_get_custom_viewer_hint + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint | | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) | get lines rendering information | - | get_lines_rendering_info(self, out, widget, info) - | @param out (C++: lines_rendering_output_t *) - | @param widget (C++: const TWidget *) - | @param info (C++: const lines_rendering_input_t *) + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) -> 'PyObject *' + | get_widget_config(self, widget, cfg) -> PyObject * | retrieve the widget configuration (it will be passed back at | ui_create_desktop_widget-, and ui_set_widget_config-time) | - | get_widget_config(self, widget, cfg) -> PyObject * - | @param widget (C++: const TWidget *) - | @param cfg (C++: jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idcstart(self, *args) -> 'void' + | idcstart(self) | Start of IDC engine work. | | idcstop(self, *args) -> 'void' + | idcstop(self) | Stop of IDC engine work. | | initing_database(self, *args) -> 'void' + | initing_database(self) | database initialization has started. + | + | @return: void See also ui_database_inited. This event is called for both new and + | old databases. | | plugin_loaded(self, *args) -> 'void' + | plugin_loaded(self, plugin_info) | The plugin was loaded in memory. | - | plugin_loaded(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' + | plugin_unloading(self, plugin_info) | The plugin is about to be unloaded | - | plugin_unloading(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) -> 'void' - | IDA is populating the context menu for a widget. This is your - | chance to 'attach_action_to_popup()' .Have a look at - | ui_finish_populating_widget_popup, if you want to augment the context - | menu with your own actions after the menu has had a chance to be - | properly populated by the owning component or plugin (which typically - | does it on ui_populating_widget_popup.) - | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is populating the context menu for a widget. This is your chance to + | attach_action_to_popup(). + | + | Have a look at ui_finish_populating_widget_popup, if you want to augment the + | context menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically does it on + | ui_populating_widget_popup.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) -> 'void' + | postprocess_action(self) | an ida ui action has been handled | | preprocess_action(self, *args) -> 'int' + | preprocess_action(self, name) -> int | ida ui is about to handle a user action. | - | preprocess_action(self, name) -> int - | @param name: ui action name. these names can be looked up in - | ida[tg]ui.cfg (C++: const char *) - | @retval: 0 - ok - | @retval: nonzero - a plugin has handled the command + | @param name: (const char *) ui action name. these names can be looked up in + | ida[tg]ui.cfg + | @retval 0: ok + | @retval nonzero: a plugin has handled the command | | range(self, *args) -> 'void' - | The disassembly range has been changed (\inf{min_ea} ... - | \inf{max_ea}). UI should redraw the scrollbars. See also: - | 'ui_lock_range_refresh' + | range(self) + | The disassembly range has been changed ( idainfo::min_ea ... + | idainfo::max_ea). UI should redraw the scrollbars. See also: + | ui_lock_range_refresh | | ready_to_run(self, *args) -> 'void' - | all UI elements have been initialized. Automatic plugins may hook - | to this event to perform their tasks. + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) -> 'void' - | Resume the suspended graphical interface. Only the text version. - | Interface should respond to it + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) -> 'void' - | The kernel has saved the database. This callback just informs the - | interface. Note that at the time this notification is sent, the - | internal paths are not updated yet, and calling - | get_path(PATH_TYPE_IDB) will return the previous path. - | | saved(self, path) - | @param path: the database path (C++: const char *) + | The kernel has saved the database. This callback just informs the interface. + | Note that at the time this notification is sent, the internal paths are not + | updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path. + | + | @param path: (const char *) the database path | | saving(self, *args) -> 'void' - | The kernel is flushing its buffers to the disk. The user interface - | should save its state. Parameters: none Returns: none + | saving(self) + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) -> 'void' + | screen_ea_changed(self, ea, prev_ea) | The "current address" changed | - | screen_ea_changed(self, ea, prev_ea) - | @param ea (C++: ea_t) - | @param prev_ea (C++: ea_t) + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) -> 'void' + | set_widget_config(self, widget, cfg) | set the widget configuration | - | set_widget_config(self, widget, cfg) - | @param widget (C++: const TWidget *) - | @param cfg (C++: const jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) -> 'void' - | Suspend graphical interface. Only the text version. Interface - | should respond to it. + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updated_actions(self, *args) -> 'void' + | updated_actions(self) | IDA is done updating actions. | | updating_actions(self, *args) -> 'void' - | IDA is about to update all actions. If your plugin needs to - | perform expensive operations more than once (e.g., once per action it - | registers), you should do them only once, right away. - | | updating_actions(self, ctx) - | @param ctx (C++: action_update_ctx_t *) + | IDA is about to update all actions. If your plugin needs to perform + | expensive operations more than once (e.g., once per action it registers), you + | should do them only once, right away. + | + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) -> 'void' - | TWidget is about to close. This event precedes ui_widget_invisible. - | Use this to perform some possible actions relevant to the lifecycle of - | this widget - | | widget_closing(self, widget) - | @param widget (C++: TWidget *) + | TWidget is about to close. This event precedes ui_widget_invisible. Use this to + | perform some possible actions relevant to the lifecycle of this widget + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) -> 'void' + | widget_invisible(self, widget) | TWidget is being closed. Use this event to destroy the window controls | - | widget_invisible(self, widget) - | @param widget (C++: TWidget *) + | @param widget: (TWidget *) | | widget_visible(self, *args) -> 'void' - | TWidget is displayed on the screen. Use this event to populate the - | window with controls - | | widget_visible(self, widget) - | @param widget (C++: TWidget *) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55723,15 +54584,18 @@ class View_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -55740,87 +54604,87 @@ class View_Hooks(builtins.object) | unhook(self) -> bool | | view_activated(self, *args) -> 'void' + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, *args) -> 'void' + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) -> 'void' + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, *args) -> 'void' + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, *args) -> 'void' + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, *args) -> 'void' + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) -> 'void' - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) -> 'void' - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55869,34 +54733,49 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool - addr: ea_t * - format: char const * + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) -> 'sval_t *' _ask_long(value, format) -> bool - value: sval_t * - format: char const * + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) -> 'sel_t *' _ask_seg(sel, format) -> bool - sel: sel_t * - format: char const * + + Parameters + ---------- + sel: sel_t * + format: char const * Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: _kludge_force_declare_dirspec_t(*args) -> 'void' _kludge_force_declare_dirspec_t(arg1) - arg1: dirspec_t const * + + Parameters + ---------- + arg1: dirspec_t const * Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: _kludge_force_declare_dirtree_t(*args) -> 'void' _kludge_force_declare_dirtree_t(arg1) - arg1: dirtree_t const * + + Parameters + ---------- + arg1: dirtree_t const * Help on class action_ctx_base_cur_sel_t in module ida_kernwin: @@ -55926,13 +54805,13 @@ class action_ctx_base_cur_sel_t(builtins.object) | list of weak references to the object (if defined) | | _from - | action_ctx_base_cur_sel_t__from_get(self) -> twinpos_t + | _from | | thisown | The membership flag | | to - | action_ctx_base_cur_sel_t_to_get(self) -> twinpos_t + | to Help on class action_ctx_base_source_t in module ida_kernwin: @@ -55962,7 +54841,7 @@ class action_ctx_base_source_t(builtins.object) | list of weak references to the object (if defined) | | chooser - | action_ctx_base_source_t_chooser_get(self) -> chooser_base_t + | chooser | | thisown | The membership flag @@ -55982,22 +54861,14 @@ class action_ctx_base_t(builtins.object) | __swig_destroy__ = delete_action_ctx_base_t(...) | delete_action_ctx_base_t(self) | - | _get_form(self, *args) -> 'TWidget *' - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) -> 'qstring' - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) -> 'twidget_type_t' - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) -> 'bool' + | has_flag(self, flag) -> bool | Check if the given flag is set. | - | has_flag(self, flag) -> bool - | @param flag (C++: uint32) + | @param flag: (C++: uint32) | | reset(self, *args) -> 'void' + | reset(self) | Invalidate all context info. | | ---------------------------------------------------------------------- @@ -56010,82 +54881,79 @@ class action_ctx_base_t(builtins.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum | | cur_enum_member - | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg | | cur_sel - | action_ctx_base_t_cur_sel_get(self) -> action_ctx_base_cur_sel_t + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | dirtree_selection - | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname | | source - | action_ctx_base_t_source_get(self) -> action_ctx_base_source_t + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type Help on class action_desc_t in module ida_kernwin: @@ -56096,13 +54964,14 @@ class action_desc_t(builtins.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | name: char const * - | label: char const * - | handler: PyObject * - | shortcut: char const * - | tooltip: char const * - | icon: int - | flags: int + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -56119,31 +54988,31 @@ class action_desc_t(builtins.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> void const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip Help on class action_handler_t in module ida_kernwin: @@ -56156,8 +55025,22 @@ class action_handler_t(builtins.object) | Initialize self. See help(type(self)) for accurate signature. | | activate(self, ctx) + | Activate an action. This function implements the core behavior of an action. It + | is called when the action is triggered, from a menu, from a popup menu, from the + | toolbar, or programmatically. + | + | @return: non-zero: all IDA windows will be refreshed | | update(self, ctx) + | Update an action. This is called when the context of the UI changed, and we need + | to let the action update some of its properties if needed (label, icon, ...) + | + | In addition, this lets IDA know whether the action is enabled, and when it + | should be queried for availability again. + | + | Note: This callback is not meant to change anything in the application's state, + | except by calling one (or many) of the "update_action_*()" functions on this + | very action. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56171,16 +55054,16 @@ class action_handler_t(builtins.object) Help on function activate_widget in module ida_kernwin: activate_widget(*args) -> 'void' - Activate widget (only gui version) ( 'ui_activate_widget' ). - activate_widget(widget, take_focus) - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) -> 'PyObject *' - add_hotkey(hotkey, pyfunc) -> PyObject * + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -56192,28 +55075,28 @@ add_hotkey(*args) -> 'PyObject *' Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) -> 'PyObject *' - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. + add_spaces(s, len) -> str + Add space characters to the colored string so that its length will be at least + 'len' characters. Don't trim the string if it is longer than 'len'. - add_spaces(s, len) -> PyObject * - s: char const * - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) -> 'int' + addon_count() -> int Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -56241,115 +55124,146 @@ class addon_info_t(builtins.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) -> 'void' - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: ask_addr(defval, format) - # ---------------------------------------------------------------------- + Output a formatted string to the output window (msg) preprended with "**DATABASE + IS CORRUPTED: " Display a dialog box and wait for the user to input an address + (ui_ask_addr). + + @retval 0: the user pressed Esc. + @retval 1: ok, the user entered an address Help on function ask_buttons in module ida_kernwin: ask_buttons(*args) -> 'int' - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - ask_buttons(Yes, No, Cancel, deflt, format) -> int - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + Display a dialog box and get choice from maximum three possibilities + (ui_ask_buttons). + @note: for all buttons: + * use "" or nullptr to take the default name for the button. + * use 'format' to hide the cancel button + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) printf-style format string for question. It may have some + prefixes, see below. + @return: one of Button IDs specifying the selected button (Esc key returns + Cancel/3rd button value) Help on function ask_file in module ida_kernwin: ask_file(*args) -> 'char *' ask_file(for_saving, defval, format) -> char * - @param for_saving (C++: bool) - @param defval (C++: const char *) - @param format (C++: const char *) + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: ask_for_feedback(*args) -> 'void' - Show a message box asking to send the input file tosupport@hex- - rays.com. - ask_for_feedback(format) - @param format: the reason why the input file is bad (C++: const char - *) + Show a message box asking to send the input file to \link{mailto:support@hex- + rays.com,support@hex-rays.com}. + + @param format: (C++: const char *) the reason why the input file is bad Help on function ask_form in module ida_kernwin: ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" keyword, then the return values are the same as in the ask_yn() + function (Button IDs) + + @retval 0: the user pressed Esc, no memory to display or form syntax error a + dialog box (a warning is displayed in this case). all variables + retain their original values. + @retval 1: ok, all input fields are filled and validated. + @retval -1: the form had BUTTON CANCEL and the user cancelled the dialog Help on function ask_ident in module ida_kernwin: ask_ident(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an identifier. If the user + enters a non-valid identifier, this function displays a warning and allows the + user to correct it. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: ask_long(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an number (ui_ask_long). The + number is represented in C-style. This function allows to enter any IDC + expression and properly calculates it. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered a valid number. Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' - ask_str(defval, hist, prompt) -> PyObject * + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' - ask_text(max_size, defval, prompt) -> PyObject * + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -56360,106 +55274,97 @@ ask_text(*args) -> 'PyObject *' Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) -> 'bool' - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). + attach_action_to_menu(menupath, name, flags=0) -> bool + Attach a previously-registered action to the menu (ui_attach_action_to_menu). + @note: You should not change top level menu, or the Edit,Plugins submenus If you + want to modify the debugger menu, do it at the ui_debugger_menu_change + event (ida might destroy your menu item if you do it elsewhere). - attach_action_to_menu(menupath, name, flags) -> bool - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success + @param menupath: (C++: const char *) path to the menu item after or before which the insertion will + take place. + * Example: Debug/StartProcess + * Whitespace, punctuation are ignored. + * It is allowed to specify only the prefix of the menu item. + * Comparison is case insensitive. + * menupath may start with the following prefixes: + * [S] - modify the main menu of the structure window + * [E] - modify the main menu of the enum window + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) -> 'bool' - Insert a previously-registered action into the widget's popup menu ( - 'ui_attach_action_to_popup' ). This function has two "modes": 'single- - shot', and 'permanent'. - attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success + Insert a previously-registered action into the widget's popup menu + (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and + 'permanent'. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup menu + * if non-nullptr, the action is added to this popup menu invocation (i.e., + 'single-shot') + * if nullptr, the action is added to a list of actions that should always be + present in context menus for this widget (i.e., 'permanent'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) -> 'bool' - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - attach_action_to_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) -> 'bool' - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success + Create & insert an action into the widget's popup menu + (ui_attach_dynamic_action_to_popup). + @note: action_desc_t::handler for 'desc' must be instantiated using 'new', as it + will be 'delete'd when the action is unregistered. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup + @param desc: (C++: const action_desc_t &) created with DYNACTION_DESC_LITERAL + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ constants (see Set menu flags) + @return: success Help on function banner in module ida_kernwin: banner(*args) -> 'bool' - Show a banner dialog box ( 'ui_banner' ). - banner(wait) -> bool - @param wait: time to wait before closing (C++: int) - @retval: 1 - ok - @retval: 0 - esc was pressed + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) -> 'void' - Issue a beeping sound ( 'ui_beep' ). - beep(beep_type=beep_default) - @param beep_type: beep_t (C++: beep_t) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: @@ -56467,108 +55372,114 @@ call_nav_colorizer(*args) -> 'uint32' call_nav_colorizer(dict, ea, nbytes) -> uint32 To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) -> 'bool' - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - cancel_exec_request(req_id) -> bool - @param req_id: request id (C++: int) - @retval: true - successfully canceled - @retval: false - request has already been processed. + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. Help on function cancel_thread_exec_requests in module ida_kernwin: cancel_thread_exec_requests(*args) -> 'int' - Try to cancel asynchronous exec requests created by the specified - thread. - cancel_thread_exec_requests(tid) -> int - @param tid: thread id (C++: qthread_t) - @return: number of the canceled requests. + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) -> 'PyObject *' choose_create_embedded_chobj(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) -> 'ea_t' - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - choose_entry(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) -> 'enum_t' - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - choose_enum(title, default_id) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) -> 'uchar *' - Choose an enum, restricted by value & size ( 'ui_choose' , - 'chtype_enum_by_value_and_size' ). If the given value cannot be found - initially, this function will ask if the user would like to import a - standard enum. - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uint64) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) -> 'PyObject *' - choose_find(title) -> PyObject * - title: char const * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) -> 'func_t *' - Choose a function ( 'ui_choose' , 'chtype_func' ). - choose_func(title, default_ea) -> func_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) -> 'TWidget *' choose_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: @@ -56581,71 +55492,75 @@ choose_idasgn(*args) -> 'PyObject *' Help on function choose_name in module ida_kernwin: choose_name(*args) -> 'ea_t' - Choose a name ( 'ui_choose' , 'chtype_name' ). - choose_name(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) -> 'void' choose_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) -> 'segment_t *' - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - choose_segm(title, default_ea) -> segment_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) -> 'sreg_range_t *' - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - choose_srcp(title) -> sreg_range_t * - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) -> 'ea_t' - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - choose_stkvar_xref(pfn, mptr) -> ea_t - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) -> 'struc_t *' - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - choose_struc(title) -> struc_t * - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) -> 'qstring *' - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). + + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) -> 'ea_t' - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - choose_xref(to) -> ea_t - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected Help on class chooser_base_t in module ida_kernwin: @@ -56660,6 +55575,7 @@ class chooser_base_t(builtins.object) | __repr__ = _swig_repr(self) | | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool | should chooser generate ui_get_chooser_item_attrs events? | | can_del(self, *args) -> 'bool' @@ -56672,6 +55588,7 @@ class chooser_base_t(builtins.object) | can_filter(self) -> bool | | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool | is an operation allowed? | | can_refresh(self, *args) -> 'bool' @@ -56681,27 +55598,29 @@ class chooser_base_t(builtins.object) | can_sort(self) -> bool | | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint | get number of the built-in chooser | | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t | get the number of elements in the chooser | | get_ea(self, *args) -> 'ea_t' - | get an address of an element. Used to set breakpoint in any chooser - | which implements this callback. - | | get_ea(self, arg2) -> ea_t - | arg2: size_t - | @return: the effective address, BADADDR if the element has no address + | get an address of an element. Used to set breakpoint in any chooser which + | implements this callback. + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address | | get_quick_filter_initial_mode(self, *args) -> 'int' | get_quick_filter_initial_mode(self) -> int | | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) | get a description of an element. | - | get_row(self, n) -> PyObject * - | @param n: element number (0.. get_count() -1) (C++: size_t) + | @param n: (C++: size_t) element number (0..get_count()-1) | | has_diff_capability(self, *args) -> 'bool' | has_diff_capability(self) -> bool @@ -56709,35 +55628,42 @@ class chooser_base_t(builtins.object) | has_dirtree(self, *args) -> 'bool' | has_dirtree(self) -> bool | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool | should selection of the already opened non-modal chooser be changed? | | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool | is choose modal? | | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool | is multi-selection allowed? | | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool | can use the chooser before opening the database? | | is_quick_filter_visible_initially(self, *args) -> 'bool' | is_quick_filter_visible_initially(self) -> bool | | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool | do the current and the given objects hold the same data? | - | is_same(self, other) -> bool - | @param other (C++: const chooser_base_t *) + | @param other: (C++: const chooser_base_t *) chooser_base_t const * | | is_status_bar_hidden(self, *args) -> 'bool' | is_status_bar_hidden(self) -> bool | | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, i) -> bool | is a popup action allowed? | - | popup_allowed(self, i) -> bool - | @param i (C++: int) + | @param i: (C++: int) | | should_rename_trigger_edit(self, *args) -> 'bool' | should_rename_trigger_edit(self) -> bool @@ -56755,46 +55681,46 @@ class chooser_base_t(builtins.object) | list of weak references to the object (if defined) | | columns - | chooser_base_t_columns_get(self) -> int + | columns | | deflt_col - | chooser_base_t_deflt_col_get(self) -> int + | deflt_col | | header - | chooser_base_t_header_get(self) -> char const *const * + | header | | height - | chooser_base_t_height_get(self) -> int + | height | | icon - | chooser_base_t_icon_get(self) -> int + | icon | | popup_names - | chooser_base_t_popup_names_get(self) -> qstring [chooser_base_t::NSTDPOPUPS] + | popup_names | | thisown | The membership flag | | title - | chooser_base_t_title_get(self) -> char const * + | title | | width - | chooser_base_t_width_get(self) -> int + | width | | widths - | chooser_base_t_widths_get(self) -> int const * + | widths | | x0 - | chooser_base_t_x0_get(self) -> int + | x0 | | x1 - | chooser_base_t_x1_get(self) -> int + | x1 | | y0 - | chooser_base_t_y0_get(self) -> int + | y0 | | y1 - | chooser_base_t_y1_get(self) -> int + | y1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56837,10 +55763,10 @@ class chooser_item_attrs_t(builtins.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag @@ -56849,7 +55775,8 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) - @param mask (C++: uint64) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -56883,7 +55810,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | This callback is mandatory. | | @param line: typed line(s) - | @return Boolean: True-executed line, False-ask for more lines + | @return: Boolean: True-executed line, False-ask for more lines | | OnKeydown(self, line, x, sellen, vkey, shift) | A keyboard key has been pressed @@ -56897,8 +55824,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param vkey: virtual key code. if the key has been handled, it should be returned as zero | @param shift: shift state | - | @return: - | None - Nothing was changed + | @return: None - Nothing was changed | tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. | It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line) | @@ -56913,9 +55839,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -56937,105 +55863,97 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) Help on function close_chooser in module ida_kernwin: close_chooser(*args) -> 'bool' - Close a non-modal chooser ( 'ui_close_chooser' ). - close_chooser(title) -> bool - @param title: window title of chooser to close (C++: const char *) - @return: success + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) -> 'void' - Close widget ( 'ui_close_widget' , only gui version). - close_widget(widget, options) - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) -> 'void' - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) -> 'TWidget *' - Create a code viewer ( 'ui_create_code_viewer' ). A code viewer - contains on the left side a widget representing the line numbers, and - on the right side, the child widget passed as parameter. It will - inherit its title from the child widget. - create_code_viewer(custview, flags=0, parent=None) -> TWidget * - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + Create a code viewer (ui_create_code_viewer). A code viewer contains on the left + side a widget representing the line numbers, and on the right side, the child + widget passed as parameter. It will inherit its title from the child widget. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) -> 'TWidget *' + create_empty_widget(title, icon=-1) -> TWidget * Create an empty widget, serving as a container for custom user widgets - create_empty_widget(title, icon=-1) -> TWidget * - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) -> 'bool' - Create a menu with the given name, label and optional position, either - in the menubar, or as a submenu. If 'menupath' is non-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + create_menu(name, label, menupath=None) -> bool + Create a menu with the given name, label and optional position, either in the + menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information + about where the menu should be positioned. First, IDA will try and resolve the + corresponding menu by its name. If such an existing menu is found and is present + in the menubar, then the new menu will be inserted in the menubar before it. + Otherwise, IDA will try to resolve 'menupath' as it would for + attach_action_to_menu() and, if found, add the new menu like so: // The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment..." command create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - or - // The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(...)", "My menu", "Edit/Comments/"); - If the above fails, the new menu will be appended to the menubar. - create_menu(name, label, menupath=None) -> bool - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) -> 'bool' + create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position - create_toolbar(name, label, before=None, flags=0) -> bool - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) -> 'bool' - Append 'loc' to the viewer's history, and cause the viewer to display - it. - custom_viewer_jump(v, loc, flags=0) -> bool - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success Help on function del_hotkey in module ida_kernwin: @@ -57051,58 +55969,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) -> 'bool' + delete_menu(name) -> bool Delete an existing menu - delete_menu(name) -> bool - @param name: name of menu (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu + @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) -> 'bool' + delete_toolbar(name) -> bool Delete an existing toolbar - delete_toolbar(name) -> bool - @param name: name of toolbar (C++: const char *) - @return: success + @param name: (C++: const char *) name of toolbar + @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) -> 'bool' - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - detach_action_from_menu(menupath, name) -> bool - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) -> 'bool' - Remove a previously-registered action, from the list of 'permanent' - context menu actions for this widget ( 'ui_detach_action_from_popup' - ). This only makes sense if the action has been added to 'widget's - list of permanent popup actions by calling attach_action_to_popup in - 'permanent' mode. - detach_action_from_popup(widget, name) -> bool - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + Remove a previously-registered action, from the list of 'permanent' context menu + actions for this widget (ui_detach_action_from_popup). This only makes sense if + the action has been added to 'widget's list of permanent popup actions by + calling attach_action_to_popup in 'permanent' mode. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) -> 'bool' - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - detach_action_from_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on class disabled_script_timeout_t in module ida_kernwin: @@ -57131,7 +56049,9 @@ class disasm_line_t(builtins.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | other: disasm_line_t const & + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -57148,19 +56068,19 @@ class disasm_line_t(builtins.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -57174,11 +56094,14 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | x: qvector< disasm_line_t > const & + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57190,22 +56113,23 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: disasm_line_t const & + | + | @param i: size_t + | @param v: disasm_line_t const & | | __swig_destroy__ = delete_disasm_text_t(...) | delete_disasm_text_t(self) | | at(self, *args) -> 'disasm_line_t const &' | at(self, _idx) -> disasm_line_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -57218,16 +56142,16 @@ class disasm_text_t(builtins.object) | | end(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator | + | @param it: qvector< disasm_line_t >::iterator | | erase(self, first, last) -> disasm_line_t - | first: qvector< disasm_line_t >::iterator - | last: qvector< disasm_line_t >::iterator + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -57237,47 +56161,56 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: disasm_line_t * - | len: size_t + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator - | x: disasm_line_t const & + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: disasm_line_t const & | + | @param _newsize: size_t + | @param x: disasm_line_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< disasm_line_t > & + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57297,57 +56230,60 @@ class disasm_text_t(builtins.object) Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) -> 'bool' - Display copyright warning ( 'ui_copywarn' ). + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no Help on function display_widget in module ida_kernwin: display_widget(*args) -> 'void' + display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before - display_widget(widget, options, dest_ctrl=None) - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param dest_ctrl: (C++: const char *) where to dock: if nullptr or invalid then use the active + docker if there is not create a new tab relative to current + active tab Help on function ea2str in module ida_kernwin: ea2str(*args) -> 'size_t' + ea2str(ea) -> str Convert linear address to UTF-8 string. - ea2str(ea) -> str - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) -> 'bool' - Push current location in the history and jump to the given location ( - 'ui_ea_viewer_history_push_and_jump' ). This will jump in the given ea - viewer and also in other synchronized views. - ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + Push current location in the history and jump to the given location + (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and + also in other synchronized views. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) -> 'bool' - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - enable_chooser_item_attrs(chooser_caption, enable) -> bool - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success + Enable item-specific attributes for chooser items + (ui_enable_chooser_item_attrs). For example: color list items differently + depending on a criterium. + If enabled, the chooser will generate ui_get_chooser_item_attrs + events that can be intercepted by a plugin to modify the item attributes. + This event is generated only in the GUI version of IDA. + Specifying CH_ATTRS bit at the chooser creation time has the same effect. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -57373,202 +56309,207 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -57580,7 +56521,7 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: @@ -57598,7 +56539,7 @@ execute_sync(*args) -> 'int' If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -57617,334 +56558,371 @@ execute_ui_requests(*args) -> 'bool' Help on function find_widget in module ida_kernwin: find_widget(*args) -> 'TWidget *' - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - find_widget(caption) -> TWidget * - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + Find widget with the specified caption (only gui version) (ui_find_widget). NB: + this callback works only with the tabbed widgets! + + @param caption: (C++: const char *) title of tab, or window title if widget is not tabbed + @return: pointer to the TWidget, nullptr if none is found Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) -> 'void' formchgcbfa_close(p_fa, close_normally) - p_fa: size_t - close_normally: int + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) -> 'bool' formchgcbfa_enable_field(p_fa, fid, enable) -> bool - p_fa: size_t - fid: int - enable: bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) -> 'PyObject *' formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - p_fa: size_t - fid: int - ft: int - sz: size_t + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) -> 'int' formchgcbfa_get_focused_field(p_fa) -> int - p_fa: size_t + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) -> 'bool' formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - p_fa: size_t - fid: int - x: int - y: int - w: int - h: int + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) -> 'bool' formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - p_fa: size_t - fid: int - ft: int - py_val: PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) -> 'bool' formchgcbfa_set_focused_field(p_fa, fid) -> bool - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) -> 'bool' formchgcbfa_show_field(p_fa, fid, show) -> bool - p_fa: size_t - fid: int - show: bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) -> 'void' free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) -> 'void' + gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range. - gen_disasm_text(text, ea1, ea2, truncate_lines) - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) -> 'bool *' - Get an action's checkability ( 'ui_get_action_attr' ). - get_action_checkable(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) -> 'bool *' - Get an action's checked state ( 'ui_get_action_attr' ). - get_action_checked(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) -> 'int *' - Get an action's icon ( 'ui_get_action_attr' ). - get_action_icon(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) -> 'qstring *' - Get an action's label ( 'ui_get_action_attr' ). - get_action_label(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) -> 'qstring *' - Get an action's shortcut ( 'ui_get_action_attr' ). - get_action_shortcut(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) -> 'action_state_t *' - Get an action's state ( 'ui_get_action_attr' ). - get_action_state(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) -> 'qstring *' - Get an action's tooltip ( 'ui_get_action_attr' ). - get_action_tooltip(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) -> 'bool *' - Get an action's visibility ( 'ui_get_action_attr' ). - get_action_visibility(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) -> 'TWidget *' - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. + get_active_modal_widget() -> TWidget * + Get the current, active modal TWidget instance. Note that in this context, the + "wait dialog" is not considered: this function will return nullptr even if it is + currently shown. + + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) -> 'bool' - Get info about a registered addon with a given product code. info->cb - must be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info(id, info) -> bool - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found + Get info about a registered addon with a given product code. info->cb must be + valid! NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) -> 'bool' - Get info about a registered addon with specific index. info->cb must - be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info_idx(index, info) -> bool - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range + Get info about a registered addon with specific index. info->cb must be valid! + NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) -> 'PyObject *' - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. + get_chooser_data(chooser_caption, n) -> [str, ...] + Get the text corresponding to the index N in the chooser data. Use -1 to get the + header. - get_chooser_data(chooser_caption, n) -> PyObject * - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) -> 'void *' - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This attemps to find the choser by its title - and, if found, returns the result of calling its - 'chooser_base_t::get_chooser_obj()' method.This is object is chooser- - specific. - get_chooser_obj(chooser_caption) -> void * - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + Get the underlying object of the specified chooser (ui_get_chooser_obj). + + This attemps to find the choser by its title and, if found, returns the result + of calling its chooser_base_t::get_chooser_obj() method. + + @note: This is object is chooser-specific. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) -> 'char const *' - Get current line from the disassemble window ( 'ui_get_curline' ). + get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). + + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) -> 'TWidget *' - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) -> 'TWidget *' - Get a pointer to the current widget ( 'ui_get_current_widget' ). + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) -> 'int *, int *' - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based + + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) -> 'char const *' - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - get_custom_viewer_curline(custom_viewer, mouse) -> char const * - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + Get current line of custom viewer (ui_get_custom_viewer_curline). The returned + line contains color codes + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: get_custom_viewer_location(*args) -> 'bool' - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + Get the current location in a custom viewer (ui_get_custom_viewer_location). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) -> 'int *, int *' - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' - get_custom_viewer_place(custom_viewer, mouse) -> place_t - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + Get current place in a custom viewer (ui_get_curplace). + + See also the more complete get_custom_viewer_location() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param pitem: (C++: const place_t *) a place corresponding to the item + @return: -1 if 'pitem' is not included in the line + -2 if 'pitem' points at the entire line + >= 0 for the X coordinate within the pline, where pitem points Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) -> 'bool' - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - get_ea_viewer_history_info(nback, nfwd, v) -> bool - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - @retval: false - if the given ea viewer does not exist - @retval: true - otherwise + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) -> 'ea_t' + get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view. - get_hexdump_ea(hexdump_num) -> ea_t - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' - get_highlight(v) -> PyObject * + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error. Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) -> 'size_t' + get_kernel_version() -> str Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) -> 'ushort' - Get keyboard key code by its name ( 'ui_get_key_code' ) - get_key_code(keyname) -> ushort - @param keyname (C++: const char *) + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) -> 'ea_t' + get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address. - get_navband_ea(pixel) -> ea_t - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: @@ -57958,150 +56936,170 @@ get_navband_pixel(*args) -> 'bool *' Help on function get_opnum in module ida_kernwin: get_opnum(*args) -> 'int' - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) -> 'qstring *' - Get current line of output window ( 'ui_get_output_curline' ). - get_output_curline(mouse) -> str - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) -> 'int *, int *' - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + get_output_cursor() -> bool + Get coordinates of the output window's cursor (ui_get_output_cursor). + @note: coordinates are 0-based + @note: this function will succeed even if the output window is not visible + + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) -> 'qstring *' - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection Help on function get_place_class in module ida_kernwin: get_place_class(*args) -> 'place_t const *' - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - get_place_class(out_flags, out_sdk_version, id) -> place_t - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + Get information about a previously-registered place_t class. See also + register_place_class(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) -> 'int' - Get the place class ID for the place that has been registered as - 'name'. - get_place_class_id(name) -> int - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) -> 'place_t const *' - See 'get_place_class()' - get_place_class_template(id) -> place_t - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_synced_group in module ida_kernwin: get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with - get_synced_group(w) -> synced_group_t - @param w: the widget (C++: const TWidget *) - @return: the group of widgets/registers, or NULL + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) -> 'int' - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - get_tab_size(path) -> int - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> 'bool' + get_user_input_event(out) -> bool + Get the current user input event (mouse button press, key press, ...) It is + sometimes desirable to be able to tell when a certain situation happens (e.g., + 'view_curpos' gets triggered); this function exists to provide that context (GUI + version only) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) -> 'void' get_user_strlist_options(out) - @param out (C++: strwinsetup_t *) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) -> 'tcc_renderer_type_t' - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - get_view_renderer_type(v) -> tcc_renderer_type_t - @param v (C++: TWidget *) + Get the type of renderer currently in use in the given view + (ui_get_renderer_type) + + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) -> 'tcc_place_type_t' - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - get_viewer_place_type(viewer) -> tcc_place_type_t - @param viewer (C++: TWidget *) + Get the type of place_t instances a viewer uses & creates + (ui_get_viewer_place_type). + + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) -> 'void *' - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - get_viewer_user_data(viewer) -> void * - @param viewer (C++: TWidget *) + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) -> 'qstring *' - Get the TWidget's title ( 'ui_get_widget_title' ). - get_widget_title(widget) -> str - @param widget (C++: TWidget *) + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) -> 'twidget_type_t' - Get the type of the TWidget * ( 'ui_get_widget_type' ). - get_widget_type(widget) -> twidget_type_t - @param widget (C++: TWidget *) + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) -> 'void *' + get_window_id(name=None) -> void * Get the system-specific window ID (GUI version only) - get_window_id(name=None) -> void * - @param name (C++: const char *) - @return: the low-level window ID + @param the: name of the window (nullptr means the main IDA window) + @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) -> 'void' + hide_wait_box() Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -58128,7 +57126,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -58137,184 +57135,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -58326,46 +57329,208 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) - @param format (C++: const char *) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) -> 'int' - Install command line interpreter ( 'ui_install_cli' ) - install_command_interpreter(py_obj) -> int - py_obj: PyObject * + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) -> 'int' internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - @param tmplate (C++: const place_t *) - @param flags (C++: int) - @param owner (C++: const plugin_t *) - @param sdk_version (C++: int) + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) -> 'bool' + is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*. - is_action_enabled(s) -> bool - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) -> 'bool' + is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget? - is_chooser_widget(t) -> bool - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: @@ -58376,32 +57541,33 @@ is_idaq(*args) -> 'bool' Help on function is_idaview in module ida_kernwin: is_idaview(*args) -> 'bool' - Is the given custom view an idaview? ( 'ui_is_idaview' ) - is_idaview(v) -> bool - @param v (C++: TWidget *) + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) -> 'bool' + is_msg_inited() -> bool Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) -> 'bool' - See 'get_place_class()' - is_place_class_ea_capable(id) -> bool - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) -> 'bool' + is_refresh_requested(mask) -> bool Get a refresh request state - is_refresh_requested(mask) -> bool - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -58416,7 +57582,7 @@ class jobj_wrapper_t(builtins.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) -> 'PyObject *' - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58433,29 +57599,28 @@ class jobj_wrapper_t(builtins.object) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function l_compare2 in module ida_kernwin: l_compare2(*args) -> 'int' l_compare2(t1, t2, ud) -> int - @param t1 (C++: const place_t *) - @param t2 (C++: const place_t *) - @param ud (C++: void *) + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * Help on class line_rendering_output_entries_refs_t in module ida_kernwin: @@ -58466,15 +57631,19 @@ class line_rendering_output_entries_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' | __getitem__(self, i) -> line_rendering_output_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> line_rendering_output_entries_refs_t - | x: qvector< line_rendering_output_entry_t * > const & + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58484,33 +57653,43 @@ class line_rendering_output_entries_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: line_rendering_output_entry_t *const & + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & | | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) | delete_line_rendering_output_entries_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & | | _internal_push_back(self, *args) -> 'void' | _internal_push_back(self, e) - | e: line_rendering_output_entry_t * + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | at(self, *args) -> 'line_rendering_output_entry_t *const &' | at(self, _idx) -> line_rendering_output_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58534,40 +57713,45 @@ class line_rendering_output_entries_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator | + | @param it: qvector< line_rendering_output_entry_t * >::iterator | | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator - | first: qvector< line_rendering_output_entry_t * >::iterator - | last: qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator | | extract(self, *args) -> 'line_rendering_output_entry_t **' | extract(self) -> line_rendering_output_entry_t ** | | find(self, *args) -> 'qvector< line_rendering_output_entry_t * >::const_iterator' | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & | + | @param x: line_rendering_output_entry_t *const & | | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: line_rendering_output_entry_t ** - | len: size_t + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -58579,23 +57763,26 @@ class line_rendering_output_entries_refs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: line_rendering_output_entry_t *const & | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< line_rendering_output_entry_t * > & + | + | @param r: qvector< line_rendering_output_entry_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58626,25 +57813,28 @@ class line_rendering_output_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __init__(self, *args) | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _flags: uint32 - | _bg_color: bgcolor_t | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _cpx: int - | _nchars: int - | _flags: uint32 - | _bg_color: bgcolor_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __repr__ = _swig_repr(self) | @@ -58670,19 +57860,19 @@ class line_rendering_output_entry_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | bg_color | | cpx - | line_rendering_output_entry_t_cpx_get(self) -> int + | cpx | | flags - | line_rendering_output_entry_t_flags_get(self) -> uint32 + | flags | | line - | line_rendering_output_entry_t_line_get(self) -> twinline_t + | line | | nchars - | line_rendering_output_entry_t_nchars_get(self) -> int + | nchars | | thisown | The membership flag @@ -58701,7 +57891,8 @@ class linearray_t(builtins.object) | | __init__(self, *args) | __init__(self, _ud) -> linearray_t - | _ud: void * + | + | @param _ud: void * | | __repr__ = _swig_repr(self) | @@ -58709,58 +57900,69 @@ class linearray_t(builtins.object) | delete_linearray_t(self) | | beginning(self, *args) -> 'bool' + | beginning(self) -> bool | Are we at the beginning? | | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * | Get a line from down direction. place is ok BEFORE | | ending(self, *args) -> 'bool' | ending(self) -> bool | | get_bg_color(self, *args) -> 'bgcolor_t' - | Get current background color. (the same behavior as with 'get_place()' - | : good before 'down()' and after 'up()' ) + | get_bg_color(self) -> bgcolor_t + | Get current background color. (the same behavior as with get_place(): good + | before down() and after up()) | | get_dlnnum(self, *args) -> 'int' - | Get default line number. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_dlnnum(self) -> int + | Get default line number. (the same behavior as with get_place(): good before + | down() and after up()) | | get_linecnt(self, *args) -> 'int' + | get_linecnt(self) -> int | Get number of lines for the current place. (the same behavior as with - | 'get_place()' : good before 'down()' and after 'up()' ) + | get_place(): good before down() and after up()) | | get_pfx_color(self, *args) -> 'bgcolor_t' - | Get current prefix color. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_pfx_color(self) -> bgcolor_t + | Get current prefix color. (the same behavior as with get_place(): good before + | down() and after up()) | | get_place(self, *args) -> 'place_t *' - | Get the current place. If called before 'down()' , then returns place - | of line which will be returned by 'down()' . If called after 'up()' , - | then returns place if line returned by 'up()' . + | get_place(self) -> place_t + | Get the current place. If called before down(), then returns place of line which + | will be returned by down(). If called after up(), then returns place if line + | returned by up(). | | set_place(self, *args) -> 'int' - | Position the array. This function must be called before calling any - | other member functions. 'linearray_t' doesn't own 'place_t' - | structures. The caller must take care of 'place_t' objects. - | | set_place(self, new_at) -> int - | @param new_at: new position of the array (C++: const place_t *) - | @return: the delta of lines that the linearray_t had to adjust the - | place by. For example, if the place_t has a lnnum of 5, - | but it turns out, upon generating lines, that the number of - | lines for that particular place is only 2, then 3 will be - | returned. + | Position the array. This function must be called before calling any other member + | functions. + | + | linearray_t doesn't own place_t structures. The caller must take care of place_t + | objects. + | + | @param new_at: (C++: const place_t *) new position of the array + | @return: the delta of lines that the linearray_t had to adjust the place by. + | For example, if the place_t has a lnnum of 5, but it turns out, upon generating + | lines, + | that the number of lines for that particular place is only 2, then 3 will be + | returned. | | set_userdata(self, *args) -> 'void' + | set_userdata(self, userd) | Change the user data. | - | set_userdata(self, userd) - | @param userd (C++: void *) + | @param userd: (C++: void *) | | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * | Get a line from up direction. place is ok AFTER | | userdata(self, *args) -> 'void *' + | userdata(self) -> void * | Get pointer to user data. | | ---------------------------------------------------------------------- @@ -58800,13 +58002,13 @@ class lines_rendering_input_t(builtins.object) | list of weak references to the object (if defined) | | cb - | lines_rendering_input_t_cb_get(self) -> int + | cb | | sections_lines - | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | sections_lines | | sync_group - | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | sync_group | | thisown | The membership flag @@ -58820,14 +58022,16 @@ class lines_rendering_output_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __init__(self, *args) | __init__(self) -> lines_rendering_output_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __repr__ = _swig_repr(self) | @@ -58839,7 +58043,8 @@ class lines_rendering_output_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lines_rendering_output_t &) + | + | @param r: lines_rendering_output_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58851,10 +58056,10 @@ class lines_rendering_output_t(builtins.object) | list of weak references to the object (if defined) | | entries - | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | entries | | flags - | lines_rendering_output_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag @@ -58871,38 +58076,35 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format + Load an icon and return its id (ui_load_custom_icon). - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it + @return: icon id Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) -> 'bool' + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file. - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) -> 'ushort' - Get shortcut code previously created by 'ui_get_key_code' . - lookup_key_code(key, shift, is_qt) -> ushort - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -58915,270 +58117,296 @@ msg(*args) -> 'PyObject *' Help on function msg_clear in module ida_kernwin: msg_clear(*args) -> 'void' + msg_clear() Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) -> 'PyObject *' - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - msg_get_lines(count=-1) -> PyObject * - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) -> 'bool' + msg_save(path) -> bool Save the "Output" window contents into a file - msg_save(path) -> bool - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success + @param path: (C++: qstring &) The path of the file to save the contents into. An empty path means + that the user will be prompted for the destination and, if the file + already exists, the user will be asked to confirm before overriding + its contents. Upon return, 'path' will contain the path that the + user chose. + @return: success Help on function nomem in module ida_kernwin: nomem(*args) -> 'void' nomem(format) - @param format (C++: const char *) + + @param format: char const * Help on function open_bookmarks_window in module ida_kernwin: open_bookmarks_window(*args) -> 'TWidget *' - Open the bookmarks window ( 'ui_open_builtin' ). - open_bookmarks_window(w) -> TWidget * - @param w (C++: TWidget *) - @return: pointer to resulting window + Open the bookmarks window (ui_open_builtin). + + @param ea: index of entry to select by default + @return: pointer to resulting window Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) -> 'TWidget *' - Open the breakpoints window ( 'ui_open_builtin' ). - open_bpts_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) -> 'TWidget *' - Open the function calls window ( 'ui_open_builtin' ). - open_calls_window(ea) -> TWidget * - @param ea (C++: ea_t) - @return: pointer to resulting window + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) -> 'TWidget *' - Open a disassembly view ( 'ui_open_builtin' ). - open_disasm_window(window_title, ranges=None) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) -> 'TWidget *' - Open the enums window ( 'ui_open_builtin' ). - open_enums_window(const_id=BADADDR) -> TWidget * - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) -> 'TWidget *' - Open the exports window ( 'ui_open_builtin' ). - open_exports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_form in module ida_kernwin: open_form(*args) + Display a dockable modeless dialog box and return a handle to it. + + @return: handle to the form or nullptr. the handle can be used with TWidget Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) -> 'TWidget *' - Open the frame window for the given function ( 'ui_open_builtin' ). - open_frame_window(pfn, offset) -> TWidget * - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window if 'pfn' is a valid function and the window + was displayed, + nullptr otherwise Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) -> 'TWidget *' - Open the 'Functions' window ( 'ui_open_builtin' ). - open_funcs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) -> 'TWidget *' - Open a hexdump view ( 'ui_open_builtin' ). - open_hexdump_window(window_title) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) -> 'TWidget *' - Open the exports window ( 'ui_open_builtin' ). - open_imports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) -> 'TWidget *' - Open the local types window ( 'ui_open_builtin' ). - open_loctypes_window(ordinal) -> TWidget * - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) -> 'TWidget *' - Open the modules window ( 'ui_open_builtin' ). + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_names_window in module ida_kernwin: open_names_window(*args) -> 'TWidget *' - Open the names window ( 'ui_open_builtin' ). - open_names_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) -> 'TWidget *' - Open the navigation band window ( 'ui_open_builtin' ). - open_navband_window(ea, zoom) -> TWidget * - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) -> 'TWidget *' - Open the notepad window ( 'ui_open_builtin' ). + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) -> 'TWidget *' - Open the problems window ( 'ui_open_builtin' ). - open_problems_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) -> 'TWidget *' - Open the segments window ( 'ui_open_builtin' ). - open_segments_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) -> 'TWidget *' - Open the segment registers window ( 'ui_open_builtin' ). - open_segregs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) -> 'TWidget *' - Open the selectors window ( 'ui_open_builtin' ). + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) -> 'TWidget *' - Open the signatures window ( 'ui_open_builtin' ). + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) -> 'TWidget *' - Open the call stack window ( 'ui_open_builtin' ). + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) -> 'TWidget *' - Open the 'Strings' window ( 'ui_open_builtin' ). - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) -> 'TWidget *' - Open the structs window ( 'ui_open_builtin' ). - open_structs_window(id=BADADDR, offset=0) -> TWidget * - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) -> 'TWidget *' - Open the threads window ( 'ui_open_builtin' ). + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) -> 'TWidget *' - Open the type libraries window ( 'ui_open_builtin' ). + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) -> 'TWidget *' - Open the tracing window ( 'ui_open_builtin' ). + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_url in module ida_kernwin: open_url(*args) -> 'void' - Open the given url ( 'ui_open_url' ) - open_url(url) - @param url (C++: const char *) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) -> 'TWidget *' - Open the cross references window ( 'ui_open_builtin' ). - open_xrefs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -59196,184 +58424,189 @@ class place_t(builtins.object) | delete_place_t(self) | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59385,7 +58618,7 @@ class place_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -59394,38 +58627,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) -> 'enumplace_t *' place_t_as_enumplace_t(p) -> enumplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) -> 'idaplace_t *' place_t_as_idaplace_t(p) -> idaplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' place_t_as_simpleline_place_t(p) -> simpleline_place_t - p: place_t * + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) -> 'structplace_t *' place_t_as_structplace_t(p) -> structplace_t - p: place_t * + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) - py_link: PyObject * - options: int + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * - py_link: PyObject * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -59436,10 +58675,11 @@ Help on function plgform_show in module ida_kernwin: plgform_show(*args) -> 'bool' plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool - py_link: PyObject * - py_obj: PyObject * - caption: char const * - options: int + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: @@ -59447,15 +58687,17 @@ process_ui_action(*args) -> 'bool' process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean Help on function py_chooser_base_t_get_row in module ida_kernwin: py_chooser_base_t_get_row(*args) -> 'PyObject *' py_chooser_base_t_get_row(chobj, n) -> PyObject * - chobj: chooser_base_t const * - n: size_t + + @param chobj: chooser_base_t const * + @param n: size_t Help on function py_get_ask_form in module ida_kernwin: @@ -59471,192 +58713,217 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) -> 'int' py_load_custom_icon_data(data, format) -> int - data: PyObject * - format: char const * + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) -> 'int' py_load_custom_icon_fn(filename) -> int - filename: char const * + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) -> 'void' py_register_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) -> 'void' py_ss_restore_callback(err_msg, userdata) - err_msg: char const * - userdata: void * + + @param err_msg: char const * + @param userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) -> 'bool' pyscv_add_line(py_this, py_sl) -> bool - py_this: PyObject * - py_sl: PyObject * + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) -> 'bool' pyscv_del_line(py_this, nline) -> bool - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) -> 'bool' pyscv_edit_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) -> 'PyObject *' pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - py_this: PyObject * - mouse: bool - notags: bool + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) -> 'PyObject *' pyscv_get_current_word(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) -> 'PyObject *' pyscv_get_pos(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * - py_link: PyObject * - title: char const * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) -> 'bool' pyscv_insert_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool - py_this: PyObject * - ln: size_t - x: int - y: int + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) -> 'bool' pyscv_patch_line(py_this, nline, offs, value) -> bool - py_this: PyObject * - nline: size_t - offs: size_t - value: int + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) -> 'qstring *' + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str Performs some cleanup operations to a line. - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line + @param cmt_char: (C++: char) character that denotes the start of a comment: + * the entire text is removed if the line begins with this character (ignoring + leading spaces) + * all text after (and including) this character is removed if flag CLNL_FINDCMT + is set + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -59693,14 +58960,13 @@ class quick_widget_commands_t(builtins.object) Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) -> 'ea_t *, ea_t *' - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - read_range_selection(v) -> bool - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - @retval: 0 - no range is selected - @retval: 1 - ok, start ea and end ea are filled + Get the address range for the selected range boundaries, this is the convenient + function for read_selection() + + @param v: (C++: TWidget *) view, nullptr means the last active window containing addresses + @retval 0: no range is selected + @retval 1: ok, start ea and end ea are filled Help on function read_selection in module ida_kernwin: @@ -59732,19 +58998,18 @@ read_selection(*args) -> 'bool' disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) -> 'bool' - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - refresh_chooser(title) -> bool - @param title: title of chooser (C++: const char *) - @return: success + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -59754,82 +59019,87 @@ refresh_choosers(*args) -> 'void' Help on function refresh_custom_viewer in module ida_kernwin: refresh_custom_viewer(*args) -> 'void' - Refresh custom ida viewer ( 'ui_refresh_custom_viewer' ) - refresh_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) -> 'void' - Refresh marked windows ( 'ui_refreshmarked' ) + refresh_idaview() + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) -> 'void' - Refresh navigation band if changed ( 'ui_refresh_navband' ). - refresh_navband(force) - @param force: refresh regardless (C++: bool) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) -> 'bool' - Create a new action ( 'ui_register_action' ). After an action has been - created, it is possible to attach it to menu items ( - 'attach_action_to_menu()' ), or to popup menus ( - 'attach_action_to_popup()' ).Because the actions will need to call the - handler's activate() and update() methods at any time, you shouldn't - build your action handler on the stack.Please see the SDK's "ht_view" - plugin for an example how to register actions. - register_action(desc) -> bool - @param desc: action to register (C++: const action_desc_t &) - @return: success + Create a new action (ui_register_action). After an action has been created, it + is possible to attach it to menu items (attach_action_to_menu()), or to popup + menus (attach_action_to_popup()). + + Because the actions will need to call the handler's activate() and update() + methods at any time, you shouldn't build your action handler on the stack. + + Please see the SDK's "ht_view" plugin for an example how to register actions. + + @param desc: (C++: const action_desc_t &) action to register + @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) -> 'int' - Register an add-on. Show its info in the About box. For plugins, - should be called from init() function (repeated calls with the same - product code overwrite previous entries) returns: index of the add-on - in the list, or -1 on error - register_addon(info) -> int - @param info (C++: const addon_info_t *) + Register an add-on. Show its info in the About box. For plugins, should be + called from init() function (repeated calls with the same product code overwrite + previous entries) returns: index of the add-on in the list, or -1 on error + + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) -> 'bool' - Helper.You are not encouraged to use this, as it mixes flags for both - 'register_action()' , and 'attach_action_to_menu()' .The only reason - for its existence is to make it simpler to port existing plugins to - the new actions API. - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: void *) - @param action_desc_t_flags (C++: int) + Helper. + + You are not encouraged to use this, as it mixes flags for both + register_action(), and attach_action_to_menu(). + + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) -> 'PyObject *' - register_timer(interval, py_callback) -> PyObject * + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param py_callback: A Python callable that takes no parameters and returns an integer. The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval @@ -59838,10 +59108,10 @@ register_timer(*args) -> 'PyObject *' Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) -> 'void' - Remove command line interpreter ( 'ui_install_cli' ) - remove_command_interpreter(cli_idx) - cli_idx: int + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -59852,14 +59122,16 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -59876,16 +59148,16 @@ class renderer_pos_info_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -59898,42 +59170,42 @@ class renderer_pos_info_t(builtins.object) Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) -> 'void' - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - repaint_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) -> 'void' + replace_wait_box(format) Replace the label of "Please wait dialog box". - replace_wait_box(format) - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) -> 'void' + request_refresh(mask, cnd=True) Request a refresh of a builtin window. - request_refresh(mask, cnd=True) - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) -> 'PyObject *' - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool + Restore a database snapshot. Note: This call is asynchronous. When it is + completed, the callback will be triggered. - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - pyfunc_or_none: PyObject * - pytuple_or_none: PyObject * - @return: false if restoration could not be started (snapshot file was - not found). If the returned value is True then check if - the operation succeeded from the callback. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was not + found). + If the returned value is True then check if the operation succeeded from the + callback. Help on class section_lines_refs_t in module ida_kernwin: @@ -59944,15 +59216,19 @@ class section_lines_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __getitem__(self, *args) -> 'twinline_t const *const &' | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> section_lines_refs_t - | x: qvector< twinline_t const * > const & + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59962,29 +59238,36 @@ class section_lines_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const *const & + | + | @param i: size_t + | @param v: twinline_t const *const & | | __swig_destroy__ = delete_section_lines_refs_t(...) | delete_section_lines_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: twinline_t const *const & + | + | Parameters + | ---------- + | x: twinline_t const *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | at(self, *args) -> 'twinline_t const *const &' | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -60008,70 +59291,81 @@ class section_lines_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< twinline_t const * >::iterator' | erase(self, it) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator | + | @param it: qvector< twinline_t const * >::iterator | | erase(self, first, last) -> qvector< twinline_t const * >::iterator - | first: qvector< twinline_t const * >::iterator - | last: qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator | | extract(self, *args) -> 'twinline_t const **' | extract(self) -> twinline_t const ** | | find(self, *args) -> 'qvector< twinline_t const * >::const_iterator' | find(self, x) -> qvector< twinline_t const * >::iterator - | x: twinline_t const *const & | + | @param x: twinline_t const *const & | | find(self, x) -> qvector< twinline_t const * >::const_iterator - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: twinline_t const ** - | len: size_t + | + | @param s: twinline_t const ** + | @param len: size_t | | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' | insert(self, it, x) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator - | x: twinline_t const *const & + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'twinline_t const *&' | push_back(self, x) - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const *const & | + | @param _newsize: size_t + | @param x: twinline_t const *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< twinline_t const * > & + | + | @param r: qvector< twinline_t const * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -60102,15 +59396,19 @@ class sections_lines_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __getitem__(self, *args) -> 'section_lines_refs_t const &' | __getitem__(self, i) -> section_lines_refs_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sections_lines_refs_t - | x: qvector< section_lines_refs_t > const & + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60120,29 +59418,36 @@ class sections_lines_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: section_lines_refs_t const & + | + | @param i: size_t + | @param v: section_lines_refs_t const & | | __swig_destroy__ = delete_sections_lines_refs_t(...) | delete_sections_lines_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: section_lines_refs_t const & + | + | Parameters + | ---------- + | x: section_lines_refs_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | at(self, *args) -> 'section_lines_refs_t const &' | at(self, _idx) -> section_lines_refs_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -60166,74 +59471,86 @@ class sections_lines_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< section_lines_refs_t >::iterator' | erase(self, it) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator | + | @param it: qvector< section_lines_refs_t >::iterator | | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator - | first: qvector< section_lines_refs_t >::iterator - | last: qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator | | extract(self, *args) -> 'section_lines_refs_t *' | extract(self) -> section_lines_refs_t | | find(self, *args) -> 'qvector< section_lines_refs_t >::const_iterator' | find(self, x) -> qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & | + | @param x: section_lines_refs_t const & | | find(self, x) -> qvector< section_lines_refs_t >::const_iterator - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=section_lines_refs_t()) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: section_lines_refs_t * - | len: size_t + | + | @param s: section_lines_refs_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'section_lines_refs_t &' | push_back(self, x) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: section_lines_refs_t const & | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< section_lines_refs_t > & + | + | @param r: qvector< section_lines_refs_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -60258,93 +59575,87 @@ class sections_lines_refs_t(builtins.object) Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) -> 'void' - Set "Cancelled" flag ( 'ui_set_cancelled' ) + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) -> 'void *' - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data + Set a handler for a code viewer event (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param handler_or_data: (C++: void *) can be a handler or data. see examples in Functions: + custom viewer handlers + @return: old value of the handler or data Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) -> 'bool' - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_is_source(code_viewer) -> bool - @param code_viewer (C++: TWidget *) + Specify that the given code viewer is used to display source code + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) -> 'void' - Set handlers for code viewer line events. Any of these handlers may be - NULL - set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + Set handlers for code viewer line events. Any of these handlers may be nullptr + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) -> 'bool' - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_alignment(code_viewer, align) -> bool - @param code_viewer (C++: TWidget *) - @param align (C++: int) + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) -> 'bool' - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + Set space allowed for icons in the margin of a code viewer + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) -> 'bool' - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_radix(code_viewer, radix) -> bool - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) -> 'bool' - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - set_code_viewer_user_data(code_viewer, ud) -> bool - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) -> 'bool' - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - set_custom_viewer_qt_aware(custom_viewer) -> bool - @param custom_viewer (C++: TWidget *) + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: @@ -60352,32 +59663,36 @@ set_dock_pos(*args) -> 'bool' set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) -> 'bool' - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - set_highlight(viewer, str, flags) -> bool - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) -> 'PyObject *' - set_nav_colorizer(new_py_colorizer) -> PyObject * + set_nav_colorizer(new_py_colorizer) -> dict or None Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -60403,37 +59718,41 @@ set_nav_colorizer(*args) -> 'PyObject *' return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) -> 'void' - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - set_view_renderer_type(v, rt) - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) -> 'void' - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - show_wait_box(message) - message: char const * + Display a dialog box with "Please wait...". If the text message starts with + "HIDECANCEL\n", the cancel button + won't be added to the dialog box and user_cancelled() will always + return false (but can be caled to refresh UI). + Plugins must call hide_wait_box() to close the dialog box, otherwise + the user interface will remain disabled. + Note that, if the wait dialog is already visible, show_wait_box() will + 1) push the currently-displayed text on a stack + 2) display the new text + Then, when hide_wait_box() is called, if that stack isn't empty its top + label will be popped and restored in the wait dialog. + This implies that a plugin should call hide_wait_box() exactly as many + times as it called show_wait_box(), or the wait dialog might remain + visible and block the UI. + Also, in case the plugin knows the wait dialog is currently displayed, + alternatively it can call replace_wait_box(), to replace the text of the + dialog without pushing the currently-displayed text on the stack. + + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -60487,8 +59806,7 @@ class simplecustviewer_t(builtins.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @return: Returns a tuple (colored_line, fgcolor, bgcolor) or None | | GetLineNo(self, mouse=0) | Calls GetPos() and returns the current line number or -1 on failure @@ -60500,8 +59818,7 @@ class simplecustviewer_t(builtins.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -60581,7 +59898,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -60590,184 +59907,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60779,7 +60101,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -60790,12 +60112,14 @@ class simpleline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | c: color_t - | str: char const * + | __init__(self, c, str) -> simpleline_t | + | @param c: color_t + | @param str: char const * | | __init__(self, str) -> simpleline_t - | str: char const * + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -60812,13 +60136,13 @@ class simpleline_t(builtins.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -60829,28 +60153,30 @@ str2ea(*args) -> 'ea_t' str2ea(str, screenEA=BADADDR) -> ea_t Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) -> 'char const *' - Find a line with the specified code in the 'strarray_t' array. If the - last element of the array has code==0 then it is considered as the - default entry.If no default entry exists and the code is not found, - 'strarray()' returns "". - strarray(array, array_size, code) -> char const * - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + Find a line with the specified code in the strarray_t array. If the last element + of the array has code==0 then it is considered as the default entry. + If no default entry exists and the code is not found, strarray() returns "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -60877,10 +60203,10 @@ class strarray_t(builtins.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -60909,10 +60235,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -60921,184 +60247,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -61110,7 +60441,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -61121,19 +60452,22 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t - | _view: TWidget const * | + | @param _view: TWidget const * | | __init__(self, _regname) -> sync_source_t - | _regname: char const * + | + | @param _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -61178,15 +60512,19 @@ class sync_source_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) -> 'sync_source_t const &' | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sync_source_vec_t - | x: qvector< sync_source_t > const & + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61196,36 +60534,42 @@ class sync_source_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | __swig_destroy__ = delete_sync_source_vec_t(...) | delete_sync_source_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) -> 'sync_source_t const &' | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61238,65 +60582,68 @@ class sync_source_vec_t(builtins.object) | | end(self, *args) -> 'qvector< sync_source_t >::const_iterator' | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) -> 'qvector< sync_source_t >::iterator' | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) -> 'sync_source_t *' | extract(self) -> sync_source_t | | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< sync_source_t >::iterator' | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'void' | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61321,13 +60668,13 @@ class sync_source_vec_t(builtins.object) Help on function sync_sources in module ida_kernwin: sync_sources(*args) -> 'bool' + sync_sources(what, _with, sync) -> bool [Un]synchronize sources - sync_sources(what, _with, sync) -> bool - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success Help on class synced_group_t in module ida_kernwin: @@ -61351,15 +60698,18 @@ class synced_group_t(sync_source_vec_t) | | has(self, *args) -> 'bool' | has(self, ss) -> bool - | @param ss (C++: const sync_source_t &) + | + | @param ss: sync_source_t const & | | has_register(self, *args) -> 'bool' | has_register(self, r) -> bool - | @param r (C++: const char *) + | + | @param r: char const * | | has_widget(self, *args) -> 'bool' | has_widget(self, v) -> bool - | @param v (C++: const TWidget *) + | + | @param v: TWidget const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61372,11 +60722,13 @@ class synced_group_t(sync_source_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) -> 'sync_source_t const &' | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61386,31 +60738,37 @@ class synced_group_t(sync_source_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) -> 'sync_source_t const &' | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61423,61 +60781,63 @@ class synced_group_t(sync_source_vec_t) | | end(self, *args) -> 'qvector< sync_source_t >::const_iterator' | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) -> 'qvector< sync_source_t >::iterator' | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) -> 'sync_source_t *' | extract(self) -> sync_source_t | | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< sync_source_t >::iterator' | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'void' | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61499,12 +60859,13 @@ class synced_group_t(sync_source_vec_t) Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) -> 'PyObject *' - Take a database snapshot ( 'ui_take_database_snapshot' ). + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - take_database_snapshot(ss) -> PyObject * - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success Help on class text_t in module ida_kernwin: @@ -61515,11 +60876,14 @@ class text_t(builtins.object) | | __getitem__(self, *args) -> 'twinline_t const &' | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> text_t - | x: qvector< twinline_t > const & + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61531,22 +60895,23 @@ class text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const & + | + | @param i: size_t + | @param v: twinline_t const & | | __swig_destroy__ = delete_text_t(...) | delete_text_t(self) | | at(self, *args) -> 'twinline_t const &' | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' | begin(self) -> twinline_t - | begin(self) -> twinline_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61559,16 +60924,16 @@ class text_t(builtins.object) | | end(self, *args) -> 'qvector< twinline_t >::const_iterator' | end(self) -> twinline_t - | end(self) -> twinline_t | | erase(self, *args) -> 'qvector< twinline_t >::iterator' | erase(self, it) -> twinline_t - | it: qvector< twinline_t >::iterator | + | @param it: qvector< twinline_t >::iterator | | erase(self, first, last) -> twinline_t - | first: qvector< twinline_t >::iterator - | last: qvector< twinline_t >::iterator + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator | | extract(self, *args) -> 'twinline_t *' | extract(self) -> twinline_t @@ -61578,47 +60943,56 @@ class text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=twinline_t()) - | x: twinline_t const & + | + | @param x: twinline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: twinline_t * - | len: size_t + | + | @param s: twinline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< twinline_t >::iterator' | insert(self, it, x) -> twinline_t - | it: qvector< twinline_t >::iterator - | x: twinline_t const & + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'twinline_t &' | push_back(self, x) - | x: twinline_t const & + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const & | + | @param _newsize: size_t + | @param x: twinline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< twinline_t > & + | + | @param r: qvector< twinline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61752,8 +61126,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -61764,58 +61139,67 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' textctrl_info_t_get_clink(_self) -> textctrl_info_t * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' textctrl_info_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) -> 'unsigned int' textctrl_info_t_get_flags(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) -> 'unsigned int' textctrl_info_t_get_tabsize(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) -> 'char const *' textctrl_info_t_get_text(_self) -> char const * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) -> 'bool' textctrl_info_t_set_flags(_self, flags) -> bool - self: PyObject * - flags: unsigned int + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) -> 'bool' textctrl_info_t_set_tabsize(_self, tabsize) -> bool - self: PyObject * - tabsize: unsigned int + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) -> 'bool' textctrl_info_t_set_text(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on class twinline_t in module ida_kernwin: @@ -61826,9 +61210,11 @@ class twinline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> twinline_t - | t: place_t * - | pc: color_t - | bc: bgcolor_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t | | __repr__ = _swig_repr(self) | @@ -61845,19 +61231,19 @@ class twinline_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinline_t_at_get(self) -> place_t + | at | | bg_color - | twinline_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | twinline_t_is_default_get(self) -> bool + | is_default | | line - | twinline_t_line_get(self) -> qstring * + | line | | prefix_color - | twinline_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -61871,12 +61257,14 @@ class twinpos_t(builtins.object) | | __init__(self, *args) | __init__(self) -> twinpos_t - | t: place_t * + | __init__(self, t) -> twinpos_t | + | @param t: place_t * | | __init__(self, t, x0) -> twinpos_t - | t: place_t * - | x0: int + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -61903,32 +61291,28 @@ class twinpos_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int + | x Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) -> 'bool' - Display a load file dialog and load file ( 'ui_load_file' ). - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - @retval: true - file was successfully loaded - @retval: false - otherwise + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param ploaders: (C++: load_info_t **) list of loaders which accept file, may be changed for loaders + of temp_file + @retval true: file was successfully loaded + @retval false: otherwise Help on class ui_requests_t in module ida_kernwin: @@ -61960,29 +61344,29 @@ class ui_requests_t(builtins.object) Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) -> 'bool' - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) -> 'void' - Unmark selection ( 'ui_unmarksel' ) + unmark_selection() + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) -> 'bool' - Delete a previously-registered action ( 'ui_unregister_action' ). - unregister_action(name) -> bool - @param name: name of action (C++: const char *) - @return: success + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success Help on function unregister_timer in module ida_kernwin: @@ -61997,87 +61381,91 @@ unregister_timer(*args) -> 'bool' Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) -> 'bool' - Update an action's checkability ( 'ui_update_action_attr' ). - update_action_checkable(name, checkable) -> bool - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) -> 'bool' - Update an action's checked state ( 'ui_update_action_attr' ). - update_action_checked(name, checked) -> bool - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) -> 'bool' - Update an action's icon ( 'ui_update_action_attr' ). - update_action_icon(name, icon) -> bool - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) -> 'bool' - Update an action's label ( 'ui_update_action_attr' ). - update_action_label(name, label) -> bool - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) -> 'bool' - Update an action's shortcut ( 'ui_update_action_attr' ). - update_action_shortcut(name, shortcut) -> bool - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) -> 'bool' - Update an action's state ( 'ui_update_action_attr' ). - update_action_state(name, state) -> bool - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) -> 'bool' - Update an action's tooltip ( 'ui_update_action_attr' ). - update_action_tooltip(name, tooltip) -> bool - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) -> 'bool' - Update an action's visibility ( 'ui_update_action_attr' ). - update_action_visibility(name, visible) -> bool - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) -> 'bool' - Test the ctrl-break flag ( 'ui_test_cancelled' ). + user_cancelled() -> bool + Test the ctrl-break flag (ui_test_cancelled). + @retval 1: Ctrl-Break is detected, a message is displayed + @retval 2: Ctrl-Break is detected again, a message is not displayed + @retval 0: Ctrl-Break is not detected Help on class view_mouse_event_location_t in module ida_kernwin: @@ -62104,10 +61492,10 @@ class view_mouse_event_location_t(builtins.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -62137,28 +61525,28 @@ class view_mouse_event_t(builtins.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y Help on function warning in module ida_kernwin: @@ -62172,1433 +61560,16 @@ warning(*args) -> 'void' The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION -""" -'cur_enum_member' and 'dirtree_selection' fields are present -""" - -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_HAS_SOURCE -""" -'source' field is present -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_GLOBAL -""" -available even if no IDB is present - -Register the action globally, so that it's -""" - -ida_kernwin.ADF_NO_HIGHLIGHT -""" -according to what's under the cursor (listings only.) - -After activating, do not update the highlight -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OT_MASK -""" -Owner type mask. -""" - -ida_kernwin.ADF_OT_PLUGIN -""" -Owner is a 'plugin_t' . -""" - -ida_kernwin.ADF_OT_PLUGMOD -""" -Owner is a 'plugmod_t' . -""" - -ida_kernwin.ADF_OT_PROCMOD -""" -Owner is a 'procmod_t' . -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BOOKMARKS -""" -a persistent 'Bookmarks' widget -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -tracing view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CDVF_LINEICONS -""" -icons can be drawn over the line control -""" - -ida_kernwin.CDVF_NOLINES -""" -don't show line numbers -""" - -ida_kernwin.CDVF_STATUSBAR -""" -keep the status bar in the custom viewer -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_DRAGHINT -""" -the column number that will be used to build hints for the dragging -undo label. This should be provided for at most one column for any -given chooser. -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_INODENAME -""" -if CH_HAS_DIRTREE has been specified, this instructs the chooser that -this column shows the inode name. This should be provided for at most -one column for any given chooser. -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_HAS_DIFF -""" -The chooser can be used in a diffing/merging workflow. -""" - -ida_kernwin.CH_HAS_DIRTREE -""" -The chooser can provide a 'dirtree_t' , meaning a tree-like structure -can be provided to the user (instead of a flat table) -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_FILTER -""" -The chooser will not have filtering abilities. -""" - -ida_kernwin.CH_NO_SORT -""" -The chooser will not have sorting abilities. -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RENAME_IS_EDIT -""" -triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call -the edit() callback for the corresponding row. -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CH_TM_FOLDERS_ONLY -""" -chooser will show in folders-only mode -""" - -ida_kernwin.CH_TM_FULL_TREE -""" -chooser will show in no-tree mode -""" - -ida_kernwin.CH_TM_NO_TREE -""" -chooser will show up in no-tree mode -""" - -ida_kernwin.CK_EXTRA1 -""" -extra background overlay #1 -""" - -ida_kernwin.CK_EXTRA10 -""" -extra background overlay #10 -""" - -ida_kernwin.CK_EXTRA11 -""" -extra background overlay #11 -""" - -ida_kernwin.CK_EXTRA12 -""" -extra background overlay #12 -""" - -ida_kernwin.CK_EXTRA13 -""" -extra background overlay #13 -""" - -ida_kernwin.CK_EXTRA14 -""" -extra background overlay #14 -""" - -ida_kernwin.CK_EXTRA15 -""" -extra background overlay #15 -""" - -ida_kernwin.CK_EXTRA16 -""" -extra background overlay #16 -""" - -ida_kernwin.CK_EXTRA2 -""" -extra background overlay #2 -""" - -ida_kernwin.CK_EXTRA3 -""" -extra background overlay #3 -""" - -ida_kernwin.CK_EXTRA4 -""" -extra background overlay #4 -""" - -ida_kernwin.CK_EXTRA5 -""" -extra background overlay #5 -""" - -ida_kernwin.CK_EXTRA6 -""" -extra background overlay #6 -""" - -ida_kernwin.CK_EXTRA7 -""" -extra background overlay #7 -""" - -ida_kernwin.CK_EXTRA8 -""" -extra background overlay #8 -""" - -ida_kernwin.CK_EXTRA9 -""" -extra background overlay #9 -""" - -ida_kernwin.CK_TRACE -""" -traced address -""" - -ida_kernwin.CK_TRACE_OVL -""" -overlay trace address -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.CVNF_ACT -""" -activate (i.e., switch to) the viewer. Activation is performed before -the new 'lochist_entry_t' instance is actually copied to the viewer's -'lochist_t' (otherwise, if the viewer was invisible its -on_location_changed() handler wouldn't be called.) -""" - -ida_kernwin.CVNF_JUMP -""" -'lochist_t' before going to the new location - -push the current position in this viewer's -""" - -ida_kernwin.CVNF_LAZY -""" -try and move the cursor to a line displaying the 'place_t' if -possible. This might disregard the Y position in case of success -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_SZHINT -""" -When floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IDCHK_ARG -""" -bad argument(s) -""" - -ida_kernwin.IDCHK_KEY -""" -bad hotkey name -""" - -ida_kernwin.IDCHK_MAX -""" -too many IDC hotkeys -""" - -ida_kernwin.IDCHK_OK -""" -ok -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BOOKMARKS -""" -bookmarks list (59) -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -tracing view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.LROEF_CPS_RANGE -""" -background for range of chars -""" - -ida_kernwin.LROEF_FULL_LINE -""" -full line background -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. the request must be created using -the 'new' operator to use it with this flag. it can be used in -'cancel_exec_request()' . This flag can be used to delay the code -execution until the next UI loop run even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.PCF_EA_CAPABLE -""" -toea() implementation returns meaningful data -""" - -ida_kernwin.PCF_MAKEPLACE_ALLOCATES -""" -makeplace() returns a freshly allocated (i.e., non-static) instance. -All new code should pass that flag to 'register_place_class()' , and -the corresponding makeplace() class implementation should return new -instances. -""" - -ida_kernwin.RENADDR_HR -""" -dialog for "Pseudocode" additional flags: 0x01 Library function 0x02 -Mark as decompiled -""" - -ida_kernwin.RENADDR_IDA -""" -dialog for "IDA View" -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.SVF_COPY_LINES -""" -keep a local copy of '*lines' -""" - -ida_kernwin.SVF_LINES_BYPTR -""" -remember the 'lines' ptr. do not make a copy of '*lines' -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" - -ida_kernwin.WCLS_DELETE_LATER -""" -assign the deletion of the widget to the UI loop ///< -""" - -ida_kernwin.WCLS_DONT_SAVE_SIZE -""" -don't save size of the window -""" - -ida_kernwin.WCLS_NO_CONTEXT -""" -don't change the current context (useful for toolbars) -""" - -ida_kernwin.WCLS_SAVE -""" -save state in desktop config -""" - -ida_kernwin.WOPN_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will close -""" - -ida_kernwin.WOPN_DP_BEFORE -""" -place widget before dst_form in the tab bar instead of after used with -'WOPN_DP_INSIDE' and 'WOPN_DP_TAB' -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.WOPN_DP_BOTTOM -""" -Dock widget below dest_ctrl. -""" - -ida_kernwin.WOPN_DP_FLOATING -""" -Make widget floating. -""" - -ida_kernwin.WOPN_DP_INSIDE -""" -Create a new tab bar with both widget and dest_ctrl. -""" - -ida_kernwin.WOPN_DP_LEFT -""" -Dock widget to the left of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_RIGHT -""" -Dock widget to the right of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_SZHINT -""" -when floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.WOPN_DP_TAB -""" -Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab -bar (otherwise the same as 'WOPN_DP_INSIDE' ) -""" - -ida_kernwin.WOPN_DP_TOP -""" -Dock widget above dest_ctrl. -""" - -ida_kernwin.WOPN_NOT_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will not close -""" - -ida_kernwin.WOPN_PERSIST -""" -widget will remain available when starting or stopping debugger -sessions -""" - -ida_kernwin.WOPN_RESTORE -""" -if the widget was the only widget in a floating area the last time it -was closed, it will be restored as floating, with the same -position+size as before -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -63609,246 +61580,247 @@ COLSTR(str, tag) Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) -> 'bool' + add_extra_cmt(ea, isprev, format) -> bool Add anterior/posterior comment line(s). - add_extra_cmt(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) -> 'bool' + add_extra_line(ea, isprev, format) -> bool Add anterior/posterior non-comment line(s). - add_extra_line(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) -> 'bool' + add_pgm_cmt(format) -> bool Add anterior comment line(s) at the start of program. - add_pgm_cmt(format) -> bool - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function calc_bg_color in module ida_lines: calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t Get background color for line at 'ea' - calc_bg_color(ea) -> bgcolor_t - @param ea (C++: ea_t) - @return: RGB color + @param ea: (C++: ea_t) + @return: RGB color Help on function calc_prefix_color in module ida_lines: calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t Get prefix color for line at 'ea' - calc_prefix_color(ea) -> color_t - @param ea (C++: ea_t) - @return: Line prefix colors + @param ea: (C++: ea_t) + @return: Line prefix colors Help on function create_encoding_helper in module ida_lines: create_encoding_helper(*args) -> 'encoder_t *' create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - encidx: int - nr: enum encoder_t::notify_recerr_t + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_extra_cmts in module ida_lines: delete_extra_cmts(*args) -> 'void' delete_extra_cmts(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) -> 'qstring *' generate_disasm_line(ea, flags=0) -> str - ea: ea_t - flags: int + + @param ea: ea_t + @param flags: int Help on function generate_disassembly in module ida_lines: generate_disassembly(*args) -> 'PyObject *' - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) Generate disassembly lines (many lines) and put them into a buffer @param ea: address to generate disassembly for @param max_lines: how many lines max to generate @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_first_free_extra_cmtidx in module ida_lines: get_first_free_extra_cmtidx(*args) -> 'int' get_first_free_extra_cmtidx(ea, start) -> int - ea: ea_t - start: int + + @param ea: ea_t + @param start: int Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function install_user_defined_prefix in module ida_lines: install_user_defined_prefix(*args) -> 'bool' - User-defined line-prefixes are displayed just after the autogenerated - line prefixes in the disassembly listing. There is no need to call - this function explicitly. Use the 'user_defined_prefix_t' class. - install_user_defined_prefix(prefix_len, udp, owner) -> bool - @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: - size_t) - @param udp: object to generate user-defined prefix (C++: struct - user_defined_prefix_t *) - @param owner: pointer to the plugin_t that owns UDP if non-NULL, - then the object will be uninstalled and destroyed when - the plugin gets unloaded (C++: const void *) + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded Help on function requires_color_esc in module ida_lines: requires_color_esc(c) Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean + Is the given char a color escape character? Help on function set_user_defined_prefix in module ida_lines: set_user_defined_prefix(*args) -> 'PyObject *' - set_user_defined_prefix(width, pycb) -> PyObject * + set_user_defined_prefix(width, pycb) -> bool Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * Help on function tag_addr in module ida_lines: tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * Insert an address mark into a string. - tag_addr(ea) -> PyObject * - @param ea: address to include (C++: ea_t) + @param ea: (C++: ea_t) address to include Help on function tag_advance in module ida_lines: tag_advance(*args) -> 'int' - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - tag_advance(line, cnt) -> int - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer Help on function tag_remove in module ida_lines: tag_remove(*args) -> 'PyObject *' - Remove color escape sequences from a string. + tag_remove(nonnul_instr) -> str - tag_remove(nonnul_instr) -> PyObject * - nonnul_instr: char const * - @return: length of resulting string, -1 if error + @param nonnul_instr: char const * Help on function tag_skipcode in module ida_lines: tag_skipcode(*args) -> 'int' - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - tag_skipcode(line) -> int - @param line (C++: const char *) - @return: moved pointer + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer Help on function tag_skipcodes in module ida_lines: tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int Move the pointer past all color codes. - tag_skipcodes(line) -> int - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr Help on function tag_strlen in module ida_lines: tag_strlen(*args) -> 'ssize_t' - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - tag_strlen(line) -> ssize_t - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on class user_defined_prefix_t in module ida_lines: @@ -63861,8 +61833,9 @@ class user_defined_prefix_t(builtins.object) | | __init__(self, *args) | __init__(self, prefix_len, owner) -> user_defined_prefix_t - | prefix_len: size_t - | owner: void const * + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | @@ -63870,18 +61843,18 @@ class user_defined_prefix_t(builtins.object) | delete_user_defined_prefix_t(self) | | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) | This callback must be overridden by the derived class. | - | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) - | @param ea: the current address (C++: ea_t) - | @param insn: the current instruction. if the current item is not an - | instruction, then insn.itype is zero. - an - | ida_ua.insn_t, or an address (C++: const insn_t &) - | @param lnnum (C++: int) - | @param indent: see explanations for gen_printf() (C++: int) - | @param line: the line to be generated. the line usually contains color - | tags. this argument can be examined to decide whether to - | generate the prefix. (C++: const char *) + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63895,492 +61868,201 @@ class user_defined_prefix_t(builtins.object) | thisown | The membership flag -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.COLOR_CODE -""" -Single instruction. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.COLOR_CURITEM -""" -Current item. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.COLOR_CURLINE -""" -Current line. -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.COLOR_DATA -""" -Data bytes. -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) -> 'int' - Unload database to a binary file. This function works for wide byte - processors too. - base2file(fp, pos, ea1, ea2) -> int - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) -> 'bool' + build_snapshot_tree(root) -> bool Build the snapshot tree. - build_snapshot_tree(root) -> bool - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) -> 'void' clr_database_flag(dbfl) - @param dbfl (C++: uint32) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) -> 'PyObject *' - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - extract_module_from_archive(fname, is_remote=False) -> PyObject * - fname: char const * - @param is_remote: is the input file remote? (C++: bool) - @retval: true - ok - @retval: false - something bad happened (error message has been - displayed to the user) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) -> 'int' - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it - enabled).The storage type of the specified range will be changed to - STT_VA. - file2base(li, pos, ea1, ea2, patchable) -> int - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - @retval: 1 - ok - @retval: 0 - read error, a warning is displayed + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) -> 'plugin_t *' + find_plugin(name, load_if_needed=False) -> plugin_t * Find a user-defined plugin and optionally load it. - find_plugin(name, load_if_needed=False) -> plugin_t * - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) -> 'int' + flush_buffers() -> int Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) -> 'int' + gen_exe_file(fp) -> int Generate an exe file (unload the database in binary form). - gen_exe_file(fp) -> int - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - @retval: 1 - ok - @retval: 0 - failed + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) -> 'int' - Generate an output file. 'OFILE_EXE' : - gen_file(otype, fp, ea1, ea2, flags) -> int - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - @retval: 0 - can't generate exe file - @retval: 1 - ok + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) -> 'filetype_t' - Get the input file type. This function can recognize libraries and zip - files. - get_basic_file_type(li) -> filetype_t - @param li (C++: linput_t *) + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) -> 'char const *' + get_elf_debug_file_directory() -> char const * Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) -> 'size_t' + get_file_type_name() -> str Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. + + @return: size of answer, this function always succeeds Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) -> 'ea_t' - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - get_fileregion_ea(offset) -> ea_t - @param offset (C++: qoff64_t) + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) -> 'qoff64_t' - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - get_fileregion_offset(ea) -> qoff64_t - @param ea (C++: ea_t) + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) -> 'char const *' + get_path(pt) -> char const * Get the file path - get_path(pt) -> char const * - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) -> 'char const *' - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - get_plugin_options(plugin) -> char const * - @param plugin (C++: const char *) + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -64407,22 +62089,22 @@ class idp_desc_t(builtins.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -64452,13 +62134,13 @@ class idp_name_t(builtins.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -64466,71 +62148,69 @@ class idp_name_t(builtins.object) Help on function is_database_flag in module ida_loader: is_database_flag(*args) -> 'bool' + is_database_flag(dbfl) -> bool Get the current database flag - is_database_flag(dbfl) -> bool - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) -> 'bool' + is_trusted_idb() -> bool Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) -> 'bool' - Load a binary file into the database. This function usually is called - from ui. - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - @retval: true - ok - @retval: false - failed (couldn't open the file) + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) -> 'int' - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - load_ids_module(fname) -> int - @param fname: name of file to apply (C++: char *) - @retval: 1 - ok - @retval: 0 - some error (a message is displayed). if the ids file does - not exist, no message is displayed + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) -> 'PyObject *' - load_plugin(name) -> PyObject * + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -64558,25 +62238,25 @@ class loader_t(builtins.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version Help on function mem2base in module ida_loader: mem2base(*args) -> 'int' mem2base(py_mem, ea, fpos=-1) -> int Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -64604,37 +62284,37 @@ class plugin_info_t(builtins.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -64642,18 +62322,16 @@ class plugin_info_t(builtins.object) Help on function process_archive in module ida_loader: process_archive(*args) -> 'qstring *' - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter: + + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. Help on class qvector_snapshotvec_t in module ida_loader: @@ -64664,15 +62342,19 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | x: qvector< snapshot_t * > const & + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64682,29 +62364,36 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: snapshot_t *const & + | + | @param i: size_t + | @param v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: snapshot_t *const & + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64728,70 +62417,81 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator | + | @param it: qvector< snapshot_t * >::iterator | | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | first: qvector< snapshot_t * >::iterator - | last: qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) -> 'snapshot_t **' | extract(self) -> snapshot_t ** | | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' | find(self, x) -> qvector< snapshot_t * >::iterator - | x: snapshot_t *const & | + | @param x: snapshot_t *const & | | find(self, x) -> qvector< snapshot_t * >::const_iterator - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: snapshot_t ** - | len: size_t + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator - | x: snapshot_t *const & + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: snapshot_t *const & | + | @param _newsize: size_t + | @param x: snapshot_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< snapshot_t * > & + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64816,57 +62516,81 @@ class qvector_snapshotvec_t(builtins.object) Help on function reload_file in module ida_loader: reload_file(*args) -> 'bool' - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - reload_file(file, is_remote) -> bool - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) -> 'bool' run_plugin(plg, arg) -> bool Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) -> 'bool' - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - save_database(outfile, flags, root=None, attr=None) -> bool - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) -> 'void' + set_database_flag(dbfl, cnd=True) Set or clear database flag - set_database_flag(dbfl, cnd=True) - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) -> 'void' + set_path(pt, path) Set the file path - set_path(pt, path) - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -64877,30 +62601,36 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -64920,19 +62650,19 @@ class snapshot_t(builtins.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -64942,233 +62672,34 @@ class snapshot_t(builtins.object) | | __hash__ = None -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_lumina"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" -'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" -'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" -'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" -'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" -'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" -'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" -'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" -'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on function apply_metadata in module ida_lumina: apply_metadata(*args) -> 'void' apply_metadata(ea, fi, flags=0) - @param ea (C++: ea_t) - @param fi (C++: const func_info_t &) - @param flags (C++: uint32) + + @param ea: ea_t + @param fi: func_info_t const & + @param flags: uint32 Help on function backup_metadata in module ida_lumina: backup_metadata(*args) -> 'bool' backup_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function calc_func_metadata in module ida_lumina: calc_func_metadata(*args) -> 'md5_t *' calc_func_metadata(out_fi, pfn, append_metadata=None) -> asize_t - @param out_fi (C++: func_info_t *) - @param pfn (C++: const func_t *) - @param append_metadata (C++: metadata_appender_t *) + + @param out_fi: func_info_t * + @param pfn: func_t const * + @param append_metadata: metadata_appender_t * Help on function create_simple_diff_handler in module ida_lumina: @@ -65179,22 +62710,25 @@ Help on function create_simple_idb_diff_handler in module ida_lumina: create_simple_idb_diff_handler(*args) -> 'simple_idb_diff_handler_t *' create_simple_idb_diff_handler(pfn) -> simple_idb_diff_handler_t - @param pfn (C++: const func_t *) + + @param pfn: func_t const * Help on function diff_metadata in module ida_lumina: diff_metadata(*args) -> 'bool' diff_metadata(handler, left, right, flags=0) -> bool - @param handler (C++: func_md_diff_handler_t &) - @param left (C++: const func_info_t &) - @param right (C++: const func_info_t &) - @param flags (C++: uint32) + + @param handler: func_md_diff_handler_t & + @param left: func_info_t const & + @param right: func_info_t const & + @param flags: uint32 Help on function ea_to_ea64 in module ida_lumina: ea_to_ea64(*args) -> 'ea64_t' ea_to_ea64(ea) -> ea64_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on class extra_cmt_t in module ida_lumina: @@ -65220,10 +62754,10 @@ class extra_cmt_t(insn_site_t) | Data descriptors defined here: | | next - | extra_cmt_t_next_get(self) -> qstring * + | next | | prev - | extra_cmt_t_prev_get(self) -> qstring * + | prev | | thisown | The membership flag @@ -65233,7 +62767,8 @@ class extra_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -65245,10 +62780,10 @@ class extra_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class extra_cmts_t in module ida_lumina: @@ -65259,11 +62794,14 @@ class extra_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'extra_cmt_t const &' | __getitem__(self, i) -> extra_cmt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> extra_cmts_t - | x: qvector< extra_cmt_t > const & + | __init__(self, x) -> extra_cmts_t + | + | @param x: qvector< extra_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65275,22 +62813,23 @@ class extra_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: extra_cmt_t const & + | + | @param i: size_t + | @param v: extra_cmt_t const & | | __swig_destroy__ = delete_extra_cmts_t(...) | delete_extra_cmts_t(self) | | at(self, *args) -> 'extra_cmt_t const &' | at(self, _idx) -> extra_cmt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' | begin(self) -> extra_cmt_t - | begin(self) -> extra_cmt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65303,16 +62842,16 @@ class extra_cmts_t(builtins.object) | | end(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' | end(self) -> extra_cmt_t - | end(self) -> extra_cmt_t | | erase(self, *args) -> 'qvector< extra_cmt_t >::iterator' | erase(self, it) -> extra_cmt_t - | it: qvector< extra_cmt_t >::iterator | + | @param it: qvector< extra_cmt_t >::iterator | | erase(self, first, last) -> extra_cmt_t - | first: qvector< extra_cmt_t >::iterator - | last: qvector< extra_cmt_t >::iterator + | + | @param first: qvector< extra_cmt_t >::iterator + | @param last: qvector< extra_cmt_t >::iterator | | extract(self, *args) -> 'extra_cmt_t *' | extract(self) -> extra_cmt_t @@ -65322,47 +62861,56 @@ class extra_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=extra_cmt_t()) - | x: extra_cmt_t const & + | + | @param x: extra_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: extra_cmt_t * - | len: size_t + | + | @param s: extra_cmt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< extra_cmt_t >::iterator' | insert(self, it, x) -> extra_cmt_t - | it: qvector< extra_cmt_t >::iterator - | x: extra_cmt_t const & + | + | @param it: qvector< extra_cmt_t >::iterator + | @param x: extra_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'extra_cmt_t &' | push_back(self, x) - | x: extra_cmt_t const & + | + | @param x: extra_cmt_t const & + | + | push_back(self) -> extra_cmt_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: extra_cmt_t const & | + | @param _newsize: size_t + | @param x: extra_cmt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< extra_cmt_t > & + | + | @param r: qvector< extra_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65383,43 +62931,49 @@ Help on function extract_extra_cmts_from_metadata in module ida_lumina: extract_extra_cmts_from_metadata(*args) -> 'void' extract_extra_cmts_from_metadata(out, ptr) - @param out (C++: extra_cmts_t *) - @param ptr (C++: const uchar *) + + @param out: extra_cmts_t * + @param ptr: uchar const * Help on function extract_frame_desc_from_metadata in module ida_lumina: extract_frame_desc_from_metadata(*args) -> 'void' extract_frame_desc_from_metadata(out, ptr) - @param out (C++: frame_desc_t *) - @param ptr (C++: const uchar *) + + @param out: frame_desc_t * + @param ptr: uchar const * Help on function extract_insn_cmts_from_metadata in module ida_lumina: extract_insn_cmts_from_metadata(*args) -> 'void' extract_insn_cmts_from_metadata(out, ptr) - @param out (C++: insn_cmts_t *) - @param ptr (C++: const uchar *) + + @param out: insn_cmts_t * + @param ptr: uchar const * Help on function extract_insn_opreprs_from_metadata in module ida_lumina: extract_insn_opreprs_from_metadata(*args) -> 'void' extract_insn_opreprs_from_metadata(out, ptr) - @param out (C++: insn_ops_reprs_t *) - @param ptr (C++: const uchar *) + + @param out: insn_ops_reprs_t * + @param ptr: uchar const * Help on function extract_type_from_metadata in module ida_lumina: extract_type_from_metadata(*args) -> 'bool' extract_type_from_metadata(out, _in) -> bool - @param out (C++: md_type_parts_t *) - in: bytevec_t const & + + @param out: tinfo_t * + @param in: bytevec_t const & Help on function extract_user_stkpnts_from_metadata in module ida_lumina: extract_user_stkpnts_from_metadata(*args) -> 'void' extract_user_stkpnts_from_metadata(out, ptr) - @param out (C++: user_stkpnts_t *) - @param ptr (C++: const uchar *) + + @param out: user_stkpnts_t * + @param ptr: uchar const * Help on class frame_desc_t in module ida_lumina: @@ -65429,7 +62983,12 @@ class frame_desc_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_desc_t + | __init__(self, __frsize=0, __argsize=asize_t(-1), __frregs=0, __members=frame_mems_t()) -> frame_desc_t + | + | @param __frsize: sval_t + | @param __argsize: asize_t + | @param __frregs: ushort + | @param __members: frame_mems_t | | __repr__ = _swig_repr(self) | @@ -65446,16 +63005,16 @@ class frame_desc_t(builtins.object) | list of weak references to the object (if defined) | | argsize - | frame_desc_t_argsize_get(self) -> asize_t + | argsize | | frregs - | frame_desc_t_frregs_get(self) -> ushort + | frregs | | frsize - | frame_desc_t_frsize_get(self) -> sval_t + | frsize | | members - | frame_desc_t_members_get(self) -> frame_mems_t + | members | | thisown | The membership flag @@ -65468,7 +63027,15 @@ class frame_mem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_mem_t + | __init__(self, __name=None, __type=serialized_tinfo(), __cmt=None, __rptcmt=None, __offset=ea64_t(-1), __info=oprepr_t(), __nbytes=asize_t(-1)) -> frame_mem_t + | + | @param __name: char const * + | @param __type: serialized_tinfo + | @param __cmt: char const * + | @param __rptcmt: char const * + | @param __offset: ea64_t + | @param __info: oprepr_t + | @param __nbytes: asize_t | | __repr__ = _swig_repr(self) | @@ -65485,28 +63052,28 @@ class frame_mem_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | frame_mem_t_cmt_get(self) -> qstring * + | cmt | | info - | frame_mem_t_info_get(self) -> oprepr_t + | info | | name - | frame_mem_t_name_get(self) -> qstring * + | name | | nbytes - | frame_mem_t_nbytes_get(self) -> asize_t + | nbytes | | offset - | frame_mem_t_offset_get(self) -> ea64_t + | offset | | rptcmt - | frame_mem_t_rptcmt_get(self) -> qstring * + | rptcmt | | thisown | The membership flag | | type - | frame_mem_t_type_get(self) -> serialized_tinfo + | type Help on class frame_mems_t in module ida_lumina: @@ -65517,11 +63084,14 @@ class frame_mems_t(builtins.object) | | __getitem__(self, *args) -> 'frame_mem_t const &' | __getitem__(self, i) -> frame_mem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> frame_mems_t - | x: qvector< frame_mem_t > const & + | __init__(self, x) -> frame_mems_t + | + | @param x: qvector< frame_mem_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65533,22 +63103,23 @@ class frame_mems_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: frame_mem_t const & + | + | @param i: size_t + | @param v: frame_mem_t const & | | __swig_destroy__ = delete_frame_mems_t(...) | delete_frame_mems_t(self) | | at(self, *args) -> 'frame_mem_t const &' | at(self, _idx) -> frame_mem_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< frame_mem_t >::const_iterator' | begin(self) -> frame_mem_t - | begin(self) -> frame_mem_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65561,16 +63132,16 @@ class frame_mems_t(builtins.object) | | end(self, *args) -> 'qvector< frame_mem_t >::const_iterator' | end(self) -> frame_mem_t - | end(self) -> frame_mem_t | | erase(self, *args) -> 'qvector< frame_mem_t >::iterator' | erase(self, it) -> frame_mem_t - | it: qvector< frame_mem_t >::iterator | + | @param it: qvector< frame_mem_t >::iterator | | erase(self, first, last) -> frame_mem_t - | first: qvector< frame_mem_t >::iterator - | last: qvector< frame_mem_t >::iterator + | + | @param first: qvector< frame_mem_t >::iterator + | @param last: qvector< frame_mem_t >::iterator | | extract(self, *args) -> 'frame_mem_t *' | extract(self) -> frame_mem_t @@ -65580,47 +63151,56 @@ class frame_mems_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=frame_mem_t()) - | x: frame_mem_t const & + | + | @param x: frame_mem_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: frame_mem_t * - | len: size_t + | + | @param s: frame_mem_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< frame_mem_t >::iterator' | insert(self, it, x) -> frame_mem_t - | it: qvector< frame_mem_t >::iterator - | x: frame_mem_t const & + | + | @param it: qvector< frame_mem_t >::iterator + | @param x: frame_mem_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'frame_mem_t &' | push_back(self, x) - | x: frame_mem_t const & + | + | @param x: frame_mem_t const & + | + | push_back(self) -> frame_mem_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: frame_mem_t const & | + | @param _newsize: size_t + | @param x: frame_mem_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< frame_mem_t > & + | + | @param r: qvector< frame_mem_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65650,7 +63230,9 @@ class func_info_and_frequency_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_frequency_t + | __init__(self, __frequency=0) -> func_info_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -65661,7 +63243,7 @@ class func_info_and_frequency_t(func_info_t) | Data descriptors defined here: | | frequency - | func_info_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -65676,13 +63258,13 @@ class func_info_and_frequency_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_frequency_vec_t in module ida_lumina: @@ -65693,11 +63275,14 @@ class func_info_and_frequency_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_and_frequency_t const &' | __getitem__(self, i) -> func_info_and_frequency_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_frequency_vec_t - | x: qvector< func_info_and_frequency_t > const & + | __init__(self, x) -> func_info_and_frequency_vec_t + | + | @param x: qvector< func_info_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65709,22 +63294,23 @@ class func_info_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: func_info_and_frequency_t const & + | + | @param i: size_t + | @param v: func_info_and_frequency_t const & | | __swig_destroy__ = delete_func_info_and_frequency_vec_t(...) | delete_func_info_and_frequency_vec_t(self) | | at(self, *args) -> 'func_info_and_frequency_t const &' | at(self, _idx) -> func_info_and_frequency_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' | begin(self) -> func_info_and_frequency_t - | begin(self) -> func_info_and_frequency_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65737,16 +63323,16 @@ class func_info_and_frequency_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' | end(self) -> func_info_and_frequency_t - | end(self) -> func_info_and_frequency_t | | erase(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | erase(self, it) -> func_info_and_frequency_t - | it: qvector< func_info_and_frequency_t >::iterator | + | @param it: qvector< func_info_and_frequency_t >::iterator | | erase(self, first, last) -> func_info_and_frequency_t - | first: qvector< func_info_and_frequency_t >::iterator - | last: qvector< func_info_and_frequency_t >::iterator + | + | @param first: qvector< func_info_and_frequency_t >::iterator + | @param last: qvector< func_info_and_frequency_t >::iterator | | extract(self, *args) -> 'func_info_and_frequency_t *' | extract(self) -> func_info_and_frequency_t @@ -65756,47 +63342,56 @@ class func_info_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_frequency_t()) - | x: func_info_and_frequency_t const & + | + | @param x: func_info_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: func_info_and_frequency_t * - | len: size_t + | + | @param s: func_info_and_frequency_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_and_frequency_t - | it: qvector< func_info_and_frequency_t >::iterator - | x: func_info_and_frequency_t const & + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | @param x: func_info_and_frequency_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_and_frequency_t &' | push_back(self, x) - | x: func_info_and_frequency_t const & + | + | @param x: func_info_and_frequency_t const & + | + | push_back(self) -> func_info_and_frequency_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_and_frequency_t const & | + | @param _newsize: size_t + | @param x: func_info_and_frequency_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< func_info_and_frequency_t > & + | + | @param r: qvector< func_info_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65826,7 +63421,9 @@ class func_info_and_pattern_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_pattern_t + | __init__(self, __pattern_id=pattern_id_t()) -> func_info_and_pattern_t + | + | @param __pattern_id: pattern_id_t | | __repr__ = _swig_repr(self) | @@ -65837,7 +63434,7 @@ class func_info_and_pattern_t(func_info_t) | Data descriptors defined here: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -65852,13 +63449,13 @@ class func_info_and_pattern_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_pattern_vec_t in module ida_lumina: @@ -65869,11 +63466,14 @@ class func_info_and_pattern_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_and_pattern_t const &' | __getitem__(self, i) -> func_info_and_pattern_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_pattern_vec_t - | x: qvector< func_info_and_pattern_t > const & + | __init__(self, x) -> func_info_and_pattern_vec_t + | + | @param x: qvector< func_info_and_pattern_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65885,22 +63485,23 @@ class func_info_and_pattern_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: func_info_and_pattern_t const & + | + | @param i: size_t + | @param v: func_info_and_pattern_t const & | | __swig_destroy__ = delete_func_info_and_pattern_vec_t(...) | delete_func_info_and_pattern_vec_t(self) | | at(self, *args) -> 'func_info_and_pattern_t const &' | at(self, _idx) -> func_info_and_pattern_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' | begin(self) -> func_info_and_pattern_t - | begin(self) -> func_info_and_pattern_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65913,16 +63514,16 @@ class func_info_and_pattern_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' | end(self) -> func_info_and_pattern_t - | end(self) -> func_info_and_pattern_t | | erase(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | erase(self, it) -> func_info_and_pattern_t - | it: qvector< func_info_and_pattern_t >::iterator | + | @param it: qvector< func_info_and_pattern_t >::iterator | | erase(self, first, last) -> func_info_and_pattern_t - | first: qvector< func_info_and_pattern_t >::iterator - | last: qvector< func_info_and_pattern_t >::iterator + | + | @param first: qvector< func_info_and_pattern_t >::iterator + | @param last: qvector< func_info_and_pattern_t >::iterator | | extract(self, *args) -> 'func_info_and_pattern_t *' | extract(self) -> func_info_and_pattern_t @@ -65932,47 +63533,56 @@ class func_info_and_pattern_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_pattern_t()) - | x: func_info_and_pattern_t const & + | + | @param x: func_info_and_pattern_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: func_info_and_pattern_t * - | len: size_t + | + | @param s: func_info_and_pattern_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | insert(self, it, x) -> func_info_and_pattern_t - | it: qvector< func_info_and_pattern_t >::iterator - | x: func_info_and_pattern_t const & + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | @param x: func_info_and_pattern_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_and_pattern_t &' | push_back(self, x) - | x: func_info_and_pattern_t const & + | + | @param x: func_info_and_pattern_t const & + | + | push_back(self) -> func_info_and_pattern_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_and_pattern_t const & | + | @param _newsize: size_t + | @param x: func_info_and_pattern_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< func_info_and_pattern_t > & + | + | @param r: qvector< func_info_and_pattern_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65997,7 +63607,10 @@ class func_info_base_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_base_t + | __init__(self, __name=None, __metadata=metadata_t()) -> func_info_base_t + | + | @param __name: char const * + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -66014,10 +63627,10 @@ class func_info_base_t(builtins.object) | list of weak references to the object (if defined) | | metadata - | func_info_base_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_base_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -66036,7 +63649,9 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_pattern_and_frequency_t + | __init__(self, __frequency=0) -> func_info_pattern_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -66047,7 +63662,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors defined here: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -66056,7 +63671,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -66068,13 +63683,13 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_pattern_and_frequency_vec_t in module ida_lumina: @@ -66085,11 +63700,14 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_pattern_and_frequency_t const &' | __getitem__(self, i) -> func_info_pattern_and_frequency_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_pattern_and_frequency_vec_t - | x: qvector< func_info_pattern_and_frequency_t > const & + | __init__(self, x) -> func_info_pattern_and_frequency_vec_t + | + | @param x: qvector< func_info_pattern_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66101,22 +63719,23 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: func_info_pattern_and_frequency_t const & + | + | @param i: size_t + | @param v: func_info_pattern_and_frequency_t const & | | __swig_destroy__ = delete_func_info_pattern_and_frequency_vec_t(...) | delete_func_info_pattern_and_frequency_vec_t(self) | | at(self, *args) -> 'func_info_pattern_and_frequency_t const &' | at(self, _idx) -> func_info_pattern_and_frequency_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' | begin(self) -> func_info_pattern_and_frequency_t - | begin(self) -> func_info_pattern_and_frequency_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66129,16 +63748,16 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' | end(self) -> func_info_pattern_and_frequency_t - | end(self) -> func_info_pattern_and_frequency_t | | erase(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | erase(self, it) -> func_info_pattern_and_frequency_t - | it: qvector< func_info_pattern_and_frequency_t >::iterator | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator | | erase(self, first, last) -> func_info_pattern_and_frequency_t - | first: qvector< func_info_pattern_and_frequency_t >::iterator - | last: qvector< func_info_pattern_and_frequency_t >::iterator + | + | @param first: qvector< func_info_pattern_and_frequency_t >::iterator + | @param last: qvector< func_info_pattern_and_frequency_t >::iterator | | extract(self, *args) -> 'func_info_pattern_and_frequency_t *' | extract(self) -> func_info_pattern_and_frequency_t @@ -66148,47 +63767,56 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_pattern_and_frequency_t()) - | x: func_info_pattern_and_frequency_t const & + | + | @param x: func_info_pattern_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: func_info_pattern_and_frequency_t * - | len: size_t + | + | @param s: func_info_pattern_and_frequency_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_pattern_and_frequency_t - | it: qvector< func_info_pattern_and_frequency_t >::iterator - | x: func_info_pattern_and_frequency_t const & + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | @param x: func_info_pattern_and_frequency_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_pattern_and_frequency_t &' | push_back(self, x) - | x: func_info_pattern_and_frequency_t const & + | + | @param x: func_info_pattern_and_frequency_t const & + | + | push_back(self) -> func_info_pattern_and_frequency_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_pattern_and_frequency_t const & | + | @param _newsize: size_t + | @param x: func_info_pattern_and_frequency_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< func_info_pattern_and_frequency_t > & + | + | @param r: qvector< func_info_pattern_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66213,7 +63841,11 @@ class func_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_t + | __init__(self, __name=None, __size=0, __metadata=metadata_t()) -> func_info_t + | + | @param __name: char const * + | @param __size: uint32 + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -66230,13 +63862,13 @@ class func_info_t(builtins.object) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size | | thisown | The membership flag @@ -66250,11 +63882,14 @@ class func_info_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_t const &' | __getitem__(self, i) -> func_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_vec_t - | x: qvector< func_info_t > const & + | __init__(self, x) -> func_info_vec_t + | + | @param x: qvector< func_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66266,22 +63901,23 @@ class func_info_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: func_info_t const & + | + | @param i: size_t + | @param v: func_info_t const & | | __swig_destroy__ = delete_func_info_vec_t(...) | delete_func_info_vec_t(self) | | at(self, *args) -> 'func_info_t const &' | at(self, _idx) -> func_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_t >::const_iterator' | begin(self) -> func_info_t - | begin(self) -> func_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66294,16 +63930,16 @@ class func_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_t >::const_iterator' | end(self) -> func_info_t - | end(self) -> func_info_t | | erase(self, *args) -> 'qvector< func_info_t >::iterator' | erase(self, it) -> func_info_t - | it: qvector< func_info_t >::iterator | + | @param it: qvector< func_info_t >::iterator | | erase(self, first, last) -> func_info_t - | first: qvector< func_info_t >::iterator - | last: qvector< func_info_t >::iterator + | + | @param first: qvector< func_info_t >::iterator + | @param last: qvector< func_info_t >::iterator | | extract(self, *args) -> 'func_info_t *' | extract(self) -> func_info_t @@ -66313,47 +63949,56 @@ class func_info_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_t()) - | x: func_info_t const & + | + | @param x: func_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: func_info_t * - | len: size_t + | + | @param s: func_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_t >::iterator' | insert(self, it, x) -> func_info_t - | it: qvector< func_info_t >::iterator - | x: func_info_t const & + | + | @param it: qvector< func_info_t >::iterator + | @param x: func_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_t &' | push_back(self, x) - | x: func_info_t const & + | + | @param x: func_info_t const & + | + | push_back(self) -> func_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: func_info_t const & | + | @param _newsize: size_t + | @param x: func_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< func_info_t > & + | + | @param r: qvector< func_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66381,7 +64026,8 @@ class func_md_diff_handler_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_md_diff_handler_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -66390,60 +64036,69 @@ class func_md_diff_handler_t(builtins.object) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66461,7 +64116,8 @@ Help on function get_lumina_rpc_packet_t_index_from_base in module ida_lumina: get_lumina_rpc_packet_t_index_from_base(*args) -> 'uchar' get_lumina_rpc_packet_t_index_from_base(code) -> uchar - @param code (C++: lumina_rpc_packet_t) + + @param code: enum lumina_rpc_packet_t Help on function get_server_connection in module ida_lumina: @@ -66472,13 +64128,15 @@ Help on function get_server_connection2 in module ida_lumina: get_server_connection2(*args) -> 'lumina_client_t *' get_server_connection2(feature) -> lumina_client_t - @param feature (C++: lumina_feature_t) + + @param feature: enum lumina_feature_t Help on function has_backup_metadata in module ida_lumina: has_backup_metadata(*args) -> 'bool' has_backup_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on class input_file_t in module ida_lumina: @@ -66488,7 +64146,10 @@ class input_file_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> input_file_t + | __init__(self, __path=None, __md5=md5_t()) -> input_file_t + | + | @param __path: char const * + | @param __md5: md5_t | | __repr__ = _swig_repr(self) | @@ -66505,10 +64166,10 @@ class input_file_t(builtins.object) | list of weak references to the object (if defined) | | md5 - | input_file_t_md5_get(self) -> md5_t * + | md5 | | path - | input_file_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -66537,7 +64198,7 @@ class insn_cmt_t(insn_site_t) | Data descriptors defined here: | | cmt - | insn_cmt_t_cmt_get(self) -> qstring * + | cmt | | thisown | The membership flag @@ -66547,7 +64208,8 @@ class insn_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -66559,10 +64221,10 @@ class insn_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_cmts_t in module ida_lumina: @@ -66573,11 +64235,14 @@ class insn_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'insn_cmt_t const &' | __getitem__(self, i) -> insn_cmt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_cmts_t - | x: qvector< insn_cmt_t > const & + | __init__(self, x) -> insn_cmts_t + | + | @param x: qvector< insn_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66589,22 +64254,23 @@ class insn_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: insn_cmt_t const & + | + | @param i: size_t + | @param v: insn_cmt_t const & | | __swig_destroy__ = delete_insn_cmts_t(...) | delete_insn_cmts_t(self) | | at(self, *args) -> 'insn_cmt_t const &' | at(self, _idx) -> insn_cmt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' | begin(self) -> insn_cmt_t - | begin(self) -> insn_cmt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66617,16 +64283,16 @@ class insn_cmts_t(builtins.object) | | end(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' | end(self) -> insn_cmt_t - | end(self) -> insn_cmt_t | | erase(self, *args) -> 'qvector< insn_cmt_t >::iterator' | erase(self, it) -> insn_cmt_t - | it: qvector< insn_cmt_t >::iterator | + | @param it: qvector< insn_cmt_t >::iterator | | erase(self, first, last) -> insn_cmt_t - | first: qvector< insn_cmt_t >::iterator - | last: qvector< insn_cmt_t >::iterator + | + | @param first: qvector< insn_cmt_t >::iterator + | @param last: qvector< insn_cmt_t >::iterator | | extract(self, *args) -> 'insn_cmt_t *' | extract(self) -> insn_cmt_t @@ -66636,47 +64302,56 @@ class insn_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_cmt_t()) - | x: insn_cmt_t const & + | + | @param x: insn_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: insn_cmt_t * - | len: size_t + | + | @param s: insn_cmt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< insn_cmt_t >::iterator' | insert(self, it, x) -> insn_cmt_t - | it: qvector< insn_cmt_t >::iterator - | x: insn_cmt_t const & + | + | @param it: qvector< insn_cmt_t >::iterator + | @param x: insn_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'insn_cmt_t &' | push_back(self, x) - | x: insn_cmt_t const & + | + | @param x: insn_cmt_t const & + | + | push_back(self) -> insn_cmt_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: insn_cmt_t const & | + | @param _newsize: size_t + | @param x: insn_cmt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< insn_cmt_t > & + | + | @param r: qvector< insn_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66717,13 +64392,13 @@ class insn_ops_repr_t(insn_site_t) | Data descriptors defined here: | | flags - | insn_ops_repr_t_flags_get(self) -> flags_t + | flags | | op0 - | insn_ops_repr_t_op0_get(self) -> opinfo_t + | op0 | | op1 - | insn_ops_repr_t_op1_get(self) -> opinfo_t + | op1 | | thisown | The membership flag @@ -66733,7 +64408,8 @@ class insn_ops_repr_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -66745,10 +64421,10 @@ class insn_ops_repr_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_ops_reprs_t in module ida_lumina: @@ -66759,11 +64435,14 @@ class insn_ops_reprs_t(builtins.object) | | __getitem__(self, *args) -> 'insn_ops_repr_t const &' | __getitem__(self, i) -> insn_ops_repr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_ops_reprs_t - | x: qvector< insn_ops_repr_t > const & + | __init__(self, x) -> insn_ops_reprs_t + | + | @param x: qvector< insn_ops_repr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66775,22 +64454,23 @@ class insn_ops_reprs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: insn_ops_repr_t const & + | + | @param i: size_t + | @param v: insn_ops_repr_t const & | | __swig_destroy__ = delete_insn_ops_reprs_t(...) | delete_insn_ops_reprs_t(self) | | at(self, *args) -> 'insn_ops_repr_t const &' | at(self, _idx) -> insn_ops_repr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' | begin(self) -> insn_ops_repr_t - | begin(self) -> insn_ops_repr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66803,16 +64483,16 @@ class insn_ops_reprs_t(builtins.object) | | end(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' | end(self) -> insn_ops_repr_t - | end(self) -> insn_ops_repr_t | | erase(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | erase(self, it) -> insn_ops_repr_t - | it: qvector< insn_ops_repr_t >::iterator | + | @param it: qvector< insn_ops_repr_t >::iterator | | erase(self, first, last) -> insn_ops_repr_t - | first: qvector< insn_ops_repr_t >::iterator - | last: qvector< insn_ops_repr_t >::iterator + | + | @param first: qvector< insn_ops_repr_t >::iterator + | @param last: qvector< insn_ops_repr_t >::iterator | | extract(self, *args) -> 'insn_ops_repr_t *' | extract(self) -> insn_ops_repr_t @@ -66822,47 +64502,56 @@ class insn_ops_reprs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_ops_repr_t()) - | x: insn_ops_repr_t const & + | + | @param x: insn_ops_repr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: insn_ops_repr_t * - | len: size_t + | + | @param s: insn_ops_repr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | insert(self, it, x) -> insn_ops_repr_t - | it: qvector< insn_ops_repr_t >::iterator - | x: insn_ops_repr_t const & + | + | @param it: qvector< insn_ops_repr_t >::iterator + | @param x: insn_ops_repr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'insn_ops_repr_t &' | push_back(self, x) - | x: insn_ops_repr_t const & + | + | @param x: insn_ops_repr_t const & + | + | push_back(self) -> insn_ops_repr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: insn_ops_repr_t const & | + | @param _newsize: size_t + | @param x: insn_ops_repr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< insn_ops_repr_t > & + | + | @param r: qvector< insn_ops_repr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66896,7 +64585,8 @@ class insn_site_t(builtins.object) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66908,10 +64598,10 @@ class insn_site_t(builtins.object) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off | | thisown | The membership flag @@ -66933,34 +64623,39 @@ class lumina_client_t(builtins.object) | | get_pop(self, *args) -> 'pkt_get_pop_result_t *' | get_pop(self, nresults=10) -> pkt_get_pop_result_t - | @param nresults (C++: uint32) + | + | @param nresults: uint32 | | is_pattern_id(self, *args) -> 'bool' | is_pattern_id(self, pid, md5) -> bool - | @param pid (C++: const pattern_id_t &) - | @param md5 (C++: const md5_t &) + | + | @param pid: pattern_id_t const & + | @param md5: md5_t const & | | pull_md(self, *args) -> 'pkt_pull_md_result_t *' | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t - | @param pattern_ids (C++: pattern_ids_t &) - | @param pull_md_flags (C++: uint32) | + | @param pattern_ids: pattern_ids_t & + | @param pull_md_flags: uint32 | | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t - | funcs: eavec_t * - | @param pull_md_flags (C++: uint32) + | + | @param funcs: eavec_t * + | @param pull_md_flags: uint32 | | push_md(self, *args) -> 'bool' | push_md(self, result, opts, append_metadata=None, flags=0) -> bool - | @param result (C++: push_md_result_t *) - | @param opts (C++: const push_md_opts_t &) - | @param append_metadata (C++: metadata_appender_t *) - | @param flags (C++: uint32) + | + | @param result: push_md_result_t * + | @param opts: push_md_opts_t const & + | @param append_metadata: metadata_appender_t * + | @param flags: uint32 | | set_pattern_id_md5(self, *args) -> 'void' | set_pattern_id_md5(self, out, md5) - | @param out (C++: pattern_id_t *) - | @param md5 (C++: const md5_t &) + | + | @param out: pattern_id_t * + | @param md5: md5_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66983,15 +64678,19 @@ class lumina_op_res_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lumina_op_res_t > const & + | + | @param r: qvector< lumina_op_res_t > const & | | __getitem__(self, *args) -> 'lumina_op_res_t const &' | __getitem__(self, i) -> lumina_op_res_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lumina_op_res_vec_t - | x: qvector< lumina_op_res_t > const & + | __init__(self, x) -> lumina_op_res_vec_t + | + | @param x: qvector< lumina_op_res_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67001,29 +64700,36 @@ class lumina_op_res_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lumina_op_res_t > const & + | + | @param r: qvector< lumina_op_res_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lumina_op_res_t const & + | + | @param i: size_t + | @param v: lumina_op_res_t const & | | __swig_destroy__ = delete_lumina_op_res_vec_t(...) | delete_lumina_op_res_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lumina_op_res_t const & + | + | Parameters + | ---------- + | x: lumina_op_res_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | at(self, *args) -> 'lumina_op_res_t const &' | at(self, _idx) -> lumina_op_res_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67047,74 +64753,86 @@ class lumina_op_res_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< lumina_op_res_t >::iterator' | erase(self, it) -> qvector< lumina_op_res_t >::iterator - | it: qvector< lumina_op_res_t >::iterator | + | @param it: qvector< lumina_op_res_t >::iterator | | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator - | first: qvector< lumina_op_res_t >::iterator - | last: qvector< lumina_op_res_t >::iterator + | + | @param first: qvector< lumina_op_res_t >::iterator + | @param last: qvector< lumina_op_res_t >::iterator | | extract(self, *args) -> 'lumina_op_res_t *' | extract(self) -> lumina_op_res_t * | | find(self, *args) -> 'qvector< lumina_op_res_t >::const_iterator' | find(self, x) -> qvector< lumina_op_res_t >::iterator - | x: lumina_op_res_t const & | + | @param x: lumina_op_res_t const & | | find(self, x) -> qvector< lumina_op_res_t >::const_iterator - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lumina_op_res_t()) - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lumina_op_res_t * - | len: size_t + | + | @param s: lumina_op_res_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lumina_op_res_t >::iterator' | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator - | it: qvector< lumina_op_res_t >::iterator - | x: lumina_op_res_t const & + | + | @param it: qvector< lumina_op_res_t >::iterator + | @param x: lumina_op_res_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lumina_op_res_t &' | push_back(self, x) - | x: lumina_op_res_t const & + | + | @param x: lumina_op_res_t const & + | + | push_back(self) -> lumina_op_res_t & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lumina_op_res_t const & | + | @param _newsize: size_t + | @param x: lumina_op_res_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lumina_op_res_t > & + | + | @param r: qvector< lumina_op_res_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67145,14 +64863,16 @@ class md_type_parts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: md_type_parts_t const & + | + | @param r: md_type_parts_t const & | | __init__(self, *args) | __init__(self) -> md_type_parts_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: md_type_parts_t const & + | + | @param r: md_type_parts_t const & | | __repr__ = _swig_repr(self) | @@ -67169,16 +64889,16 @@ class md_type_parts_t(builtins.object) | list of weak references to the object (if defined) | | fields - | md_type_parts_t_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | md_type_parts_t_type_get(self) -> qtype * + | type | | userti - | md_type_parts_t_userti_get(self) -> bool + | userti | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -67194,7 +64914,8 @@ class metadata_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self, _md) -> metadata_iterator_t - | _md: metadata_t const & + | + | @param _md: metadata_t const & | | __repr__ = _swig_repr(self) | @@ -67217,13 +64938,13 @@ class metadata_iterator_t(builtins.object) | list of weak references to the object (if defined) | | data - | metadata_iterator_t_data_get(self) -> uchar const * + | data | | key - | metadata_iterator_t_key_get(self) -> mdkey_t + | key | | size - | metadata_iterator_t_size_get(self) -> size_t + | size | | thisown | The membership flag @@ -67232,10 +64953,11 @@ Help on function new_packet in module ida_lumina: new_packet(*args) -> 'rpc_packet_data_t *' new_packet(code, ptr=None, len=0, version=-1) -> rpc_packet_data_t * - @param code (C++: uchar) - @param ptr (C++: const uchar *) - @param len (C++: size_t) - @param version (C++: int) + + @param code: uchar + @param ptr: uchar const * + @param len: size_t + @param version: int Help on class oprepr_t in module ida_lumina: @@ -67262,10 +64984,10 @@ class oprepr_t(builtins.object) | list of weak references to the object (if defined) | | flags - | oprepr_t_flags_get(self) -> flags_t + | flags | | opinfo - | oprepr_t_opinfo_get(self) -> opinfo_t + | opinfo | | thisown | The membership flag @@ -67278,7 +65000,10 @@ class pattern_id_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pattern_id_t + | __init__(self, __type=PAT_TYPE_UNKNOWN, __data=bytevec_t()) -> pattern_id_t + | + | @param __type: enum pattern_type_t + | @param __data: bytevec_t | | __repr__ = _swig_repr(self) | @@ -67295,130 +65020,13 @@ class pattern_id_t(builtins.object) | list of weak references to the object (if defined) | | data - | pattern_id_t_data_get(self) -> bytevec_t * + | data | | thisown | The membership flag | | type - | pattern_id_t_type_get(self) -> pattern_type_t - -Help on class pkt_clean_db_t in module ida_lumina: - -class pkt_clean_db_t(builtins.object) - | Proxy of C++ pkt_clean_db_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_clean_db_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_clean_db_t(...) - | delete_pkt_clean_db_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - -Help on class pkt_debugctl_t in module ida_lumina: - -class pkt_debugctl_t(builtins.object) - | Proxy of C++ pkt_debugctl_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_debugctl_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_debugctl_t(...) - | delete_pkt_debugctl_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | args - | pkt_debugctl_t_args_get(self) -> qstrvec_t * - | - | thisown - | The membership flag - -Help on class pkt_dump_md_result_t in module ida_lumina: - -class pkt_dump_md_result_t(builtins.object) - | Proxy of C++ pkt_dump_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_result_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_dump_md_result_t(...) - | delete_pkt_dump_md_result_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | contents - | pkt_dump_md_result_t_contents_get(self) -> func_info_pattern_and_frequency_vec_t - | - | thisown - | The membership flag - -Help on class pkt_dump_md_t in module ida_lumina: - -class pkt_dump_md_t(builtins.object) - | Proxy of C++ pkt_dump_md_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_dump_md_t(...) - | delete_pkt_dump_md_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | sort - | pkt_dump_md_t_sort_get(self) -> dump_md_sort_type_t - | - | thisown - | The membership flag + | type Help on class pkt_get_pop_result_t in module ida_lumina: @@ -67445,7 +65053,7 @@ class pkt_get_pop_result_t(builtins.object) | list of weak references to the object (if defined) | | results - | pkt_get_pop_result_t_results_get(self) -> pop_fun_vec_t * + | results | | thisown | The membership flag @@ -67475,7 +65083,7 @@ class pkt_get_pop_t(builtins.object) | list of weak references to the object (if defined) | | nresults - | pkt_get_pop_t_nresults_get(self) -> uint32 + | nresults | | thisown | The membership flag @@ -67505,16 +65113,16 @@ class pkt_helo_t(builtins.object) | list of weak references to the object (if defined) | | client_version - | pkt_helo_t_client_version_get(self) -> int + | client_version | | key - | pkt_helo_t_key_get(self) -> bytevec_t * + | key | | license_id - | pkt_helo_t_license_id_get(self) -> uchar [6] + | license_id | | record_conv - | pkt_helo_t_record_conv_get(self) -> bool + | record_conv | | thisown | The membership flag @@ -67544,10 +65152,10 @@ class pkt_pull_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | pkt_pull_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | results - | pkt_pull_md_result_t_results_get(self) -> func_info_and_frequency_vec_t + | results | | thisown | The membership flag @@ -67577,13 +65185,13 @@ class pkt_pull_md_t(builtins.object) | list of weak references to the object (if defined) | | flags - | pkt_pull_md_t_flags_get(self) -> uint32 + | flags | | keys - | pkt_pull_md_t_keys_get(self) -> mdkey_vec_t * + | keys | | pattern_ids - | pkt_pull_md_t_pattern_ids_get(self) -> pattern_ids_t * + | pattern_ids | | thisown | The membership flag @@ -67613,7 +65221,7 @@ class pkt_push_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | pkt_push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | thisown | The membership flag @@ -67643,22 +65251,22 @@ class pkt_push_md_t(builtins.object) | list of weak references to the object (if defined) | | contents - | pkt_push_md_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | ea64s - | pkt_push_md_t_ea64s_get(self) -> ea64vec_t * + | ea64s | | flags - | pkt_push_md_t_flags_get(self) -> uint32 + | flags | | hostname - | pkt_push_md_t_hostname_get(self) -> qstring * + | hostname | | idb - | pkt_push_md_t_idb_get(self) -> qstring * + | idb | | input - | pkt_push_md_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -67688,10 +65296,10 @@ class pkt_rpc_fail_t(builtins.object) | list of weak references to the object (if defined) | | error - | pkt_rpc_fail_t_error_get(self) -> qstring * + | error | | result - | pkt_rpc_fail_t_result_get(self) -> int + | result | | thisown | The membership flag @@ -67721,13 +65329,13 @@ class pkt_rpc_notify_t(builtins.object) | list of weak references to the object (if defined) | | text - | pkt_rpc_notify_t_text_get(self) -> qstring * + | text | | thisown | The membership flag | | type - | pkt_rpc_notify_t_type_get(self) -> rpc_notification_type_t + | type Help on class pkt_rpc_ok_t in module ida_lumina: @@ -67771,7 +65379,11 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pop_fun_t + | __init__(self, __hostname=None, __input=input_file_t(), __ea64=ea64_t(-1)) -> pop_fun_t + | + | @param __hostname: char const * + | @param __input: input_file_t + | @param __ea64: ea64_t | | __repr__ = _swig_repr(self) | @@ -67782,13 +65394,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors defined here: | | ea64 - | pop_fun_t_ea64_get(self) -> ea64_t + | ea64 | | hostname - | pop_fun_t_hostname_get(self) -> qstring * + | hostname | | input - | pop_fun_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -67797,13 +65409,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors inherited from func_info_pattern_and_frequency_t: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -67815,13 +65427,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class push_md_opts_t in module ida_lumina: @@ -67832,7 +65444,8 @@ class push_md_opts_t(builtins.object) | | __init__(self, *args) | __init__(self, mfs=size_t(-1)) -> push_md_opts_t - | mfs: size_t + | + | @param mfs: size_t | | __repr__ = _swig_repr(self) | @@ -67849,10 +65462,10 @@ class push_md_opts_t(builtins.object) | list of weak references to the object (if defined) | | eas - | push_md_opts_t_eas_get(self) -> eavec_t * + | eas | | min_func_size - | push_md_opts_t_min_func_size_get(self) -> size_t + | min_func_size | | thisown | The membership flag @@ -67882,13 +65495,13 @@ class push_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | contents - | push_md_result_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | eas - | push_md_result_t_eas_get(self) -> eavec_t * + | eas | | thisown | The membership flag @@ -67897,13 +65510,15 @@ Help on function revert_metadata in module ida_lumina: revert_metadata(*args) -> 'bool' revert_metadata(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function score_metadata in module ida_lumina: score_metadata(*args) -> 'uint32' score_metadata(fi) -> uint32 - @param fi (C++: const func_info_t &) + + @param fi: func_info_t const & Help on class serialized_tinfo in module ida_lumina: @@ -67913,7 +65528,10 @@ class serialized_tinfo(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> serialized_tinfo + | __init__(self, __type=None, __fields=None) -> serialized_tinfo + | + | @param __type: type_t const * + | @param __fields: type_t const * | | __repr__ = _swig_repr(self) | @@ -67930,13 +65548,13 @@ class serialized_tinfo(builtins.object) | list of weak references to the object (if defined) | | fields - | serialized_tinfo_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | serialized_tinfo_type_get(self) -> qtype * + | type Help on class simple_diff_handler_t in module ida_lumina: @@ -67952,7 +65570,8 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -67961,69 +65580,78 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | thisown | The membership flag @@ -68057,7 +65685,8 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -68068,10 +65697,10 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | Data descriptors defined here: | | header_generated - | simple_idb_diff_handler_t_header_generated_get(self) -> bool + | header_generated | | pfn - | simple_idb_diff_handler_t_pfn_get(self) -> func_t const * + | pfn | | thisown | The membership flag @@ -68081,69 +65710,78 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param is_prev (C++: bool) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) - | @param offset (C++: uint32) - | @param l (C++: const frame_mem_t *) - | @param r (C++: const frame_mem_t *) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) - | @param rep (C++: bool) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const insn_ops_repr_t *) - | @param r (C++: const insn_ops_repr_t *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) - | @param l (C++: const qstring *) - | @param r (C++: const qstring *) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) - | @param l (C++: const md_type_parts_t &) - | @param r (C++: const md_type_parts_t &) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) - | @param l (C++: uint32) - | @param r (C++: uint32) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | @param fchunk_nr (C++: uint32) - | @param fchunk_off (C++: uint32) - | @param l (C++: const int64 *) - | @param r (C++: const int64 *) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors inherited from simple_diff_handler_t: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | ---------------------------------------------------------------------- | Methods inherited from func_md_diff_handler_t: @@ -68167,7 +65805,10 @@ class skipped_func_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> skipped_func_t + | __init__(self, __pattern_id=pattern_id_t(), __count=0) -> skipped_func_t + | + | @param __pattern_id: pattern_id_t + | @param __count: uint32 | | __repr__ = _swig_repr(self) | @@ -68184,10 +65825,10 @@ class skipped_func_t(builtins.object) | list of weak references to the object (if defined) | | count - | skipped_func_t_count_get(self) -> uint32 + | count | | pattern_id - | skipped_func_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -68201,11 +65842,14 @@ class skipped_funcs_t(builtins.object) | | __getitem__(self, *args) -> 'skipped_func_t const &' | __getitem__(self, i) -> skipped_func_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> skipped_funcs_t - | x: qvector< skipped_func_t > const & + | __init__(self, x) -> skipped_funcs_t + | + | @param x: qvector< skipped_func_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68217,22 +65861,23 @@ class skipped_funcs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: skipped_func_t const & + | + | @param i: size_t + | @param v: skipped_func_t const & | | __swig_destroy__ = delete_skipped_funcs_t(...) | delete_skipped_funcs_t(self) | | at(self, *args) -> 'skipped_func_t const &' | at(self, _idx) -> skipped_func_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< skipped_func_t >::const_iterator' | begin(self) -> skipped_func_t - | begin(self) -> skipped_func_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68245,16 +65890,16 @@ class skipped_funcs_t(builtins.object) | | end(self, *args) -> 'qvector< skipped_func_t >::const_iterator' | end(self) -> skipped_func_t - | end(self) -> skipped_func_t | | erase(self, *args) -> 'qvector< skipped_func_t >::iterator' | erase(self, it) -> skipped_func_t - | it: qvector< skipped_func_t >::iterator | + | @param it: qvector< skipped_func_t >::iterator | | erase(self, first, last) -> skipped_func_t - | first: qvector< skipped_func_t >::iterator - | last: qvector< skipped_func_t >::iterator + | + | @param first: qvector< skipped_func_t >::iterator + | @param last: qvector< skipped_func_t >::iterator | | extract(self, *args) -> 'skipped_func_t *' | extract(self) -> skipped_func_t @@ -68264,47 +65909,56 @@ class skipped_funcs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=skipped_func_t()) - | x: skipped_func_t const & + | + | @param x: skipped_func_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: skipped_func_t * - | len: size_t + | + | @param s: skipped_func_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< skipped_func_t >::iterator' | insert(self, it, x) -> skipped_func_t - | it: qvector< skipped_func_t >::iterator - | x: skipped_func_t const & + | + | @param it: qvector< skipped_func_t >::iterator + | @param x: skipped_func_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'skipped_func_t &' | push_back(self, x) - | x: skipped_func_t const & + | + | @param x: skipped_func_t const & + | + | push_back(self) -> skipped_func_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: skipped_func_t const & | + | @param _newsize: size_t + | @param x: skipped_func_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< skipped_func_t > & + | + | @param r: qvector< skipped_func_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68324,8 +65978,9 @@ class skipped_funcs_t(builtins.object) Help on function split_metadata in module ida_lumina: split_metadata(*args) -> 'PyObject *' - split_metadata(md) -> PyObject * - md: metadata_t const & + split_metadata(md) -> dict + + @param md: metadata_t const & Help on class user_identification_t in module ida_lumina: @@ -68335,7 +65990,11 @@ class user_identification_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> user_identification_t + | __init__(self, __license_id=None, __user_name=None, __email=None) -> user_identification_t + | + | @param __license_id: char const * + | @param __user_name: char const * + | @param __email: char const * | | __repr__ = _swig_repr(self) | @@ -68352,16 +66011,16 @@ class user_identification_t(builtins.object) | list of weak references to the object (if defined) | | email - | user_identification_t_email_get(self) -> qstring * + | email | | license_id - | user_identification_t_license_id_get(self) -> qstring * + | license_id | | thisown | The membership flag | | user_name - | user_identification_t_user_name_get(self) -> qstring * + | user_name Help on class user_stkpnt_t in module ida_lumina: @@ -68387,7 +66046,7 @@ class user_stkpnt_t(insn_site_t) | Data descriptors defined here: | | delta - | user_stkpnt_t_delta_get(self) -> int64 + | delta | | thisown | The membership flag @@ -68397,7 +66056,8 @@ class user_stkpnt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -68409,10 +66069,10 @@ class user_stkpnt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class user_stkpnts_t in module ida_lumina: @@ -68423,11 +66083,14 @@ class user_stkpnts_t(builtins.object) | | __getitem__(self, *args) -> 'user_stkpnt_t const &' | __getitem__(self, i) -> user_stkpnt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> user_stkpnts_t - | x: qvector< user_stkpnt_t > const & + | __init__(self, x) -> user_stkpnts_t + | + | @param x: qvector< user_stkpnt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68439,22 +66102,23 @@ class user_stkpnts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: user_stkpnt_t const & + | + | @param i: size_t + | @param v: user_stkpnt_t const & | | __swig_destroy__ = delete_user_stkpnts_t(...) | delete_user_stkpnts_t(self) | | at(self, *args) -> 'user_stkpnt_t const &' | at(self, _idx) -> user_stkpnt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' | begin(self) -> user_stkpnt_t - | begin(self) -> user_stkpnt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68467,16 +66131,16 @@ class user_stkpnts_t(builtins.object) | | end(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' | end(self) -> user_stkpnt_t - | end(self) -> user_stkpnt_t | | erase(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | erase(self, it) -> user_stkpnt_t - | it: qvector< user_stkpnt_t >::iterator | + | @param it: qvector< user_stkpnt_t >::iterator | | erase(self, first, last) -> user_stkpnt_t - | first: qvector< user_stkpnt_t >::iterator - | last: qvector< user_stkpnt_t >::iterator + | + | @param first: qvector< user_stkpnt_t >::iterator + | @param last: qvector< user_stkpnt_t >::iterator | | extract(self, *args) -> 'user_stkpnt_t *' | extract(self) -> user_stkpnt_t @@ -68486,47 +66150,56 @@ class user_stkpnts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=user_stkpnt_t()) - | x: user_stkpnt_t const & + | + | @param x: user_stkpnt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: user_stkpnt_t * - | len: size_t + | + | @param s: user_stkpnt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | insert(self, it, x) -> user_stkpnt_t - | it: qvector< user_stkpnt_t >::iterator - | x: user_stkpnt_t const & + | + | @param it: qvector< user_stkpnt_t >::iterator + | @param x: user_stkpnt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'user_stkpnt_t &' | push_back(self, x) - | x: user_stkpnt_t const & + | + | @param x: user_stkpnt_t const & + | + | push_back(self) -> user_stkpnt_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: user_stkpnt_t const & | + | @param _newsize: size_t + | @param x: user_stkpnt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< user_stkpnt_t > & + | + | @param r: qvector< user_stkpnt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68543,26 +66216,10 @@ class user_stkpnts_t(builtins.object) | thisown | The membership flag -=== ida_lumina EPYDOC INJECTIONS === -ida_lumina.AMDF_FORCE +Module "ida_moves"s docstring: """ -apply kvps regardless of what's currently in the IDB, possibly -removing some attributes currently present (e.g., name, or prototype -could be lost) """ -ida_lumina.AMDF_UPGRADE -""" -"quality" than what's currently in the IDB - -apply kvps that seem to be of higher -""" - -ida_lumina.PMF_PUSH_MODE_MASK -""" -Conflict resolution mode. -""" -=== ida_lumina EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(builtins.object) @@ -68580,45 +66237,52 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool - | out_entry: lochist_entry_t * - | out_desc: qstring * - | index: uint32 * - | ud: void * + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | get_dirtree_id(*args) -> 'dirtree_id_t' | get_dirtree_id(e, ud) -> dirtree_id_t - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 - | e: lochist_entry_t const & - | index: uint32 - | title: char const * - | desc: char const * - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68636,57 +66300,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) -> 'uint32' bookmarks_t_find_index(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) -> 'bool' bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - out_entry: lochist_entry_t * - out_desc: qstring * - index: uint32 * - ud: void * + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) -> 'qstring *' bookmarks_t_get_desc(e, index, ud) -> str - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_get_dirtree_id in module ida_moves: bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) -> 'uint32' bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - e: lochist_entry_t const & - index: uint32 - title: char const * - desc: char const * - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -68697,14 +66368,16 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -68721,16 +66394,16 @@ class graph_location_info_t(builtins.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -68746,12 +66419,14 @@ class lochist_entry_t(builtins.object) | | __init__(self, *args) | __init__(self) -> lochist_entry_t - | p: place_t const * - | r: renderer_info_t const & + | __init__(self, p, r) -> lochist_entry_t | + | @param p: place_t const * + | @param r: renderer_info_t const & | | __init__(self, other) -> lochist_entry_t - | other: lochist_entry_t const & + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -68760,22 +66435,22 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) - | @param in_p (C++: place_t *) + | + | @param in_p: place_t * | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool | | place(self, *args) -> 'place_t *' | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) -> 'renderer_info_t &' | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) -> 'void' | set_place(self, p) - | @param p (C++: const place_t *) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68787,10 +66462,10 @@ class lochist_entry_t(builtins.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag @@ -68812,8 +66487,9 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) -> 'void' | clear(self) @@ -68823,13 +66499,15 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) -> 'bool' | get(self, out, index) -> bool - | @param out (C++: lochist_entry_t *) - | @param index (C++: uint32) + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -68842,18 +66520,20 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool - | @param stream_name (C++: const char *) - | @param _defpos (C++: const place_t *) - | @param _ud (C++: void *) - | @param _flags (C++: uint32) + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) -> 'bool' | is_history_enabled(self) -> bool | | jump(self, *args) -> 'void' | jump(self, try_to_unhide, e) - | @param try_to_unhide (C++: bool) - | @param e (C++: const lochist_entry_t &) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -68863,17 +66543,20 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool - | @param index (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) -> 'void' | set(self, index, e) - | @param index (C++: uint32) - | @param e (C++: const lochist_entry_t &) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) -> 'void' | set_current(self, e) - | @param e (C++: const lochist_entry_t &) + | + | @param e: lochist_entry_t const & | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -68899,14 +66582,16 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -68923,13 +66608,13 @@ class renderer_info_pos_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -68948,14 +66633,21 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -68972,13 +66664,13 @@ class renderer_info_t(builtins.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -68997,17 +66689,20 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | _from: ea_t - | _to: ea_t - | _sz: size_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -69024,16 +66719,16 @@ class segm_move_info_t(builtins.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -69049,15 +66744,19 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | x: qvector< segm_move_info_t > const & + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69067,36 +66766,42 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | __swig_destroy__ = delete_segm_move_info_vec_t(...) | delete_segm_move_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69109,78 +66814,85 @@ class segm_move_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t | | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & | - | - | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69224,7 +66936,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) -> 'segm_move_info_t const *' | find(self, ea) -> segm_move_info_t - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69237,11 +66950,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69251,31 +66966,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69288,16 +67009,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -69307,51 +67028,61 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69370,22 +67101,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __hash__ = None +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) -> 'ssize_t' get_switch_info(out, ea) -> ssize_t - @param out (C++: switch_info_t *) - @param ea (C++: ea_t) + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - Add a new encoding (e.g. "UTF-8"). + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - add_encoding(encoding) -> int - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -69412,13 +67161,13 @@ class array_parameters_t(builtins.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -69427,154 +67176,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) -> 'void' + clr_notcode(ea) Clear not-code mark. - clr_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -69585,11 +67358,13 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array - | data: short (&)[8] + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69601,8 +67376,9 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: short const & + | + | @param i: size_t + | @param v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) @@ -69612,7 +67388,10 @@ class custom_data_type_ids_fids_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69627,7 +67406,7 @@ class custom_data_type_ids_fids_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -69650,9 +67429,13 @@ class custom_data_type_ids_t(builtins.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | | set(self, *args) -> 'void' | set(self, tid) - | @param tid (C++: tid_t) + | + | @param tid: tid_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69664,7 +67447,7 @@ class custom_data_type_ids_t(builtins.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -69675,122 +67458,142 @@ class custom_data_type_ids_t(builtins.object) Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) -> 'size_t' - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) -> 'void' del_absbase(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) -> 'void' del_custom_data_type_ids(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' - Delete an encoding (1-based) - del_encoding(idx) -> bool - @param idx (C++: int) + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) -> 'void' + delete_imports() Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) -> 'nodeidx_t' + ea2node(ea) -> nodeidx_t Get netnode for the specified address. - ea2node(ea) -> nodeidx_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) -> 'char const *' - Get encoding name for this strtype. - encoding_from_strtype(strtype) -> char const * - @param strtype (C++: int32) + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -69817,13 +67620,13 @@ class enum_const_t(builtins.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid Help on function enum_import_names in module ida_nalt: @@ -69839,10 +67642,10 @@ enum_import_names(*args) -> 'int' Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) -> 'int' + find_custom_refinfo(name) -> int Get id of a custom refinfo type. - find_custom_refinfo(name) -> int - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: @@ -69852,90 +67655,108 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_aflags in module ida_nalt: get_aflags(*args) -> 'aflags_t' get_aflags(ea) -> aflags_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) -> 'qstring *' + get_archive_path() -> str Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) -> 'ssize_t' get_array_parameters(out, ea) -> ssize_t - @param out (C++: array_parameters_t *) - @param ea (C++: ea_t) + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) -> 'qstring *' + get_asm_inc_file() -> str Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) -> 'int' get_custom_data_type_ids(cdis, ea) -> int - @param cdis (C++: custom_data_type_ids_t *) - @param ea (C++: ea_t) + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * Get definition of a registered custom refinfo type. - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) -> 'int' + get_default_encoding_idx(bpu) -> int Get default encoding index for a specific string type. - get_default_encoding_idx(bpu) -> int - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument Help on function get_elapsed_secs in module ida_nalt: get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) -> 'int' - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - get_encoding_bpu(idx) -> int - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) -> 'char const *' + get_encoding_name(idx) -> char const * Get encoding name for specific index (1-based). - get_encoding_name(idx) -> char const * - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) -> 'int' + get_encoding_qty() -> int Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -69945,182 +67766,202 @@ get_gotea(*args) -> 'ea_t' Help on function get_ida_notepad_text in module ida_nalt: -get_ida_notepad_text(*args) -> 'ssize_t' - Get notead text. - - get_ida_notepad_text(text) -> ssize_t - @param text (C++: qstring *) +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. Help on function get_idb_ctime in module ida_nalt: get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t Get database creation timestamp. Help on function get_idb_nopens in module ida_nalt: get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t Get number of times the database is opened. Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) -> 'netnode' + get_ids_modnode() -> netnode Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) -> 'ea_t' + get_imagebase() -> ea_t Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) -> 'PyObject *' - get_import_module_name(mod_index) -> PyObject * + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) -> 'uint' + get_import_module_qty() -> uint Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) -> 'ea_t' get_ind_purged(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_initial_ida_version in module ida_nalt: -get_initial_ida_version(*args) -> 'ushort' - Get version of ida which created the database (string format like - "7.5") - - get_initial_ida_version(ver) -> ssize_t - @param ver (C++: qstring *) +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) -> 'bgcolor_t' get_item_color(ea) -> bgcolor_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_loader_format_name in module ida_nalt: get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) -> 'int' - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) -> 'reftype_t' - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - get_reftype_by_size(size) -> reftype_t - @param size (C++: size_t) + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' + get_root_filename() -> str Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_srcdbg_paths in module ida_nalt: -get_srcdbg_paths(*args) -> 'ssize_t' +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str Get source debug paths. - - get_srcdbg_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_srcdbg_undesired_paths in module ida_nalt: -get_srcdbg_undesired_paths(*args) -> 'ssize_t' +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str Get user-closed source files. - - get_srcdbg_undesired_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) -> 'uchar' + get_str_encoding_idx(strtype) -> uchar Get index of the string encoding for this string. - get_str_encoding_idx(strtype) -> uchar - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) -> 'char' get_str_term1(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) -> 'uchar' get_str_type_code(strtype) -> uchar - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type_prefix_length in module ida_nalt: get_str_type_prefix_length(*args) -> 'size_t' get_str_type_prefix_length(strtype) -> size_t - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_strid in module ida_nalt: get_strid(*args) -> 'tid_t' get_strid(ea) -> tid_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -70130,454 +67971,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_aflag_linnum in module ida_nalt: has_aflag_linnum(*args) -> 'bool' has_aflag_linnum(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_lname in module ida_nalt: has_aflag_lname(*args) -> 'bool' has_aflag_lname(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti in module ida_nalt: has_aflag_ti(*args) -> 'bool' has_aflag_ti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti0 in module ida_nalt: has_aflag_ti0(*args) -> 'bool' has_aflag_ti0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti1 in module ida_nalt: has_aflag_ti1(*args) -> 'bool' has_aflag_ti1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_aflag__bnot0 in module ida_nalt: is_aflag__bnot0(*args) -> 'bool' is_aflag__bnot0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__bnot1 in module ida_nalt: is_aflag__bnot1(*args) -> 'bool' is_aflag__bnot1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign0 in module ida_nalt: is_aflag__invsign0(*args) -> 'bool' is_aflag__invsign0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign1 in module ida_nalt: is_aflag__invsign1(*args) -> 'bool' is_aflag__invsign1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_align_flow in module ida_nalt: is_aflag_align_flow(*args) -> 'bool' is_aflag_align_flow(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_colored_item in module ida_nalt: is_aflag_colored_item(*args) -> 'bool' is_aflag_colored_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: is_aflag_data_guessed_by_hexrays(*args) -> 'bool' is_aflag_data_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_fixed_spd in module ida_nalt: is_aflag_fixed_spd(*args) -> 'bool' is_aflag_fixed_spd(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: is_aflag_func_guessed_by_hexrays(*args) -> 'bool' is_aflag_func_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_border in module ida_nalt: is_aflag_hidden_border(*args) -> 'bool' is_aflag_hidden_border(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_item in module ida_nalt: is_aflag_hidden_item(*args) -> 'bool' is_aflag_hidden_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_libitem in module ida_nalt: is_aflag_libitem(*args) -> 'bool' is_aflag_libitem(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero0 in module ida_nalt: is_aflag_lzero0(*args) -> 'bool' is_aflag_lzero0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero1 in module ida_nalt: is_aflag_lzero1(*args) -> 'bool' is_aflag_lzero1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_manual_insn in module ida_nalt: is_aflag_manual_insn(*args) -> 'bool' is_aflag_manual_insn(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_noret in module ida_nalt: is_aflag_noret(*args) -> 'bool' is_aflag_noret(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notcode in module ida_nalt: is_aflag_notcode(*args) -> 'bool' is_aflag_notcode(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notproc in module ida_nalt: is_aflag_notproc(*args) -> 'bool' is_aflag_notproc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_public_name in module ida_nalt: is_aflag_public_name(*args) -> 'bool' is_aflag_public_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_retfp in module ida_nalt: is_aflag_retfp(*args) -> 'bool' is_aflag_retfp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_terse_struc in module ida_nalt: is_aflag_terse_struc(*args) -> 'bool' is_aflag_terse_struc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_tilcmt in module ida_nalt: is_aflag_tilcmt(*args) -> 'bool' is_aflag_tilcmt(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: is_aflag_type_determined_by_hexrays(*args) -> 'bool' is_aflag_type_determined_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: is_aflag_type_guessed_by_hexrays(*args) -> 'bool' is_aflag_type_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_ida in module ida_nalt: is_aflag_type_guessed_by_ida(*args) -> 'bool' is_aflag_type_guessed_by_ida(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_usersp in module ida_nalt: is_aflag_usersp(*args) -> 'bool' is_aflag_usersp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_userti in module ida_nalt: is_aflag_userti(*args) -> 'bool' is_aflag_userti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_weak_name in module ida_nalt: is_aflag_weak_name(*args) -> 'bool' is_aflag_weak_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_zstroff in module ida_nalt: is_aflag_zstroff(*args) -> 'bool' is_aflag_zstroff(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_data_guessed_by_hexrays in module ida_nalt: is_data_guessed_by_hexrays(*args) -> 'bool' is_data_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) -> 'bool' + is_finally_visible_item(ea) -> bool Is instruction visible? - is_finally_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) -> 'bool' is_fixed_spd(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_func_guessed_by_hexrays in module ida_nalt: is_func_guessed_by_hexrays(*args) -> 'bool' is_func_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) -> 'bool' + is_notcode(ea) -> bool Is the address marked as not-code? - is_notcode(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool - @param strtype (C++: int32) + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) -> 'bool' + is_reftype_target_optional(type) -> bool Can the target be calculated using operand value? - is_reftype_target_optional(type) -> bool - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_determined_by_hexrays in module ida_nalt: is_type_determined_by_hexrays(*args) -> 'bool' is_type_determined_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_hexrays in module ida_nalt: is_type_guessed_by_hexrays(*args) -> 'bool' is_type_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_ida in module ida_nalt: is_type_guessed_by_ida(*args) -> 'bool' is_type_guessed_by_ida(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) -> 'bool' + is_visible_item(ea) -> bool Test visibility of item at given ea. - is_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t - @param ndx (C++: nodeidx_t) + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -70604,25 +68526,25 @@ class opinfo_t(builtins.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid Help on class printop_t in module ida_nalt: @@ -70650,11 +68572,13 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70666,25 +68590,25 @@ class printop_t(builtins.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> aflags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti Help on class refinfo_t in module ida_nalt: @@ -70703,14 +68627,21 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | @param reft_and_flags (C++: uint32) - | @param _base (C++: ea_t) - | @param _target (C++: ea_t) - | @param _tdelta (C++: adiff_t) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) -> 'bool' | is_pastend(self) -> bool | @@ -70724,14 +68655,16 @@ class refinfo_t(builtins.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) -> 'bool' - | < 'is_reftype_target_optional()' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) -> 'bool' | no_base_xref(self) -> bool | | set_type(self, *args) -> 'void' | set_type(self, rt) - | @param rt (C++: reftype_t) + | + | @param rt: reftype_t | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -70746,16 +68679,16 @@ class refinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -70763,420 +68696,477 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - Change name for an encoding (1-based) + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - rename_encoding(idx, encoding) -> bool - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) -> 'uint32' - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) -> 'uchar [ANY]' + retrieve_input_file_sha256() -> bytes Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) -> 'void' set__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) - @param ea (C++: ea_t) - @param flags (C++: aflags_t) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) -> 'bool' + set_archive_path(file) -> bool Set archive file path from which input file was extracted. - set_archive_path(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) - @param ea (C++: ea_t) - in: array_parameters_t const * + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) -> 'bool' + set_asm_inc_file(file) -> bool Set name of the include file. - set_asm_inc_file(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) -> 'void' set_custom_data_type_ids(ea, cdis) - @param ea (C++: ea_t) - @param cdis (C++: const custom_data_type_ids_t *) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * Help on function set_data_guessed_by_hexrays in module ida_nalt: set_data_guessed_by_hexrays(*args) -> 'void' set_data_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) -> 'bool' - set default encoding for a string type - set_default_encoding_idx(bpu, idx) -> bool - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) -> 'void' set_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_func_guessed_by_hexrays in module ida_nalt: set_func_guessed_by_hexrays(*args) -> 'void' set_func_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) - @param gotea (C++: ea_t) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_ida_notepad_text in module ida_nalt: set_ida_notepad_text(*args) -> 'void' - Set notead text. - set_ida_notepad_text(text, size=0) - @param text (C++: const char *) - @param size (C++: size_t) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) -> 'void' + set_ids_modnode(id) Set ids modnode. - set_ids_modnode(id) - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) -> 'void' + set_imagebase(base) Set image base address. - set_imagebase(base) - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) -> 'void' set_item_color(ea, color) - @param ea (C++: ea_t) - @param color (C++: bgcolor_t) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_loader_format_name in module ida_nalt: set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) Set file format name for loader modules. - set_loader_format_name(name) - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) -> 'void' + set_notcode(ea) Mark address so that it cannot be converted to instruction. - set_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) -> 'bool' set_op_tinfo(ea, n, tif) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) -> 'bool' + set_outfile_encoding_idx(idx) -> bool set encoding to be used when producing files - set_outfile_encoding_idx(idx) -> bool - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) -> 'bool' set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t *) + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_srcdbg_paths in module ida_nalt: set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) Set source debug paths. - set_srcdbg_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * Help on function set_srcdbg_undesired_paths in module ida_nalt: set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) Set user-closed source files. - set_srcdbg_undesired_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) - @param ea (C++: ea_t) - in: switch_info_t const & + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) -> 'void' set_switch_parent(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool - @param ea (C++: ea_t) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param tif: tinfo_t const * Help on function set_type_determined_by_hexrays in module ida_nalt: set_type_determined_by_hexrays(*args) -> 'void' set_type_determined_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_type_guessed_by_ida in module ida_nalt: set_type_guessed_by_ida(*args) -> 'void' set_type_guessed_by_ida(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) -> 'void' + set_visible_item(ea, visible) Change visibility of item at given ea. - set_visible_item(ea, visible) - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) -> 'void' set_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -71187,11 +69177,13 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array - | data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71203,8 +69195,9 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) @@ -71214,7 +69207,10 @@ class strpath_ids_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71229,7 +69225,7 @@ class strpath_ids_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -71262,13 +69258,13 @@ class strpath_t(builtins.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -71293,21 +69289,25 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) - | values: ea_t + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) - | other: switch_info_t const & + | + | @param other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool | get separate parts of the switch | - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | @param jrange (C++: range_t *) - | @param vrange (C++: range_t *) + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -71319,7 +69319,8 @@ class switch_info_t(builtins.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) -> 'int' - | See 'SWI_SHIFT_MASK' . possible answers: 0..3. + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) -> 'int' | get_version(self) -> int @@ -71353,30 +69354,35 @@ class switch_info_t(builtins.object) | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) - | @param base (C++: ea_t) + | + | @param base: ea_t | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) - | @param r (C++: int) - | @param dt (C++: op_dtype_t) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_shift(self, *args) -> 'void' - | See 'SWI_SHIFT_MASK' . - | | set_shift(self, shift) - | @param shift (C++: int) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -71391,46 +69397,46 @@ class switch_info_t(builtins.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -71447,963 +69453,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' switch_info_t__from_ptrval__(ptrval) -> switch_info_t - ptrval: size_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function upd_abits in module ida_nalt: upd_abits(*args) -> 'void' upd_abits(ea, clr_bits, set_bits) - @param ea (C++: ea_t) - @param clr_bits (C++: aflags_t) - @param set_bits (C++: aflags_t) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t Help on function uses_aflag_modsp in module ida_nalt: uses_aflag_modsp(*args) -> 'bool' uses_aflag_modsp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int - do_repair: bool + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_HR_DETERMINED -""" -the type is definitely guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_DATA -""" -the data type is guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_FUNC -""" -the function type is guessed by the decompiler -""" - -ida_nalt.AFL_IDA_GUESSED -""" -the type is guessed by IDA -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ); used only for addresses, not for -'member_t' -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_TYPE_GUESSED -""" -who guessed the type information? -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -the type information is definitive. (comes from the user or type -library) if not set see 'AFL_TYPE_GUESSED' -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference. see 'custom_refinfo_handler_t' . the id of the -custom refinfo is stored under the REFINFO_TYPE mask. -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference ID if REFINFO_CUSTOM set - -reference type (reftype_t), or custom -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -otherwise lowcase present - -sparse switch (value table present) -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_USER -""" -user specified switch (starting from version 2) -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(builtins.object) @@ -72440,22 +69543,20 @@ class NearestName(builtins.object) Help on function append_struct_fields in module ida_name: append_struct_fields(*args) -> 'qstring *, adiff_t *' + append_struct_fields(disp, n, path, flags, delta, appzero) -> str Append names of struct fields to a name if the name is a struct name. - append_struct_fields(disp, n, path, flags, delta, appzero) -> str - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -72471,41 +69572,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: uint32) + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) -> 'qstring *' + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str Demangle a name. - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -72516,8 +69618,10 @@ class ea_name_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | _ea: ea_t - | _name: qstring const & + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -72534,10 +69638,10 @@ class ea_name_t(builtins.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -72551,11 +69655,14 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | x: qvector< ea_name_t > const & + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72567,22 +69674,23 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ea_name_t const & + | + | @param i: size_t + | @param v: ea_name_t const & | | __swig_destroy__ = delete_ea_name_vec_t(...) | delete_ea_name_vec_t(self) | | at(self, *args) -> 'ea_name_t const &' | at(self, _idx) -> ea_name_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -72595,16 +69703,16 @@ class ea_name_vec_t(builtins.object) | | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t - | it: qvector< ea_name_t >::iterator | + | @param it: qvector< ea_name_t >::iterator | | erase(self, first, last) -> ea_name_t - | first: qvector< ea_name_t >::iterator - | last: qvector< ea_name_t >::iterator + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -72614,47 +69722,56 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) - | x: ea_name_t const & + | + | @param x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ea_name_t * - | len: size_t + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t - | it: qvector< ea_name_t >::iterator - | x: ea_name_t const & + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) - | x: ea_name_t const & + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ea_name_t const & | + | @param _newsize: size_t + | @param x: ea_name_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ea_name_t > & + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72674,760 +69791,582 @@ class ea_name_vec_t(builtins.object) Help on function extract_name in module ida_name: extract_name(*args) -> 'qstring *' + extract_name(line, x) -> str Extract a name or address from the specified string. - extract_name(line, x) -> str - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) -> 'bool' force_name(ea, name, flags=0) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: int) + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) -> 'qstring' get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) -> 'qstring' get_colored_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) -> 'qstring' get_colored_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) -> 'bool' - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) -> 'qstring *' get_debug_name(ea_ptr, how) -> str - @param ea_ptr (C++: ea_t *) - @param how (C++: debug_name_how_t) + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) -> 'ea_t' get_debug_name_ea(name) -> ea_t - @param name (C++: const char *) + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) - @param names (C++: ea_name_vec_t *) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - return_list: bool + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) -> 'qstring' get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) -> 'qstring' + get_ea_name(ea, gtn_flags=0) -> qstring Get name at the specified address. - get_ea_name(ea, gtn_flags=0) -> qstring - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success Help on function get_long_name in module ida_name: get_long_name(*args) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_mangled_name_type in module ida_name: get_mangled_name_type(*args) -> 'mangled_name_type_t' get_mangled_name_type(name) -> mangled_name_type_t - name: char const * + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) -> 'ea_t' + get_name_base_ea(_from, to) -> ea_t Get address of the name used in the expression for the address - get_name_base_ea(_from, to) -> ea_t - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) -> 'color_t' - Calculate flags for 'get_ea_name()' function. + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. Get name color. - get_name_color(_from, ea) -> color_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) -> 'qstring *' - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) -> 'uval_t *' - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - get_name_value(_from, name) -> int - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) -> 'qstring *' - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - get_nice_colored_name(ea, flags=0) -> str - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) -> 'ea_t' + get_nlist_ea(idx) -> ea_t Get address from the list at 'idx'. - get_nlist_ea(idx) -> ea_t - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) -> 'size_t' - Get index of the name in the listreturns the closest match. may return - idx >= size. - get_nlist_idx(ea) -> size_t - @param ea (C++: ea_t) + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) -> 'char const *' + get_nlist_name(idx) -> char const * Get name using idx. - get_nlist_name(idx) -> char const * - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) -> 'size_t' + get_nlist_size() -> size_t Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) -> 'qstring' get_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) -> 'qstring' get_visible_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) -> 'void' + hide_name(ea) Remove name from the list of names - hide_name(ea) - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) -> 'bool' + is_ident(name) -> bool Is a valid name? (including ::MangleChars) - is_ident(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) -> 'bool' - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - is_ident_cp(cp) -> bool - @param cp (C++: wchar32_t) + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) -> 'bool' + is_in_nlist(ea) -> bool Is the name included into the name list? - is_in_nlist(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) -> 'bool' + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool Is the name defined locally in the specified function? - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) -> 'bool' is_public_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) -> 'bool' - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - is_strlit_cp(cp, specific_ranges=None) -> bool - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) -> 'bool' + is_uname(name) -> bool Is valid user-specified name? (valid name & !dummy prefix). - is_uname(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) -> 'bool' + is_valid_cp(cp, kind, data=None) -> bool Is the given codepoint acceptable in the given context? - is_valid_cp(cp, kind, data=None) -> bool - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) -> 'bool' + is_valid_typename(name) -> bool Is valid type name? - is_valid_typename(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) -> 'bool' + is_visible_cp(cp) -> bool Can a character be displayed in a name? (present in ::NameChars) - is_visible_cp(cp) -> bool - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) -> 'bool' is_weak_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) -> 'void' make_name_non_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) -> 'void' make_name_non_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' + rebuild_nlist() Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) -> 'void' + reorder_dummy_names() Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) -> 'void' - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) -> 'bool' set_debug_name(ea, name) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) -> 'bool' - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - set_dummy_name(_from, ea) -> bool - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - @retval: 1 - ok, dummy name is generated or the byte already had a - name - @retval: 0 - failure, invalid address or tail byte + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) -> 'bool' - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - set_name(ea, name, flags=0) -> bool - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, - non-auto. (C++: int) - @retval: 1 - ok, name is changed - @retval: 0 - failure, a warning is displayed + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) -> 'void' + show_name(ea) Insert name to the list of names. - show_name(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) -> 'PyObject *' - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - validate_name(name, type, flags=0) -> PyObject * - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? +(Namely, Btree). To learn more about Balanced Trees: +\link{http://www.bluerwhite.org/btree/} -meaningful only if the name refers to a structure. -""" +We don't use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Usually there is a trivial mapping +of the linear addresses used in the program to netnodes. If we have additional +information about an address (a comment is attached to it, for example), this +information is stored in the corresponding netnode. See nalt.hpp to see how the +kernel uses netnodes. Also, some netnodes have no corresponding linear address +(however, they still have an id). They are used to store information not related +to a particular address. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblog/getblob and other blob-related functions. -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +Advanced info: -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool - n: netnode const & + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -73438,29 +70377,32 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __eq__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __init__(self, *args) | __init__(self, num=nodeidx_t(-1)) -> netnode - | num: nodeidx_t | + | @param num: nodeidx_t | | __init__(self, _name, namlen=0, do_create=False) -> netnode - | _name: char const * - | namlen: size_t - | do_create: bool + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __ne__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -73469,554 +70411,782 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool | | altdel_all(self, *args) -> 'bool' | altdel_all(self, tag=atag) -> bool - | tag: uchar + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool - | alt: nodeidx_t - | value: nodeidx_t - | tag: uchar + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool - | ea: ea_t - | value: nodeidx_t - | tag: uchar + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: nodeidx_t - | tag: uchar + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t - | alt: nodeidx_t - | tag: uchar + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t - | _start: nodeidx_t - | tag: uchar + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool - | alt: nodeidx_t - | val: uchar - | tag: uchar + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool - | ea: ea_t - | val: uchar - | tag: uchar + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: uchar - | tag: uchar + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) -> 'size_t' | copyto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool - | _name: char const * - | namlen: size_t + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int - | _start: nodeidx_t - | tag: uchar + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t - | idx: nodeidx_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool - | ea: ea_t - | addr: ea_t - | tag: uchar + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool - | idx: nodeidx_t - | addr: ea_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool - | idx: uchar - | addr: ea_t - | tag: uchar + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) -> 'ssize_t' | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) -> 'PyObject *' - | getblob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * - | ea: ea_t - | tag: char + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) -> 'PyObject *' - | getclob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool - | idx: char const * - | tag: uchar + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool - | tag: uchar + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: void const * - | tag: uchar + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool - | idx: char const * - | py_str: PyObject * - | tag: char + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: nodeidx_t - | tag: uchar + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * - | idx: char const * - | tag: char + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t | | kill(self, *args) -> 'void' | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) -> 'nodeidx_t' | long_value(self) -> nodeidx_t | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) -> 'size_t' | moveto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) -> 'bool' | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool - | newname: char const * - | namlen: size_t + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) -> 'bool' | set(self, value) -> bool - | value: void const * + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool - | x: nodeidx_t + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool - | buf: void const * - | _start: nodeidx_t - | tag: uchar + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool - | buf: void const * - | ea: ea_t - | tag: uchar + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool - | tag: uchar + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int - | idx1: nodeidx_t - | idx2: nodeidx_t - | tag: uchar + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int - | idx1: uchar - | idx2: uchar - | tag: uchar + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: void const * - | tag: uchar + | Set value of supval array element. | - | - | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: char const * - | tag: uchar + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: void const * - | tag: uchar | - | - | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: char const * - | tag: uchar + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool - | alt: uchar - | value: void const * - | tag: uchar + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) -> 'ssize_t' | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) -> 'bool' | value_exists(self) -> bool @@ -74026,7 +71196,9 @@ class netnode(builtins.object) | | exist(*args) -> 'bool' | exist(_name) -> bool - | _name: char const * + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74049,224 +71221,254 @@ Help on function netnode_exist in module ida_netnode: netnode_exist(*args) -> 'bool' netnode_exist(_name) -> bool - _name: char const * + + @param _name: char const * -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) -> 'ea_t' - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - @param insn: the referencing instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) -> 'ea_t' + calc_basevalue(target, base) -> ea_t Calculate the value of the reference base. - calc_basevalue(target, base) -> ea_t - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) -> 'ea_t' - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - calc_offset_base(ea, n) -> ea_t - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) -> 'ea_t' - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - calc_probable_base_by_value(ea, off) -> ea_t - @param ea (C++: ea_t) - @param off (C++: uval_t) + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) -> 'bool' - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - calc_reference_data(target, base, _from, ri, opval) -> bool - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success Help on function calc_target in module ida_offset: calc_target(*args) -> 'ea_t' - Calculates the target, using the provided 'refinfo_t' . - calc_target(_from, opval, ri) -> ea_t - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + Retrieves refinfo_t structure and calculates the target. + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & calc_target(_from, ea, n, opval) -> ea_t - @param _from (C++: ea_t) - ea: ea_t - n: int - @param opval (C++: adiff_t) + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) -> 'ea_t' - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - can_be_off32(ea) -> ea_t - @param ea (C++: ea_t) + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) -> 'reftype_t' + get_default_reftype(ea) -> reftype_t Get default reference type depending on the segment. - get_default_reftype(ea) -> reftype_t - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) -> 'ea_t' + get_offbase(ea, n) -> ea_t Get offset base value - get_offbase(ea, n) -> ea_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) -> 'qstring *' - See 'get_offset_expression()' - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) -> 'qstring *' - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - @retval: 0 - can't convert to offset expression - @retval: 1 - ok, a simple offset expression - @retval: 2 - ok, a complex offset expression + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: op_offset(*args) -> 'bool' - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: op_offset_ex(*args) -> 'bool' - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - op_offset_ex(ea, n, ri) -> bool - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) -> 'bool' + op_plain_offset(ea, n, base) -> bool Convert operand to a reference with the default reference type. - op_plain_offset(ea, n, base) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -74464,15 +71666,19 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | x: qvector< bool > const & + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -74481,25 +71687,31 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bool const & + | + | @param i: size_t + | @param v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: bool const & + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -74527,74 +71739,86 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator - | it: qvector< bool >::iterator | + | @param it: qvector< bool >::iterator | | erase(self, first, last) -> qvector< bool >::iterator - | first: qvector< bool >::iterator - | last: qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator - | x: bool const & | + | @param x: bool const & | | find(self, x) -> qvector< bool >::const_iterator - | x: bool const & + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) - | x: bool const & + | + | @param x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bool * - | len: size_t + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator - | it: qvector< bool >::iterator - | x: bool const & + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) - | x: bool const & + | + | @param x: bool const & + | + | push_back(self) -> bool & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bool const & | + | @param _newsize: size_t + | @param x: bool const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bool > & + | + | @param r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -74653,19 +71877,19 @@ class channel_redir_t(builtins.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -74673,28 +71897,29 @@ class channel_redir_t(builtins.object) Help on function check_process_exit in module ida_pro: check_process_exit(*args) -> 'int' + check_process_exit(handle, exit_code, msecs=-1) -> int Check whether process has terminated or not. - check_process_exit(handle, exit_code, msecs=-1) -> int - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - msecs: int - @retval: 0 - process has exited, and the exit code is available. if - *exit_code < 0: the process was killed with a signal - -*exit_code - @retval: 1 - process has not exited yet - @retval: -1 - error happened, see error code for winerr() in - *exit_code + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on function clear_bits in module ida_pro: clear_bits(*args) -> 'void' + clear_bits(bitmap, low, high) Clear bits between [low, high) in 'bitmap'. - clear_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class ea_array in module ida_pro: @@ -74705,18 +71930,21 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: ea_t + | + | @param index: size_t + | @param value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -74729,7 +71957,8 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74747,7 +71976,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array - t: ea_t * + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -74766,7 +71996,8 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: ea_t + | + | @param value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -74779,7 +72010,8 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74797,18 +72029,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer - t: ea_t * + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) -> 'uint64' - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - extend_sign(v, nbytes, sign_extend) -> uint64 - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -74835,28 +72068,28 @@ class instant_dbgopts_t(builtins.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag @@ -74870,15 +72103,19 @@ class longlongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | x: qvector< long long > const & + | __init__(self, x) -> longlongvec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -74887,25 +72124,31 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: long long const & + | + | @param i: size_t + | @param v: long long const & | | __swig_destroy__ = delete_longlongvec_t(...) | delete_longlongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: long long const & + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -74933,70 +72176,81 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator - | it: qvector< long long >::iterator | + | @param it: qvector< long long >::iterator | | erase(self, first, last) -> qvector< long long >::iterator - | first: qvector< long long >::iterator - | last: qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) -> 'long long *' | extract(self) -> long long * | | find(self, *args) -> 'qvector< long long >::const_iterator' | find(self, x) -> qvector< long long >::iterator - | x: long long const & | + | @param x: long long const & | | find(self, x) -> qvector< long long >::const_iterator - | x: long long const & + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: long long * - | len: size_t + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator - | it: qvector< long long >::iterator - | x: long long const & + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) - | x: long long const & + | + | @param x: long long const & + | + | push_back(self) -> long long & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: long long const & | + | @param _newsize: size_t + | @param x: long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< long long > & + | + | @param r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -75035,7 +72289,8 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: int + | + | @param value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -75048,7 +72303,8 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer - | t: int * + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75066,7 +72322,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer - t: int * + + @param t: int * Help on class intvec_t in module ida_pro: @@ -75077,15 +72334,19 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | x: qvector< int > const & + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75094,25 +72355,31 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -75140,70 +72407,81 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -75228,69 +72506,73 @@ class intvec_t(builtins.object) Help on function is_control_tty in module ida_pro: is_control_tty(*args) -> 'enum tty_control_t' + is_control_tty(fd) -> enum tty_control_t Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - is_control_tty(fd) -> enum tty_control_t - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) -> 'bool' + is_main_thread() -> bool Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) -> 'int' - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - log2ceil(d64) -> int - @param d64 (C++: uint64) + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int - @param d64 (C++: uint64) + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) -> 'bool' - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - parse_dbgopts(ido, r_switch) -> bool - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) -> 'int64' qatoll(nptr) -> int64 - @param nptr (C++: const char *) + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) -> 'void' - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) -> 'void' - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) -> 'void' + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -75301,7 +72583,8 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t - | _lock: qmutex_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -75336,9 +72619,10 @@ class qrefcnt_obj_t(builtins.object) | delete_qrefcnt_obj_t(self) | | release(self, *args) -> 'void' - | Call destructor. We use 'release()' instead of operator delete() to - | maintain binary compatibility with all compilers (vc and gcc use - | different vtable layouts for operator delete) + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75350,7 +72634,7 @@ class qrefcnt_obj_t(builtins.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -75359,29 +72643,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool - self: PyObject * - qclear: bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -75392,123 +72680,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) -> 'bool' qstrvec_t_from_list(_self, py_list) -> bool - self: PyObject * - py_list: PyObject * + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) -> 'qstrvec_t *' qstrvec_t_get_clink(_self) -> qstrvec_t * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' qstrvec_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) -> 'bool' qstrvec_t_set(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) -> 'size_t' qstrvec_t_size(_self) -> size_t - self: PyObject * + + @param self: PyObject * Help on function qthread_equal in module ida_pro: qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool Are two threads equal? - qthread_equal(q1, q2) -> bool - @param q1 (C++: qthread_t) - @param q2 (C++: qthread_t) + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) -> 'bool' - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - quote_cmdline_arg(arg) -> bool - @param arg (C++: qstring *) - @return: true: modified 'arg' + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) -> 'void *' + qvector_reserve(vec, old, cnt, elsize) -> void * Change capacity of given qvector. - qvector_reserve(vec, old, cnt, elsize) -> void * - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) -> 'int' + readbytes(h, res, size, mf) -> int Read at most 4 bytes from file. - readbytes(h, res, size, mf) -> int - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) -> 'void' reloc_value(value, size, delta, mf) - @param value (C++: void *) - @param size (C++: int) - @param delta (C++: adiff_t) - @param mf (C++: bool) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool - @param _relobj (C++: struct relobj_t *) - @param ea (C++: ea_t) - @param mf (C++: bool) + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -75519,18 +72818,21 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: sel_t + | + | @param index: size_t + | @param value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -75543,7 +72845,8 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75561,7 +72864,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array - t: sel_t * + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -75580,7 +72884,8 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: sel_t + | + | @param value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -75593,7 +72898,8 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75611,17 +72917,18 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer - t: sel_t * + + @param t: sel_t * Help on function set_bits in module ida_pro: set_bits(*args) -> 'void' + set_bits(bitmap, low, high) Set bits between [low, high) in 'bitmap'. - set_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -75632,15 +72939,19 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | x: qvector< size_t > const & + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75650,29 +72961,36 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: size_t const & + | + | @param i: size_t + | @param v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: size_t const & + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -75696,74 +73014,86 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator | + | @param it: qvector< size_t >::iterator | | erase(self, first, last) -> qvector< size_t >::iterator - | first: qvector< size_t >::iterator - | last: qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) -> 'size_t *' | extract(self) -> size_t * | | find(self, *args) -> 'qvector< size_t >::const_iterator' | find(self, x) -> qvector< size_t >::iterator - | x: size_t const & | + | @param x: size_t const & | | find(self, x) -> qvector< size_t >::const_iterator - | x: size_t const & + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) - | x: size_t const & + | + | @param x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: size_t * - | len: size_t + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator - | x: size_t const & + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) - | x: size_t const & + | + | @param x: size_t const & + | + | push_back(self) -> size_t & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: size_t const & | + | @param _newsize: size_t + | @param x: size_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< size_t > & + | + | @param r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -75788,9 +73118,10 @@ class sizevec_t(builtins.object) Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -75802,11 +73133,14 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | x: qvector< simpleline_t > const & + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75817,8 +73151,9 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: simpleline_t const & + | + | @param i: size_t + | @param v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -75849,12 +73184,13 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator | + | @param it: qvector< simpleline_t >::iterator | | erase(self, first, last) -> qvector< simpleline_t >::iterator - | first: qvector< simpleline_t >::iterator - | last: qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -75864,47 +73200,56 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) - | x: simpleline_t const & + | + | @param x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: simpleline_t * - | len: size_t + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator - | x: simpleline_t const & + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) - | x: simpleline_t const & + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: simpleline_t const & | + | @param _newsize: size_t + | @param x: simpleline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< simpleline_t > & + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -75938,7 +73283,8 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: sval_t + | + | @param value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -75951,7 +73297,8 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer - | t: sval_t * + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75969,7 +73316,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer - t: sval_t * + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -75980,18 +73328,21 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: tid_t + | + | @param index: size_t + | @param value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -76004,7 +73355,8 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array - | t: tid_t * + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76022,7 +73374,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array - t: tid_t * + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -76033,18 +73386,21 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: uchar + | + | @param index: size_t + | @param value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -76057,7 +73413,8 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array - | t: uchar * + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76075,7 +73432,8 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array - t: uchar * + + @param t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -76086,15 +73444,19 @@ class ulonglongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | x: qvector< unsigned long long > const & + | __init__(self, x) -> ulonglongvec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76103,25 +73465,31 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned long long const & + | + | @param i: size_t + | @param v: unsigned long long const & | | __swig_destroy__ = delete_ulonglongvec_t(...) | delete_ulonglongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned long long const & + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -76149,70 +73517,81 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator | + | @param it: qvector< unsigned long long >::iterator | | erase(self, first, last) -> qvector< unsigned long long >::iterator - | first: qvector< unsigned long long >::iterator - | last: qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) -> 'unsigned long long *' | extract(self) -> unsigned long long * | | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' | find(self, x) -> qvector< unsigned long long >::iterator - | x: unsigned long long const & | + | @param x: unsigned long long const & | | find(self, x) -> qvector< unsigned long long >::const_iterator - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned long long * - | len: size_t + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator - | x: unsigned long long const & + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) - | x: unsigned long long const & + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned long long const & | + | @param _newsize: size_t + | @param x: unsigned long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned long long > & + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -76243,15 +73622,19 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | x: qvector< unsigned int > const & + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76260,25 +73643,31 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned int const & + | + | @param i: size_t + | @param v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned int const & + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -76306,70 +73695,81 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator | + | @param it: qvector< unsigned int >::iterator | | erase(self, first, last) -> qvector< unsigned int >::iterator - | first: qvector< unsigned int >::iterator - | last: qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) -> 'unsigned int *' | extract(self) -> unsigned int * | | find(self, *args) -> 'qvector< unsigned int >::const_iterator' | find(self, x) -> qvector< unsigned int >::iterator - | x: unsigned int const & | + | @param x: unsigned int const & | | find(self, x) -> qvector< unsigned int >::const_iterator - | x: unsigned int const & + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned int * - | len: size_t + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator - | x: unsigned int const & + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) - | x: unsigned int const & + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned int const & | + | @param _newsize: size_t + | @param x: unsigned int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned int > & + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -76400,18 +73800,21 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: uval_t + | + | @param index: size_t + | @param value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -76424,7 +73827,8 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array - | t: uval_t * + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76442,142 +73846,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array - t: uval_t * + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) -> 'int' + writebytes(h, l, size, mf) -> int Write at most 4 bytes to file. - writebytes(h, l, size, mf) -> int - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.6. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) -> 'bool' + forget_problem(type, ea) -> bool Remove an address from a problem list - forget_problem(type, ea) -> bool - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success Help on function get_problem in module ida_problems: get_problem(*args) -> 'ea_t' - Get an address from the specified problem list. The address is not - removed from the list. - get_problem(type, lowea) -> ea_t - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) -> 'qstring *' - Get the human-friendly description of the problem, if one was provided - to remember_problem. - get_problem_desc(t, ea) -> str - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) -> 'char const *' + get_problem_name(type, longname=True) -> char const * Get problem list description. - get_problem_name(type, longname=True) -> char const * - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) -> 'bool' + is_problem_present(t, ea) -> bool Check if the specified address is present in the problem list. - is_problem_present(t, ea) -> bool - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) -> 'void' - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - remember_problem(type, ea, msg=None) - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) -> 'bool' was_ida_decision(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -76588,15 +73964,19 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | x: qvector< rangeset_t > const & + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76606,36 +73986,42 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: rangeset_t const & + | + | @param i: size_t + | @param v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: rangeset_t const & + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -76648,78 +74034,85 @@ class array_of_rangesets(builtins.object) | | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t - | it: qvector< rangeset_t >::iterator | + | @param it: qvector< rangeset_t >::iterator | | erase(self, first, last) -> rangeset_t - | first: qvector< rangeset_t >::iterator - | last: qvector< rangeset_t >::iterator + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) -> 'rangeset_t *' | extract(self) -> rangeset_t | | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' | find(self, x) -> rangeset_t - | x: rangeset_t const & | - | - | find(self, x) -> rangeset_t - | x: rangeset_t const & + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: rangeset_t * - | len: size_t + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t - | it: qvector< rangeset_t >::iterator - | x: rangeset_t const & + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) - | x: rangeset_t const & + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: rangeset_t const & | + | @param _newsize: size_t + | @param x: rangeset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< rangeset_t > & + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -76750,24 +74143,30 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | ea1: ea_t - | ea2: ea_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -76778,48 +74177,50 @@ class range_t(builtins.object) | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76833,12 +74234,12 @@ class range_t(builtins.object) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -76851,10 +74252,10 @@ class range_t(builtins.object) Help on function range_t_print in module ida_range: range_t_print(*args) -> 'size_t' + range_t_print(cb) -> str Helper function. Should not be called directly! - range_t_print(cb) -> str - cb: range_t const * + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -76865,17 +74266,20 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | range: range_t const & + | __init__(self, range) -> rangeset_t | + | @param range: range_t const & | | __init__(self, ivs) -> rangeset_t - | ivs: rangeset_t const & + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76884,7 +74288,8 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -76895,160 +74300,157 @@ class rangeset_t(builtins.object) | _print(self) -> size_t | | add(self, *args) -> 'bool' - | Add an address range to the set. If 'range' intersects an existing - | element e, then e is extended to include 'range', and any superfluous - | elements (subsets of e) are removed. - | | add(self, range) -> bool - | @param range: address range to add. cannot be empty (C++: const - | range_t &) - | @return: false if no elements were added (the set was unchanged) + | Add each element of 'aset' to the set. | + | @param range: range_t const & | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool - | start: ea_t - | _end: ea_t - | @return: false if no elements were added (the set was unchanged) | + | @param start: ea_t + | @param _end: ea_t | | add(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if no elements were added (the set was unchanged) + | + | @param aset: rangeset_t const & | | begin(self, *args) -> 'rangeset_t::iterator' + | begin(self) -> range_t | Get an iterator that points to the first element in the set. | | cached_range(self, *args) -> 'range_t const *' - | When searching the rangeset, we keep a cached element to help speed up - | searches. + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) -> 'void' - | Delete all elements from the set. See 'qvector::clear()' + | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) -> 'bool' - | Does an element of the rangeset contain 'ea'? See - | range_t::contains(ea_t) - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) | + | @param ea: ea_t | | contains(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Does the set have zero elements. | | end(self, *args) -> 'rangeset_t::iterator' - | Get an iterator that points to the end of the set. (This is NOT the - | last element) + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) -> 'range_t const *' + | find_range(self, ea) -> range_t | Get the element from the set that contains 'ea'. | - | find_range(self, ea) -> range_t - | @param ea (C++: ea_t) - | @return: NULL if there is no such element + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) -> 'range_t const &' - | Get the 'range_t' at index 'idx'. - | | getrange(self, idx) -> range_t - | @param idx (C++: int) + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) -> 'bool' - | Is there an ea in 'range' that is also in the rangeset? - | | has_common(self, range) -> bool - | @param range (C++: const range_t &) + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() | + | @param range: range_t const & | | has_common(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | includes(self, *args) -> 'bool' + | includes(self, range) -> bool | Is every ea in 'range' contained in the rangeset? | - | includes(self, range) -> bool - | @param range (C++: const range_t &) + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) -> 'bool' + | intersect(self, aset) -> bool | Set the rangeset to its intersection with 'aset'. | - | intersect(self, aset) -> bool - | @param aset (C++: const rangeset_t &) - | @return: false if the set was unchanged + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' + | is_equal(self, aset) -> bool | Do this rangeset and 'aset' have identical elements? | - | is_equal(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, aset) -> bool | Is every element in the rangeset contained in an element of 'aset'? | - | is_subset_of(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) -> 'range_t const &' - | Get the last 'range_t' in the set. + | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) -> 'ea_t' - | Get the smallest ea_t value greater than 'ea' contained in the - | rangeset. - | | next_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) -> 'ea_t' - | Get the smallest ea_t value greater than 'ea' that is not in the same - | range as 'ea'. - | | next_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) -> 'size_t' - | Get the number of 'range_t' elements in the set. + | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) -> 'ea_t' + | prev_addr(self, ea) -> ea_t | Get the largest ea_t value less than 'ea' contained in the rangeset. | - | prev_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' - | Get the largest ea_t value less than 'ea' that is not in the same - | range as 'ea'. - | | prev_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) -> 'bool' - | Subtract an address range from the set. All subsets of 'range' will be - | removed, and all elements that intersect 'range' will be - | truncated/split so they do not include 'range'. - | | sub(self, range) -> bool - | @param range: address range to subtract. cannot be empty. (C++: const - | range_t &) - | @return: false if nothing was subtracted (the set was unchanged) + | Subtract each range in 'aset' from the set | + | @param range: range_t const & | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool - | ea: ea_t - | @return: false if nothing was subtracted (the set was unchanged) | + | @param ea: ea_t | | sub(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if nothing was subtracted (the set was unchanged) + | + | @param aset: rangeset_t const & | | swap(self, *args) -> 'void' - | Set this = 'r' and 'r' = this. See 'qvector::swap()' - | | swap(self, r) - | @param r (C++: rangeset_t &) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -77076,15 +74478,19 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | x: qvector< range_t > const & + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77094,36 +74500,42 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77136,78 +74548,85 @@ class rangevec_base_t(builtins.object) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77260,11 +74679,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77274,31 +74695,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77311,78 +74738,85 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77401,50 +74835,63 @@ class rangevec_t(rangevec_base_t) | | __hash__ = None +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) -> 'regval_type_t' + reg_data_type(name, subkey=None) -> regval_type_t Get data type of a given value. - reg_data_type(name, subkey=None) -> regval_type_t - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) -> 'bool' + reg_delete(name, subkey=None) -> bool Delete a value from the registry. - reg_delete(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) -> 'bool' + reg_delete_subkey(name) -> bool Delete a key from the registry. - reg_delete_subkey(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) -> 'bool' + reg_delete_tree(name) -> bool Delete a subtree from the registry. - reg_delete_tree(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) -> 'bool' + reg_exists(name, subkey=None) -> bool Is there already a value with the given name? - reg_exists(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -77459,759 +74906,718 @@ reg_load(*args) -> 'void' Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) -> 'PyObject *' + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - reg_read_binary(name, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) -> 'bool' + reg_read_bool(name, defval, subkey=None) -> bool Read boolean value from the registry. - reg_read_bool(name, defval, subkey=None) -> bool - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) -> 'int' + reg_read_int(name, defval, subkey=None) -> int Read integer value from the registry. - reg_read_int(name, defval, subkey=None) -> int - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) -> 'PyObject *' + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - reg_read_string(name, subkey=None, _def=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - def: char const * - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) -> 'qstrvec_t *' - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - reg_read_strlist(subkey) - @param subkey (C++: const char *) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) -> 'bool' + reg_subkey_exists(name) -> bool Is there already a key with the given name? - reg_subkey_exists(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - reg_subkey_subkeys(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - reg_subkey_values(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) -> 'void' - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) -> 'void' + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) Update list of strings associated with given key. - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) -> 'PyObject *' + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * Write binary data to the registry. - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - py_bytes: PyObject * - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) -> 'void' + reg_write_bool(name, value, subkey=None) Write boolean value to the registry. - reg_write_bool(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) -> 'void' + reg_write_int(name, value, subkey=None) Write integer value to the registry. - reg_write_int(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) -> 'void' + reg_write_string(name, utf8, subkey=None) Write a string to the registry. - reg_write_string(name, utf8, subkey=None) - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) -> 'ea_t' find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) -> 'int *' + find_error(ea, sflag) -> ea_t Find next error or problem. - find_error(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) -> 'ea_t' + find_not_func(ea, sflag) -> ea_t Find next code address that does not belong to a function. - find_not_func(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) -> 'int *' + find_notype(ea, sflag) -> ea_t Find next operand without any type info. - find_notype(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_reg_access in module ida_search: find_reg_access(*args) -> 'ea_t' - Find access to a register.This function does not care about the - control flow and probes all instructions in the specified range, - starting from START_EA. Only direct references to registers are - detected. Function calls and system traps are ignored. - find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t - @param out: pointer to the output buffer. must be non-null. upon - success contains info about the found register. upon - failed search for a read access out->range contains the - info about the non-redefined parts of the register. (C++: - struct reg_access_t *) - @param start_ea: starting address (C++: ea_t) - @param end_ea: ending address. BADADDR means that the end limit is - missing. otherwise, if the search direction is - SEARCH_UP, END_EA must be lower than START_EA. (C++: - ea_t) - @param regname: the register to search for. (C++: const char *) - @param sflag: combination of Search flags bits. (C++: int) - @return: the found address. BADADDR if not found or error. + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) -> 'ea_t' - See 'search()' - find_text(start_ea, y, x, ustr, sflag) -> ea_t - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) -> 'bool' - Is the 'SEARCH_DOWN' bit set? - search_down(sflag) -> bool - @param sflag (C++: int) + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if the search was cancelled. +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DEF -""" -find_reg_access: search for a definition (write access) -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +(start address of segment - segment base linear address) -ida_search.SEARCH_NEXT -""" -skip the starting address when searching. this bit is useful only for -'search()' , 'bin_search2()' , 'find_reg_access()' . find_.. functions -skip the starting address automatically. -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -do not test if the user clicked cancel to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -do not display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (supported only for the text -search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" - -ida_search.SEARCH_USE -""" -find_reg_access: search for a use (read access) -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) -> 'bool' - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - add_segm(para, start, end, name, sclass, flags=0) -> bool - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @retval 1: ok + @retval 0: failed, a warning message is displayed + @param flags: (C++: int) Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) -> 'bool' - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - add_segm_ex(s, name, sclass, flags) -> bool - @param s: pointer to filled segment structure. segment - selector should have proper mapping (see - set_selector() ). if s.start_ea== BADADDR then - s.start_ea <- get_segm_base(&s) if s.end_ea== - BADADDR , then a segment up to the next segment will - be created (if the next segment doesn't exist, then - 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and - the new segment would overlap the next segment, - s.end_ea is adjusted properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) -> 'bool' + add_segment_translation(segstart, mappedseg) -> bool Add segment translation. - add_segment_translation(segstart, mappedseg) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) -> 'sel_t' - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - allocate_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) -> 'int' - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - change_segment_status(s, is_deb_segm) -> int - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) -> 'void' + del_segment_translations(segstart) Delete the translation list - del_segment_translations(segstart) - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) -> 'sel_t' + find_free_selector() -> sel_t Find first unused selector. + + @return: a number >= 1 Help on function find_selector in module ida_segment: find_selector(*args) -> 'sel_t' + find_selector(base) -> sel_t Find a selector that has mapping to the specified paragraph. - find_selector(base) -> sel_t - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) -> 'sel_t' get_defsr(s, reg) -> sel_t - s: segment_t * - reg: int + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) -> 'segment_t *' + get_first_seg() -> segment_t Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) -> 'sel_t' + get_group_selector(grpsel) -> sel_t Get common selector for a group of segments. - get_group_selector(grpsel) -> sel_t - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) -> 'segment_t *' + get_last_seg() -> segment_t Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) -> 'segment_t *' + get_next_seg(ea) -> segment_t Get pointer to the next segment. - get_next_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) -> 'segment_t *' + get_prev_seg(ea) -> segment_t Get pointer to the previous segment. - get_prev_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) -> 'ea_t' - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - get_segm_base(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) -> 'segment_t *' - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - get_segm_by_name(name) -> segment_t - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) -> 'segment_t *' - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - get_segm_by_sel(selector) -> segment_t - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) -> 'qstring *' + get_segm_class(s) -> str Get segment class. Segment class is arbitrary text (max 8 characters). - get_segm_class(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) -> 'qstring *' + get_segm_name(s, flags=0) -> str Get true segment name by pointer to segment. - get_segm_name(s, flags=0) -> str - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) -> 'int' + get_segm_num(ea) -> int Get number of segment by address. - get_segm_num(ea) -> int - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) -> 'ea_t' - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - get_segm_para(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) -> 'int' + get_segm_qty() -> int Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) -> 'char const *' + get_segment_alignment(align) -> char const * Get text representation of segment alignment code. - get_segment_alignment(align) -> char const * - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) -> 'qstring *' + get_segment_cmt(s, repeatable) -> str Get segment comment. - get_segment_cmt(s, repeatable) -> str - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) -> 'char const *' + get_segment_combination(comb) -> char const * Get text representation of segment combination code. - get_segment_combination(comb) -> char const * - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) -> 'ssize_t' + get_segment_translations(transmap, segstart) -> ssize_t Get segment translation list. - get_segment_translations(transmap, segstart) -> ssize_t - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) -> 'qstring *' + get_visible_segm_name(s) -> str Get segment name by pointer to segment. - get_visible_segm_name(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) -> 'sel_t *, ea_t *' - Get description of selector (0.. 'get_selector_qty()' -1) - getn_selector(n) -> bool - @param n (C++: int) + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) -> 'segment_t *' - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - getnseg(n) -> segment_t - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) -> 'segment_t *' + getseg(ea) -> segment_t Get pointer to segment by linear address. - getseg(ea) -> segment_t - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) -> 'bool' - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - is_finally_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) -> 'bool' + is_miniidb() -> bool Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) -> 'bool' + is_segm_locked(segm) -> bool Is a segment pointer locked? - is_segm_locked(segm) -> bool - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) -> 'bool' - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - is_spec_ea(ea) -> bool - @param ea: linear address (C++: ea_t) + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) -> 'bool' - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - is_spec_segm(seg_type) -> bool - @param seg_type (C++: uchar) + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) -> 'bool' - See 'SFL_HIDDEN' . - is_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) -> 'void' - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_segm(segm, lock) - @param segm (C++: const segment_t *) - @param lock (C++: bool) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -78222,7 +75628,8 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment - | _segm: segment_t const * + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -78244,76 +75651,74 @@ class lock_segment(builtins.object) Help on function move_segm in module ida_segment: move_segm(*args) -> 'int' - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - move_segm(s, to, flags=0) -> int - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) -> 'bool' - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - move_segm_start(ea, newstart, mode) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) -> 'adiff_t' + segm_adjust_diff(s, delta) -> adiff_t Truncate and sign extend a delta depending on the segment. - segm_adjust_diff(s, delta) -> adiff_t - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) -> 'ea_t' + segm_adjust_ea(s, ea) -> ea_t Truncate an address depending on the segment. - segm_adjust_ea(s, ea) -> ea_t - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) Help on class segment_t in module ida_segment: @@ -78336,9 +75741,11 @@ class segment_t(ida_range.range_t) | delete_segment_t(self) | | abits(self, *args) -> 'int' + | abits(self) -> int | Get number of address bits. | | abytes(self, *args) -> 'int' + | abytes(self) -> int | Get number of address bytes. | | clr_comorg(self, *args) -> 'void' @@ -78351,12 +75758,15 @@ class segment_t(ida_range.range_t) | comorg(self) -> bool | | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool | Is a 16-bit segment? | | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool | Is a 32-bit segment? | | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool | Is a 64-bit segment? | | is_header_segm(self, *args) -> 'bool' @@ -78379,32 +75789,39 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) - | debseg: bool + | + | @param debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) - | on: bool + | + | @param on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) - | hide: bool + | + | @param hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) - | ldrseg: bool + | + | @param ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) - | visible: bool + | + | @param visible: bool | | update(self, *args) -> 'bool' - | Update segment information. You must call this function after - | modification of segment characteristics. Note that not all fields of - | segment structure may be modified directly, there are special - | functions to modify some fields. + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | | use64 = is_64bit(self, *args) -> 'bool' | @@ -78412,115 +75829,121 @@ class segment_t(ida_range.range_t) | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | defsr | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -78543,836 +75966,380 @@ class segment_t(ida_range.range_t) Help on function segtype in module ida_segment: segtype(*args) -> 'uchar' + segtype(ea) -> uchar Get segment type. - segtype(ea) -> uchar - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) -> 'ea_t' + sel2ea(selector) -> ea_t Get mapping of a selector as a linear address. - sel2ea(selector) -> ea_t - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) -> 'ea_t' + sel2para(selector) -> ea_t Get mapping of a selector. - sel2para(selector) -> ea_t - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) -> 'void' set_defsr(s, reg, value) - s: segment_t * - reg: int - value: sel_t + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' + set_group_selector(grp, sel) -> int Create a new group of segments (used OMF files). - set_group_selector(grp, sel) -> int - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) -> 'bool' - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - set_segm_addressing(s, bitness) -> bool - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) -> 'bool' + set_segm_base(s, newbase) -> bool Internal function. - set_segm_base(s, newbase) -> bool - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) -> 'int' + set_segm_class(s, sclass, flags=0) -> int Set segment class. - set_segm_class(s, sclass, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is NULL or bad or segment is NULL + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + @param flags: (C++: int) Help on function set_segm_end in module ida_segment: set_segm_end(*args) -> 'bool' - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_end(ea, newend, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) -> 'int' - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - set_segm_name(s, name, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is bad or segment is NULL + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) -> 'bool' - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_start(ea, newstart, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) -> 'void' + set_segment_cmt(s, cmt, repeatable) Set segment comment. - set_segment_cmt(s, cmt, repeatable) - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) -> 'bool' + set_segment_translations(segstart, transmap) -> bool Set new translation list. - set_segment_translations(segstart, transmap) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) -> 'void' - See 'SFL_HIDDEN' . - set_visible_segm(s, visible) - @param s (C++: segment_t *) - @param visible (C++: bool) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) -> 'sel_t' - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - setup_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) -> 'void' - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - std_out_segm_footer(ctx, seg) - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function update_segm in module ida_segment: update_segm(*args) -> 'bool' update_segm(s) -> bool - @param s (C++: segment_t *) + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" -'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new ranges of the created segment. -please note that the ranges that were already enabled before creating -the segment will not change their storage type. -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) -> 'void' + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) Duplicate segment register ranges. - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) -> 'bool' - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - del_sreg_range(ea, rg) -> bool - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) -> 'bool' - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - get_prev_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) -> 'sel_t' - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - get_sreg(ea, rg) -> sel_t - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) -> 'bool' + get_sreg_range(out, ea, rg) -> bool Get segment register range by linear address. - get_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) -> 'int' + get_sreg_range_num(ea, rg) -> int Get number of segment register range by address. - get_sreg_range_num(ea, rg) -> int - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) -> 'size_t' + get_sreg_ranges_qty(rg) -> size_t Get number of segment register ranges. - get_sreg_ranges_qty(rg) -> size_t - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) -> 'bool' + getn_sreg_range(out, rg, n) -> bool Get segment register range by its number. - getn_sreg_range(out, rg, n) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) -> 'void' + set_default_dataseg(ds_sel) Set default value of DS register for all segments. - set_default_dataseg(ds_sel) - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) -> 'bool' + set_default_sreg_value(sg, rg, value) -> bool Set default value of a segment register for a segment. - set_default_sreg_value(sg, rg, value) -> bool - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) -> 'void' - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - set_sreg_at_next_code(ea1, ea2, rg, value) - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) -> 'bool' - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success Help on class sreg_range_t in module ida_segregs: @@ -79398,79 +76365,85 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -79484,182 +76457,128 @@ class sreg_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | | __hash__ = None -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto +Module "ida_srclang"s docstring: """ -the value is determined by IDA -""" - -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" - -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" - -ida_segregs.SR_user -""" -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === -Help on function generate_til_with_parser in module ida_srclang: - -generate_til_with_parser(*args) -> 'int' - Generate a standalone IDA type library from the given header file, - using the parser with the given name - - generate_til_with_parser(parser_name, tilname, tildesc, tildir, header) -> int - @param parser_name: name of the target parser (C++: const char *) - @param tilname: the name of the resulting type library (C++: const - char *) - @param tildesc: a short description of the TIL (C++: const char *) - @param tildir: directory where the TIL will be stored (C++: const char - *) - @param header: path to a header file (C++: const char *) - @retval: -1 - no parser was found with the given name - @retval: -2 - operation is not supported by the given parser - @retval: 0 - ok - @retval: else - an error occurred when generating the til, consult the - output window +Third-party compiler support.""" Help on function parse_decls_for_srclang in module ida_srclang: parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int Parse type declarations in the specified language - parse_decls_for_srclang(lang, til, input, is_path) -> int - @param lang: the source language(s) expected in the input (C++: - srclang_t) - @param til: type library to store the types (C++: til_t *) - @param input: input source. can be a file path or decl string (C++: - const char *) - @param is_path: true if input parameter is a path to a source file, - false if the input is an in-memory source snippet - (C++: bool) - @retval: -1 - no parser was found that supports the given source - language(s) - @retval: else - the number of errors encountered in the input source + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source Help on function parse_decls_with_parser in module ida_srclang: parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int Parse type declarations using the parser with the specified name - parse_decls_with_parser(parser_name, til, input, is_path) -> int - @param parser_name: name of the target parser (C++: const char *) - @param til: type library to store the types (C++: til_t *) - @param input: input source. can be a file path or decl string (C++: - const char *) - @param is_path: true if input parameter is a path to a source file, - false if the input is an in-memory source snippet - (C++: bool) - @retval: -1 - no parser was found with the given name - @retval: else - the number of errors encountered in the input source + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source Help on function select_parser_by_name in module ida_srclang: select_parser_by_name(*args) -> 'bool' - Set the parser with the given name as the current parser. Pass NULL or - an empty string to select the default parser. - select_parser_by_name(name) -> bool - @param name (C++: const char *) - @return: false if no parser was found with the given name + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name Help on function select_parser_by_srclang in module ida_srclang: select_parser_by_srclang(*args) -> 'bool' - Set the parser that supports the given language(s) as the current - parser. The selected parser must support all languages specified by - the given 'srclang_t' . - select_parser_by_srclang(lang) -> bool - @param lang (C++: srclang_t) - @return: false if no such parser was found + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found Help on function set_parser_argv in module ida_srclang: set_parser_argv(*args) -> 'int' - Set the command-line args to use for invocations of the parser with - the given name - set_parser_argv(parser_name, argv) -> int - @param parser_name: name of the target parser (C++: const char *) - @param argv: argument list (C++: const char *) - @retval: -1 - no parser was found with the given name - @retval: -2 - the operation is not supported by the given parser - @retval: else - all other values indicate success + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success -=== ida_srclang EPYDOC INJECTIONS === -ida_srclang.SRCLANG_C -""" -C. +Module "ida_strlist"s docstring: """ +Functions that deal with the string list. -ida_srclang.SRCLANG_CPP -""" -C++. -""" +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. -ida_srclang.SRCLANG_GO -""" -Golang (not supported yet) -""" +The users of this list should call build_strlist() if they need an up-to-date +version.""" -ida_srclang.SRCLANG_OBJC -""" -Objective-C. -""" - -ida_srclang.SRCLANG_SWIFT -""" -Swift (not supported yet) -""" -=== ida_srclang EPYDOC INJECTIONS END === Help on function build_strlist in module ida_strlist: build_strlist(*args) -> 'void' + build_strlist() Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) -> 'void' + clear_strlist() Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) -> 'bool' - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - get_strlist_item(si, n) -> bool - @param si (C++: string_info_t *) - @param n (C++: size_t) + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: get_strlist_options(*args) -> 'strwinsetup_t const *' + get_strlist_options() -> strwinsetup_t Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) -> 'size_t' - Get number of elements in the string list. The list will be loaded - from the database (if saved) or built from scratch. + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -79669,12 +76588,14 @@ class string_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | _ea: ea_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: string_info_t const & + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -79691,16 +76612,16 @@ class string_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type Help on class strwinsetup_t in module ida_strlist: @@ -79722,7 +76643,10 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * - | py_t: PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79734,16 +76658,16 @@ class strwinsetup_t(builtins.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -79751,71 +76675,72 @@ class strwinsetup_t(builtins.object) | thisown | The membership flag +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) -> 'tid_t' - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - add_struc(idx, name, is_union=False) -> tid_t - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) -> 'struc_error_t' + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t Add member to existing structure. - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) -> 'bool' + del_member_tinfo(sptr, mptr) -> bool Delete tinfo for given member. - del_member_tinfo(sptr, mptr) -> bool - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) -> 'bool' + del_struc(sptr) -> bool Delete a structure type. - del_struc(sptr) -> bool - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) -> 'bool' + del_struc_member(sptr, offset) -> bool Delete member at given offset. - del_struc_member(sptr, offset) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) -> 'int' + del_struc_members(sptr, off1, off2) -> int Delete members which occupy range of offsets (off1..off2). - del_struc_members(sptr, off1, off2) -> int - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error Help on class dyn_member_ref_array in module ida_struct: @@ -79826,12 +76751,14 @@ class dyn_member_ref_array(builtins.object) | | __getitem__(self, *args) -> 'member_t const &' | __getitem__(self, i) -> member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_member_ref_array - | _data: member_t * - | _count: size_t + | + | @param _data: member_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79843,8 +76770,9 @@ class dyn_member_ref_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: member_t const & + | + | @param i: size_t + | @param v: member_t const & | | __swig_destroy__ = delete_dyn_member_ref_array(...) | delete_dyn_member_ref_array(self) @@ -79859,10 +76787,10 @@ class dyn_member_ref_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_member_ref_array_count_get(self) -> size_t + | count | | data - | dyn_member_ref_array_data_get(self) -> member_t + | data | | thisown | The membership flag @@ -79870,38 +76798,41 @@ class dyn_member_ref_array(builtins.object) Help on function expand_struc in module ida_struct: expand_struc(*args) -> 'bool' + expand_struc(sptr, offset, delta, recalc=True) -> bool Expand/Shrink structure type. - expand_struc(sptr, offset, delta, recalc=True) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) -> 'member_t *' - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - get_best_fit_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_innermost_member in module ida_struct: get_innermost_member(*args) -> 'PyObject *' - get_innermost_member(sptr, offset) -> PyObject * + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) Get the innermost member at the given offset + @param sptr: the starting structure @param offset: offset into the starting structure - @return: - - None on failure + @return: - None on failure - tuple(member_t, struct_t, offset) where member_t: a member in SPTR (it is not a structure), struct_t: the innermost structure, @@ -79910,325 +76841,327 @@ get_innermost_member(*args) -> 'PyObject *' Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) -> 'ea_t' - For unions: returns number of members, for structs: returns size of - structure. - get_max_offset(sptr) -> ea_t - @param sptr (C++: struc_t *) + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) -> 'member_t *' + get_member(sptr, offset) -> member_t Get member at given offset. - get_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) -> 'struc_t **' + get_member_by_fullname(fullname) -> member_t Get a member by its fully qualified name, "struct.field". - get_member_by_fullname(fullname) -> member_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) -> 'qstring *, struc_t **' - Check if the specified member id points to a struct member. - get_member_by_id(mid) -> member_t - @param mid (C++: tid_t) + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) -> 'member_t *' + get_member_by_name(sptr, membername) -> member_t Get a member by its name, like "field44". - get_member_by_name(sptr, membername) -> member_t - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) -> 'qstring *' + get_member_cmt(mid, repeatable) -> str Get comment of structure member. - get_member_cmt(mid, repeatable) -> str - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) -> 'qstring *' + get_member_fullname(mid) -> str Get a member's fully qualified name, "struct.field". - get_member_fullname(mid) -> str - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) -> 'tid_t' + get_member_id(sptr, offset) -> tid_t Get member id at given offset. - get_member_id(sptr, offset) -> tid_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) -> 'qstring *' - Get name of structure member. - get_member_name(mid) -> str - @param mid (C++: tid_t) + + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) -> 'asize_t' - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - get_member_size(mptr) -> asize_t - @param mptr (C++: const member_t *) + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) -> 'struc_t *' + get_member_struc(fullname) -> struc_t Get containing structure of member by its full name "struct.field". - get_member_struc(fullname) -> struc_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) -> 'bool' + get_member_tinfo(tif, mptr) -> bool Get tinfo for given member. - get_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) -> 'ssize_t' + get_next_member_idx(sptr, off) -> ssize_t Get the next member idx, if it does not exist, return -1. - get_next_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) -> 'bool' + get_or_guess_member_tinfo(tif, mptr) -> bool Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - get_or_guess_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) -> 'ssize_t' + get_prev_member_idx(sptr, off) -> ssize_t Get the prev member idx, if it does not exist, return -1. - get_prev_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) -> 'struc_t *' + get_sptr(mptr) -> struc_t Get child struct if member is a struct. - get_sptr(mptr) -> struc_t - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) -> 'struc_t *' + get_struc(id) -> struc_t Get pointer to struct type info. - get_struc(id) -> struc_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) -> 'ea_t' + get_struc_first_offset(sptr) -> ea_t Get offset of first member. - get_struc_first_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) -> 'ea_t' + get_struc_last_offset(sptr) -> ea_t Get offset of last member. - get_struc_last_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) -> 'ea_t' + get_struc_next_offset(sptr, offset) -> ea_t Get offset of member with smallest offset larger than 'offset'. - get_struc_next_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) -> 'ea_t' + get_struc_prev_offset(sptr, offset) -> ea_t Get offset of member with largest offset less than 'offset'. - get_struc_prev_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) -> 'bool' + is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"? - is_anonymous_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) -> 'bool' + is_dummy_member_name(name) -> bool Is member name an auto-generated name? - is_dummy_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) -> 'bool' + is_member_id(mid) -> bool Is a member id? - is_member_id(mid) -> bool - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) -> 'bool' + is_special_member(id) -> bool Is a special member with the name beginning with ' '? - is_special_member(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) -> 'bool' + is_union(id) -> bool Is a union? - is_union(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) -> 'bool' + is_varmember(mptr) -> bool Is variable size member? - is_varmember(mptr) -> bool - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) -> 'bool' + is_varstr(id) -> bool Is variable size structure? - is_varstr(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -80246,27 +77179,39 @@ class member_t(builtins.object) | delete_member_t(self) | | by_til(self, *args) -> 'bool' + | by_til(self) -> bool | Was the member created due to the type system? | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. + | | get_soff(self, *args) -> 'ea_t' + | get_soff(self) -> ea_t | Get start offset (for unions - returns 0) | | has_ti(self, *args) -> 'bool' + | has_ti(self) -> bool | Has type information? | | has_union(self, *args) -> 'bool' + | has_union(self) -> bool | Has members of type "union"? | | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool | Is a base class member? | | is_destructor(self, *args) -> 'bool' + | is_destructor(self) -> bool | Is a virtual destructor? | | is_dupname(self, *args) -> 'bool' + | is_dupname(self) -> bool | Duplicate name was resolved during import? | | unimem(self, *args) -> 'bool' + | unimem(self) -> bool | Is a member of a union? | | ---------------------------------------------------------------------- @@ -80279,19 +77224,19 @@ class member_t(builtins.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -80299,130 +77244,129 @@ class member_t(builtins.object) Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) -> 'opinfo_t *' + retrieve_member_info(buf, mptr) -> opinfo_t Get operand type info for member. - retrieve_member_info(buf, mptr) -> opinfo_t - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) -> 'void' + save_struc(sptr, may_update_ltypes=True) Update struct information in the database (internal function) - save_struc(sptr, may_update_ltypes=True) - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) -> 'bool' + set_member_cmt(mptr, cmt, repeatable) -> bool Set member comment. - set_member_cmt(mptr, cmt, repeatable) -> bool - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) -> 'bool' + set_member_name(sptr, offset, name) -> bool Set name of member at given offset. - set_member_name(sptr, offset, name) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) -> 'smt_code_t' + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t Set tinfo for given member. - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) -> 'bool' - Set type of member at given offset (also see 'add_struc_member()' ) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) -> 'bool' - Set structure alignment ( 'SF_ALIGN' ) - set_struc_align(sptr, shift) -> bool - @param sptr (C++: struc_t *) - @param shift (C++: int) + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) -> 'void' + set_struc_hidden(sptr, is_hidden) Hide/unhide a struct type. - set_struc_hidden(sptr, is_hidden) - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) -> 'bool' - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - set_struc_idx(sptr, idx) -> bool - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) -> 'void' + set_struc_listed(sptr, is_listed) Add/remove a struct type from the struct list. - set_struc_listed(sptr, is_listed) - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) -> 'bool' + stroff_as_size(plen, sptr, value) -> bool Should display a structure offset expression as the structure size? - stroff_as_size(plen, sptr, value) -> bool - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -80443,45 +77387,75 @@ class struc_t(builtins.object) | delete_struc_t(self) | | from_til(self, *args) -> 'bool' + | from_til(self) -> bool | Does structure come from a type library? | | get_alignment(self, *args) -> 'int' - | See 'SF_ALIGN' . + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t | | get_member(self, index) | | has_union(self, *args) -> 'bool' + | has_union(self) -> bool | Has members of type "union"? | | is_choosable(self, *args) -> 'bool' - | Is included in chooser list? Use 'set_struc_listed' to change the - | listed status + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) -> 'bool' + | is_frame(self) -> bool | Is this structure a function frame? | | is_ghost(self, *args) -> 'bool' + | is_ghost(self) -> bool | Is a ghost copy of a local type? | | is_hidden(self, *args) -> 'bool' - | Is the structure collapsed? Use 'set_struc_hidden' to change the - | hidden status + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) -> 'bool' + | is_union(self) -> bool | Is a union? | | is_varstr(self, *args) -> 'bool' + | is_varstr(self) -> bool | Is variable size structure? | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | | set_alignment(self, *args) -> 'void' - | Do not use; use 'set_struc_align()' - | | set_alignment(self, shift) - | @param shift (C++: int) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) - | @param _is_ghost (C++: bool) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -80493,22 +77467,22 @@ class struc_t(builtins.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -80524,7 +77498,8 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -80533,8 +77508,9 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -80551,150 +77527,40 @@ class struct_field_visitor_t(builtins.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) -> 'adiff_t *' - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) -> 'int' + add_tryblk(tb) -> int Add one try block information. - add_tryblk(tb) -> int - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -80722,13 +77588,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Methods inherited from try_handler_t: @@ -80740,21 +77606,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80764,31 +77632,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -80798,78 +77672,85 @@ class catch_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -80897,15 +77778,19 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | x: qvector< catch_t > const & + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80915,36 +77800,42 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: catch_t const & + | + | @param i: size_t + | @param v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: catch_t const & + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< catch_t >::const_iterator' | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -80957,78 +77848,85 @@ class catchvec_t(builtins.object) | | end(self, *args) -> 'qvector< catch_t >::const_iterator' | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t - | it: qvector< catch_t >::iterator | + | @param it: qvector< catch_t >::iterator | | erase(self, first, last) -> catch_t - | first: qvector< catch_t >::iterator - | last: qvector< catch_t >::iterator + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) -> 'catch_t *' | extract(self) -> catch_t | | find(self, *args) -> 'qvector< catch_t >::const_iterator' | find(self, x) -> catch_t - | x: catch_t const & | - | - | find(self, x) -> catch_t - | x: catch_t const & + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) - | x: catch_t const & + | + | @param x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: catch_t * - | len: size_t + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t - | it: qvector< catch_t >::iterator - | x: catch_t const & + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) - | x: catch_t const & + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: catch_t const & | + | @param _newsize: size_t + | @param x: catch_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< catch_t > & + | + | @param r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -81053,31 +77951,39 @@ class catchvec_t(builtins.object) Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) -> 'void' + del_tryblks(range) Delete try block information in the specified range. - del_tryblks(range) - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) -> 'ea_t' + find_syseh(ea) -> ea_t Find the start address of the system eh region including the argument. - find_syseh(ea) -> ea_t - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) -> 'size_t' - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - get_tryblks(tbv, range) -> size_t - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() Help on class seh_t in module ida_tryblks: @@ -81108,10 +78014,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -81120,21 +78026,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81144,31 +78052,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -81178,78 +78092,85 @@ class seh_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -81296,10 +78217,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -81309,11 +78230,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81323,31 +78246,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -81357,78 +78286,85 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -81462,7 +78398,9 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | r: tryblk_t const & + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -81500,7 +78438,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -81510,11 +78448,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81524,109 +78464,122 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -81654,15 +78607,19 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | x: qvector< tryblk_t > const & + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81672,36 +78629,42 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tryblk_t const & + | + | @param i: size_t + | @param v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: tryblk_t const & + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -81714,78 +78677,85 @@ class tryblks_t(builtins.object) | | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t - | it: qvector< tryblk_t >::iterator | + | @param it: qvector< tryblk_t >::iterator | | erase(self, first, last) -> tryblk_t - | first: qvector< tryblk_t >::iterator - | last: qvector< tryblk_t >::iterator + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) -> 'tryblk_t *' | extract(self) -> tryblk_t | | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' | find(self, x) -> tryblk_t - | x: tryblk_t const & | - | - | find(self, x) -> tryblk_t - | x: tryblk_t const & + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tryblk_t * - | len: size_t + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t - | it: qvector< tryblk_t >::iterator - | x: tryblk_t const & + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) - | x: tryblk_t const & + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tryblk_t const & | + | @param _newsize: size_t + | @param x: tryblk_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tryblk_t > & + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -81807,74 +78777,73 @@ class tryblks_t(builtins.object) | | __hash__ = None -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' - Load a til file. - add_til(name, flags) -> int - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) -> 'uint32' - \call2{alloc_type_ordinals,ti,1} - alloc_type_ordinal(ti) -> uint32 - @param ti (C++: til_t *) + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) -> 'uint32' + alloc_type_ordinals(ti, qty) -> uint32 Allocate a range of ordinal numbers for new types. - alloc_type_ordinals(ti, qty) -> uint32 - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -81887,7 +78856,8 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -81896,9 +78866,10 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int - | @param v (C++: argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81915,129 +78886,122 @@ class aloc_visitor_t(builtins.object) Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) -> 'bool' - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - append_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) -> 'bool' - Serialize argument location Deserialize an argument location. Argument - FORBID_STKOFF check location type. It can be used, for example, to - check the return location of a function that cannot return a value in - the stack - append_argloc(out, vloc) -> bool - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool - out: rangeset_t * - typid: uint32 - offset: uint64 + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) -> 'bool' - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - apply_callee_tinfo(caller, tif) -> bool - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) -> 'bool' - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - apply_cdecl(til, ea, decl, flags=0) -> bool - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) -> 'bool' + apply_named_type(ea, name) -> bool Apply the specified named type to the address. - apply_named_type(ea, name) -> bool - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) -> 'bool' - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - apply_once_tinfo_and_name(dea, tif, name) -> bool - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) -> 'bool' - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - apply_tinfo(ea, tif, flags) -> bool - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) -> 'bool' - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) -> 'bool' apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -82051,31 +79015,39 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | r: argloc_t const & + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -82083,213 +79055,245 @@ class argloc_t(builtins.object) | delete_argloc_t(self) | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) -> 'int' - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82322,11 +79326,15 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | a: argloc_t const & + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: argpart_t const & + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -82334,25 +79342,27 @@ class argpart_t(argloc_t) | delete_argpart_t(self) | | bad_offset(self, *args) -> 'bool' + | bad_offset(self) -> bool | Does this argpart have a valid offset? | | bad_size(self, *args) -> 'bool' + | bad_size(self) -> bool | Does this argpart have a valid size? | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: argpart_t &) + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -82362,226 +79372,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) -> 'int' - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -82606,15 +79653,19 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | x: qvector< argpart_t > const & + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82624,36 +79675,42 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -82666,78 +79723,85 @@ class argpartvec_t(builtins.object) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -82770,7 +79834,8 @@ class argtinfo_helper_t(builtins.object) | | __init__(self, *args) | __init__(self) -> argtinfo_helper_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -82778,39 +79843,39 @@ class argtinfo_helper_t(builtins.object) | delete_argtinfo_helper_t(self) | | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool | The call instruction with a delay slot?. | - | has_delay_slot(self, arg0) -> bool - | arg0: ea_t + | @param arg0: ea_t | | is_stkarg_load(self, *args) -> 'bool' - | Is the current insn a stkarg load?. if yes:src: index of the source - | operand in \insn_t{ops}dst: index of the destination operand in - | \insn_t{ops} \insn_t{ops}[dst].addr is expected to have the stack - | offset - | | is_stkarg_load(self, insn, src, dst) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param src (C++: int *) - | @param dst (C++: int *) + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) | | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool | Set the operand type as specified. | - | set_op_tinfo(self, insn, x, tif, name) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param x (C++: const op_t &) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * | | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) | This function is to be called by the processor module in response to | ev_use_arg_types. | - | use_arg_tinfos(self, caller, fti, rargs) - | @param caller (C++: ea_t) - | @param fti (C++: func_type_data_t *) - | @param rargs (C++: funcargvec_t *) + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82822,7 +79887,7 @@ class argtinfo_helper_t(builtins.object) | list of weak references to the object (if defined) | | reserved - | argtinfo_helper_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -82836,8 +79901,9 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t - | b: size_t - | n: size_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | @@ -82845,10 +79911,10 @@ class array_type_data_t(builtins.object) | delete_array_type_data_t(self) | | swap(self, *args) -> 'void' + | swap(self, r) | set this = r and r = this | - | swap(self, r) - | @param r (C++: array_type_data_t &) + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82860,13 +79926,13 @@ class array_type_data_t(builtins.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -82874,12 +79940,11 @@ class array_type_data_t(builtins.object) Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) -> 'void' - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - begin_type_updating(utp) - @param utp (C++: update_type_t) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -82890,33 +79955,40 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | _nbytes: uchar - | _width: uchar - | _is_unsigned: bool + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -82925,11 +79997,13 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitfield_type_data_t &) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82941,16 +80015,16 @@ class bitfield_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -82960,45 +80034,43 @@ class bitfield_type_data_t(builtins.object) Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) -> 'qstring *' + calc_c_cpp_name(name, type, ccn_flags) -> str Get C or C++ form of the name. - calc_c_cpp_name(name, type, ccn_flags) -> str - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) -> 'int' - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - @retval: 0 - data is not expandable - @retval: -1 - error, see qerrno - @retval: else - the max number of lines + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) -> 'bool' calc_tinfo_gaps(out, typid) -> bool - out: rangeset_t * - typid: uint32 + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) -> 'PyObject *' calc_type_size(ti, tp) -> PyObject * Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -83010,7 +80082,9 @@ class callregs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | cc: cm_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | @@ -83021,37 +80095,40 @@ class callregs_t(builtins.object) | by_slots(self) -> bool | | init_regs(self, *args) -> 'void' + | init_regs(self, cc) | Init policy & registers for given CC. | - | init_regs(self, cc) - | @param cc (C++: cm_t) + | @param cc: (C++: cm_t) | | reginds(self, *args) -> 'bool' + | reginds(self, gp_ind, fp_ind, r) -> bool | Get register indexes within GP/FP arrays. (-1 -> is not present in the | corresponding array) | - | reginds(self, gp_ind, fp_ind, r) -> bool - | @param gp_ind (C++: int *) - | @param fp_ind (C++: int *) - | @param r (C++: int) + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) -> 'void' + | reset(self) | Set policy and registers to invalid values. | | set(self, *args) -> 'void' + | set(self, _policy, gprs, fprs) | Init policy & registers (arrays are -1-terminated) | - | set(self, _policy, gprs, fprs) - | @param _policy (C++: argreg_policy_t) - | @param gprs (C++: const int *) - | @param fprs (C++: const int *) + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int - | cc: cm_t + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83063,16 +80140,16 @@ class callregs_t(builtins.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -83081,77 +80158,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int - cc: cm_t + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) -> 'uint32' + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 Choose a type from the local type library. - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) -> 'uint32' - Choose a type from the local type library and specify the pointer - shift value. - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) -> 'bool' + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool Choose a type from a type library. - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) -> 'void' clear_tinfo_t(_this) - _this: tinfo_t * + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) -> 'bool' + compact_til(ti) -> bool Collect garbage in til. Must be called before storing the til. - compact_til(ti) -> bool - @param ti (C++: til_t *) - @return: true if any memory was freed + @param ti: (C++: til_t *) + @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) -> 'bool' compare_tinfo(t1, t2, tcflags) -> bool - t1: uint32 - t2: uint32 - tcflags: int + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -83164,7 +80238,8 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -83173,9 +80248,10 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int - | @param v (C++: const argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83192,149 +80268,154 @@ class const_aloc_visitor_t(builtins.object) Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) -> 'int' - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - convert_pt_flags_to_hti(pt_flags) -> int - @param pt_flags (C++: int) + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) -> 'uint32' - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - copy_named_type(dsttil, srctil, name) -> uint32 - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) -> 'void' copy_tinfo_t(_this, r) - _this: tinfo_t * - r: tinfo_t const & + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) -> 'qstring *' - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - create_numbered_type_name(ord) -> str - @param ord (C++: int32) + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool - _this: tinfo_t * - bt: type_t - bt2: type_t - ptr: void * + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) -> 'comp_t' - Get compiler specified by \varmem{inf,idainfo,cc}. + default_compiler() -> comp_t + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) -> 'bool' + del_named_type(ti, name, ntf_flags) -> bool Delete information about a symbol. - del_named_type(ti, name, ntf_flags) -> bool - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) -> 'bool' + del_numbered_type(ti, ordinal) -> bool Delete a numbered type. - del_numbered_type(ti, ordinal) -> bool - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) -> 'bool' + del_til(name) -> bool Unload a til file. - del_til(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool - tif: tinfo_t * - key: qstring const & - make_copy: bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool Help on function del_vftable_ea in module ida_typeinf: del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool Delete the address of a vftable instance for a vftable type. - del_vftable_ea(ordinal) -> bool - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: success + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) -> 'bool' + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool Dereference a pointer. - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - tif: tinfo_t * - til: til_t const * - ptype: type_t const ** - pfields: p_list const ** - pfldcmts: p_list const ** + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) -> 'qstring *' - Use 'func_type_data_t::dump()' - dump_func_type_data(fti, praloc_bits) -> str - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) -> 'void' - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - end_type_updating(utp) - @param utp (C++: update_type_t) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -83345,14 +80426,16 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -83361,7 +80444,8 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: enum_member_t &) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83373,16 +80457,16 @@ class enum_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83398,15 +80482,19 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | x: qvector< enum_member_t > const & + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83416,36 +80504,42 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | __swig_destroy__ = delete_enum_member_vec_t(...) | delete_enum_member_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -83458,78 +80552,85 @@ class enum_member_vec_t(builtins.object) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< enum_member_t > & + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -83565,7 +80666,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | _bte: bte_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -83594,22 +80696,22 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) -> 'void' + | swap(self, r) | swap two instances | - | swap(self, r) - | @param r (C++: enum_type_data_t &) + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -83619,11 +80721,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83633,31 +80737,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -83670,71 +80780,77 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -83760,68 +80876,73 @@ Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) -> 'bool' extract_argloc(vloc, ptype, forbid_stkoff) -> bool - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param forbid_stkoff (C++: bool) + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int - udm: udt_member_t * - typid: uint32 - strmem_flags: int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) -> 'char const *' - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - first_named_type(ti, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param ntf_flags: (C++: int) Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) -> 'int' + for_all_arglocs(vv, vloc, size, off=0) -> int Compress larger argloc types and initiate the aloc visitor. - for_all_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) -> 'int' - See 'for_all_arglocs()' - for_all_const_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) -> 'void' + free_til(ti) Free memory allocated by til. - free_til(ti) - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) -> 'bool' - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - func_has_stkframe_hole(ea, fti) -> bool - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -83844,22 +80965,31 @@ class func_type_data_t(funcargvec_t) | delete_func_type_data_t(self) | | dump(self, *args) -> 'bool' - | Dump information that is not always visible in the function prototype. - | (argument locations, return location, total stkarg size) - | | dump(self, praloc_bits=0x02) -> bool - | @param praloc_bits (C++: int) + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' - | Guess function calling convention use the following info: argument - | locations and 'stkargs' - | | guess_cc(self, purged, cc_flags) -> cm_t - | @param purged (C++: int) - | @param cc_flags (C++: int) + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool | | is_golang_cc(self, *args) -> 'bool' | is_golang_cc(self) -> bool @@ -83873,33 +81003,40 @@ class func_type_data_t(funcargvec_t) | is_pure(self, *args) -> 'bool' | is_pure(self) -> bool | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: func_type_data_t &) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -83909,11 +81046,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83923,31 +81062,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -83960,71 +81105,77 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -84055,14 +81206,16 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -84079,22 +81232,22 @@ class funcarg_t(builtins.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -84110,15 +81263,19 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | x: qvector< funcarg_t > const & + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84128,36 +81285,42 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -84170,78 +81333,85 @@ class funcargvec_t(builtins.object) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< funcarg_t > & + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -84266,55 +81436,60 @@ class funcargvec_t(builtins.object) Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) -> 'bool' + gcc_layout() -> bool Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) -> 'qstring *' - Generic function for 'decorate_name()' (may be used in IDP modules) - gen_decorate_name(name, mangle, cc, type) -> str - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * Help on function gen_use_arg_tinfos2 in module ida_typeinf: gen_use_arg_tinfos2(*args) -> 'void' - Do not call this function directly, use 'argtinfo_helper_t' . - gen_use_arg_tinfos2(_this, caller, fti, rargs) - @param _this (C++: struct argtinfo_helper_t *) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) -> 'qstring *' + get_abi_name() -> str Get ABI name. + + @return: length of the name (>=0) Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) -> 'uint32' - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - get_alias_target(ti, ordinal) -> uint32 - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: @@ -84328,277 +81503,284 @@ get_arg_addrs(*args) -> 'PyObject *' Help on function get_base_type in module ida_typeinf: get_base_type(*args) -> 'type_t' - Get get basic type bits ( 'TYPE_BASE_MASK' ) - get_base_type(t) -> type_t - @param t (C++: type_t) + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) -> 'qstring *' + get_c_header_path() -> str Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) -> 'qstring *' + get_c_macros() -> str Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) -> 'comp_t' + get_comp(comp) -> comp_t Get compiler bits. - get_comp(comp) -> comp_t - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) -> 'char const *' + get_compiler_abbr(id) -> char const * Get abbreviated compiler name. - get_compiler_abbr(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) -> 'char const *' + get_compiler_name(id) -> char const * Get full compiler name. - get_compiler_name(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) -> 'void' + get_compilers(ids, names, abbrs) Get names of all built-in compilers. - get_compilers(ids, names, abbrs) - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) -> 'qstring *' - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - get_enum_member_expr(tif, serial, value) -> str - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) -> 'type_t' - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - get_full_type(t) -> type_t - @param t (C++: type_t) + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' - Extract information from a 'tinfo_t' . - get_idainfo_by_type(tif) -> bool - @param tif: the type to inspect (C++: const tinfo_t &) + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) -> 'til_t const *' - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' - get_named_type(til, name, ntf_flags) -> PyObject * + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - get_named_type64(til, name, ntf_flags) -> PyObject * - til: til_t const * - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) -> 'PyObject *' + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - get_numbered_type(til, ordinal) -> PyObject * - til: til_t const * - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) -> 'char const *' - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - get_numbered_type_name(ti, ordinal) -> char const * - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) -> 'int' - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - get_ordinal_from_idb_type(name, type) -> int - @param name (C++: const char *) - @param type (C++: const type_t *) + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) -> 'uint32' + get_ordinal_qty(ti) -> uint32 Get number of allocated ordinals. - get_ordinal_qty(ti) -> uint32 - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) -> 'type_t' get_scalar_bt(size) -> type_t - @param size (C++: int) + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool - tif: tinfo_t * - id: enum stock_type_id_t + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) -> 'bool' get_tinfo_attr(typid, key, bv, all_attrs) -> bool - typid: uint32 - key: qstring const & - bv: bytevec_t * - all_attrs: bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) -> 'bool' get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - typid: uint32 - tav: type_attrs_t * - include_ref_attrs: bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) -> 'bool' get_tinfo_details(typid, bt2, buf) -> bool - typid: uint32 - bt2: type_t - buf: void * + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) -> 'size_t' get_tinfo_pdata(outptr, typid, what) -> size_t - outptr: void * - typid: uint32 - what: int + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) -> 'size_t' get_tinfo_property(typid, gta_prop) -> size_t - typid: uint32 - gta_prop: int + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) -> 'size_t' get_tinfo_size(p_effalign, typid, gts_code) -> size_t - p_effalign: uint32 * - typid: uint32 - gts_code: int + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) -> 'type_t' - Get type flags ( 'TYPE_FLAGS_MASK' ) - get_type_flags(t) -> type_t - @param t (C++: type_t) + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) -> 'int32' + get_type_ordinal(ti, name) -> int32 Get type ordinal by its name. - get_type_ordinal(ti, name) -> int32 - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * Help on function get_vftable_ea in module ida_typeinf: get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t Get address of a virtual function table. - get_vftable_ea(ordinal) -> ea_t - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: address of the corresponding virtual function table in the - current database. + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. Help on function get_vftable_ordinal in module ida_typeinf: get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 Get ordinal number of the virtual function table. - get_vftable_ordinal(vftable_ea) -> uint32 - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: ordinal number of the corresponding vftable type. 0 - - failure. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) -> 'cm_t' - Use 'func_type_data_t::guess_cc()' - guess_func_cc(fti, npurged, cc_flags) -> cm_t - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) -> 'int' - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - guess_tinfo(tif, id) -> int - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -84614,9 +81796,10 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | _tif: tinfo_t const & - | _ea: ea_t - | _pb: int + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | @@ -84625,13 +81808,15 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int - | @param candidate (C++: const tinfo_t &) - | arg3: func_type_data_t const & + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84652,623 +81837,656 @@ Help on function idc_get_local_type in module ida_typeinf: idc_get_local_type(*args) -> 'int' idc_get_local_type(ordinal, flags, buf, maxsize) -> int - ordinal: int - flags: int - buf: char * - maxsize: size_t + + @param ordinal: int + @param flags: int + @param buf: char * + @param maxsize: size_t Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) -> 'size_t' idc_get_local_type_name(ordinal) -> str - ordinal: int + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) -> 'PyObject *' - idc_get_local_type_raw(ordinal) -> PyObject * - ordinal: int + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) -> 'PyObject *' idc_get_type_raw(ea) -> PyObject * - ea: ea_t + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) -> 'PyObject *' - idc_parse_decl(ti, decl, flags) -> PyObject * - ti: til_t * - decl: char const * - flags: int + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int - input: char const * - flags: int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) -> 'PyObject *' - idc_print_type(type, fields, name, flags) -> PyObject * - type: type_t const * - fields: p_list const * - name: char const * - flags: int + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) -> 'int' idc_set_local_type(ordinal, dcl, flags) -> int - ordinal: int - dcl: char const * - flags: int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) -> 'tid_t' + import_type(til, idx, name, flags=0) -> tid_t Copy a named type from til to idb. - import_type(til, idx, name, flags=0) -> tid_t - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) -> 'bool' + is_autosync(name, type) -> bool Is the specified idb type automatically synchronized? - is_autosync(name, type) -> bool - @param name (C++: const char *) - @param type (C++: const type_t *) - + @param name: (C++: const char *) char const * + @param type: type_t const * is_autosync(name, tif) -> bool - @param name (C++: const char *) - tif: tinfo_t const & + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) -> 'bool' + is_code_far(cm) -> bool Does the given model specify far code?. - is_code_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) -> 'comp_t' - See 'COMP_UNSURE' . - is_comp_unsure(comp) -> comp_t - @param comp (C++: comp_t) + See COMP_UNSURE. + + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) -> 'bool' + is_data_far(cm) -> bool Does the given model specify far data?. - is_data_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) -> 'bool' - Is the target compiler 'COMP_GNU' ? + is_gcc() -> bool + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) -> 'bool' + is_gcc32() -> bool Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) -> 'bool' + is_gcc64() -> bool Is the target compiler 64 bit gcc? Help on function is_golang_cc in module ida_typeinf: is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool GO language calling convention (return value in stack)? - is_golang_cc(cc) -> bool - @param cc (C++: cm_t) + @param cc: (C++: cm_t) Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) -> 'bool' - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - is_ordinal_name(name, ord=None) -> bool - @param name (C++: const char *) - @param ord (C++: uint32 *) + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) -> 'bool' - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - is_purging_cc(cm) -> bool - @param cm (C++: cm_t) + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) -> 'bool' is_restype_enum(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) -> 'bool' - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - is_sdacl_byte(t) -> bool - @param t (C++: type_t) + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) -> 'bool' - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - is_tah_byte(t) -> bool - @param t (C++: type_t) + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) -> 'bool' + is_type_arithmetic(t) -> bool Is the type an arithmetic type? (floating or integral) - is_type_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) -> 'bool' - See 'BT_ARRAY' . - is_type_array(t) -> bool - @param t (C++: type_t) + See BT_ARRAY. + + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) -> 'bool' - See 'BT_BITFIELD' . - is_type_bitfld(t) -> bool - @param t (C++: type_t) + See BT_BITFIELD. + + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) -> 'bool' - See 'BTF_BOOL' . - is_type_bool(t) -> bool - @param t (C++: type_t) + See BTF_BOOL. + + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) -> 'bool' - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_char(t) -> bool - @param t (C++: type_t) + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) -> 'bool' - See 'BT_COMPLEX' . - is_type_complex(t) -> bool - @param t (C++: type_t) + See BT_COMPLEX. + + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) -> 'bool' - See 'BTM_CONST' . - is_type_const(t) -> bool - @param t (C++: type_t) + See BTM_CONST. + + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) -> 'bool' - See 'BTF_DOUBLE' . - is_type_double(t) -> bool - @param t (C++: type_t) + See BTF_DOUBLE. + + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) -> 'bool' - See 'BTF_ENUM' . - is_type_enum(t) -> bool - @param t (C++: type_t) + See BTF_ENUM. + + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) -> 'bool' + is_type_ext_arithmetic(t) -> bool Is the type an extended arithmetic type? (arithmetic or enum) - is_type_ext_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) -> 'bool' + is_type_ext_integral(t) -> bool Is the type an extended integral type? (integral or enum) - is_type_ext_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) -> 'bool' - See 'BTF_FLOAT' . - is_type_float(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) -> 'bool' + is_type_floating(t) -> bool Is the type a floating point type? - is_type_floating(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) -> 'bool' - See 'BT_FUNC' . - is_type_func(t) -> bool - @param t (C++: type_t) + See BT_FUNC. + + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) -> 'bool' - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - is_type_int(bt) -> bool - @param bt (C++: type_t) + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) -> 'bool' - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int128(t) -> bool - @param t (C++: type_t) + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) -> 'bool' - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int16(t) -> bool - @param t (C++: type_t) + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) -> 'bool' - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int32(t) -> bool - @param t (C++: type_t) + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) -> 'bool' - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int64(t) -> bool - @param t (C++: type_t) + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) -> 'bool' + is_type_integral(t) -> bool Is the type an integral type (char/short/int/long/bool)? - is_type_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) -> 'bool' - See 'BTF_LDOUBLE' . - is_type_ldouble(t) -> bool - @param t (C++: type_t) + See BTF_LDOUBLE. + + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) -> 'bool' + is_type_paf(t) -> bool Is the type a pointer, array, or function type? - is_type_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) -> 'bool' - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - is_type_partial(t) -> bool - @param t (C++: type_t) + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) -> 'bool' - See 'BT_PTR' . - is_type_ptr(t) -> bool - @param t (C++: type_t) + See BT_PTR. + + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) -> 'bool' + is_type_ptr_or_array(t) -> bool Is the type a pointer or array type? - is_type_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) -> 'bool' - See 'BTF_STRUCT' . - is_type_struct(t) -> bool - @param t (C++: type_t) + See BTF_STRUCT. + + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) -> 'bool' + is_type_struni(t) -> bool Is the type a struct or union? - is_type_struni(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) -> 'bool' + is_type_sue(t) -> bool Is the type a struct/union/enum? - is_type_sue(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) -> 'bool' - See 'BTF_FLOAT' . - is_type_tbyte(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) -> 'bool' - See 'BTF_TYPEDEF' . - is_type_typedef(t) -> bool - @param t (C++: type_t) + See BTF_TYPEDEF. + + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) -> 'bool' - See 'BTF_UCHAR' . - is_type_uchar(t) -> bool - @param t (C++: type_t) + See BTF_UCHAR. + + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) -> 'bool' - See 'BTF_UINT' . - is_type_uint(t) -> bool - @param t (C++: type_t) + See BTF_UINT. + + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) -> 'bool' - See 'BTF_UINT128' . - is_type_uint128(t) -> bool - @param t (C++: type_t) + See BTF_UINT128. + + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) -> 'bool' - See 'BTF_UINT16' . - is_type_uint16(t) -> bool - @param t (C++: type_t) + See BTF_UINT16. + + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) -> 'bool' - See 'BTF_UINT32' . - is_type_uint32(t) -> bool - @param t (C++: type_t) + See BTF_UINT32. + + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) -> 'bool' - See 'BTF_UINT64' . - is_type_uint64(t) -> bool - @param t (C++: type_t) + See BTF_UINT64. + + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) -> 'bool' - See 'BTF_UNION' . - is_type_union(t) -> bool - @param t (C++: type_t) + See BTF_UNION. + + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) -> 'bool' - See 'BT_UNKNOWN' . - is_type_unknown(t) -> bool - @param t (C++: type_t) + See BT_UNKNOWN. + + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) -> 'bool' - See 'BTF_VOID' . - is_type_void(t) -> bool - @param t (C++: type_t) + See BTF_VOID. + + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) -> 'bool' - See 'BTM_VOLATILE' . - is_type_volatile(t) -> bool - @param t (C++: type_t) + See BTM_VOLATILE. + + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) -> 'bool' - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - is_typeid_last(t) -> bool - @param t (C++: type_t) + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) -> 'bool' + is_user_cc(cm) -> bool Does the calling convention specify argument locations explicitly? - is_user_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) -> 'bool' + is_vararg_cc(cm) -> bool Does the calling convention use ellipsis? - is_vararg_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int - t1: uint32 - t2: uint32 - arg3: int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) -> 'qstring *' - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - load_til(name, tildir=None) -> til_t - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) -> 'qstring *' + load_til_header(tildir, name) -> til_t Get human-readable til description. - load_til_header(tildir, name) -> til_t - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) -> 'int' - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - lower_type(til, tif, name=None, _helper=None) -> int - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - @retval: 1 - removed FTI_HIGH , - @retval: 2 - made substantial changes - @retval: -1 - failure + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -85287,13 +82505,15 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85310,72 +82530,73 @@ class lowertype_helper_t(builtins.object) Help on function new_til in module ida_typeinf: new_til(*args) -> 'til_t *' + new_til(name, desc) -> til_t Initialize a til. - new_til(name, desc) -> til_t - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) -> 'char const *' - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - next_named_type(ti, name, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) -> 'bool' - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - optimize_argloc(vloc, size, gaps) -> bool - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - @retval: true - success - @retval: false - the input argloc was illegal + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) -> 'error_t' - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) -> 'error_t' + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t Write a typed idc object to the database. - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) -> 'PyObject *' pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: @@ -85385,8 +82606,10 @@ pack_object_to_idb(*args) -> 'PyObject *' Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -85394,36 +82617,33 @@ pack_object_to_idb(*args) -> 'PyObject *' Help on function parse_decl in module ida_typeinf: parse_decl(*args) -> 'qstring *' - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - parse_decl(tif, til, decl, flags) -> str - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - @retval: true - ok - @retval: false - declaration is bad, the error message is displayed if - !PT_SIL + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) -> 'int' - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - parse_decls(til, input, printer, hti_flags) -> int - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -85436,7 +82656,8 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -85445,10 +82666,11 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool - | @param til (C++: const til_t *) - | @param name (C++: const char *) - | @param type (C++: const type_t *) - | @param fields (C++: const p_list *) + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85465,51 +82687,51 @@ class predicate_t(builtins.object) Help on function print_argloc in module ida_typeinf: print_argloc(*args) -> 'size_t' + print_argloc(vloc, size=0, vflags=0) -> str Convert an argloc to human readable form. - print_argloc(vloc, size=0, vflags=0) -> str - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) -> 'PyObject *' - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for use in a + header file. This is the reverse parse_decls(). - print_decls(printer, til, py_ordinals, flags) -> PyObject * - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - py_ordinals: PyObject * - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - @retval: >0 - the number of types exported - @retval: 0 - an error occurred - @retval: <0 - the negated number of types exported. There were minor - errors and the resulting output might not be compilable. + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param flags: (C++: uint32) flags for the algorithm. A combination of PDF_* constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) -> 'qstring *' print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - prefix: char const * - indent: int - cmtindent: int - flags: int - tif: tinfo_t const * - name: char const * - cmt: char const * + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) -> 'qstring *' + print_type(ea, prtype_flags) -> str Get type declaration for the specified address. - print_type(ea, prtype_flags) -> str - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -85520,18 +82742,21 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | c: tinfo_t - | bps: uchar - | p: tinfo_t - | d: int32 + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -85539,16 +82764,17 @@ class ptr_type_data_t(builtins.object) | delete_ptr_type_data_t(self) | | is_code_ptr(self, *args) -> 'bool' + | is_code_ptr(self) -> bool | Are we pointing to code? | | is_shifted(self, *args) -> 'bool' | is_shifted(self) -> bool | | swap(self, *args) -> 'void' + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: ptr_type_data_t &) + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85560,22 +82786,22 @@ class ptr_type_data_t(builtins.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -85589,9 +82815,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) -> 'uint64' read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - typid: uint32 - v: uint64 - bitoff: int + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -85602,15 +82829,19 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | x: qvector< reg_info_t > const & + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85619,25 +82850,31 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_info_t const & + | + | @param i: size_t + | @param v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_info_t const & + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -85648,7 +82885,6 @@ class reginfovec_t(builtins.object) | | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -85661,78 +82897,85 @@ class reginfovec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t - | it: qvector< reg_info_t >::iterator | + | @param it: qvector< reg_info_t >::iterator | | erase(self, first, last) -> reg_info_t - | first: qvector< reg_info_t >::iterator - | last: qvector< reg_info_t >::iterator + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) -> 'reg_info_t *' | extract(self) -> reg_info_t | | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' | find(self, x) -> reg_info_t - | x: reg_info_t const & | - | - | find(self, x) -> reg_info_t - | x: reg_info_t const & + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_info_t * - | len: size_t + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t - | it: qvector< reg_info_t >::iterator - | x: reg_info_t const & + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) - | x: reg_info_t const & + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_info_t const & | + | @param _newsize: size_t + | @param x: reg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_info_t > & + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -85782,16 +83025,16 @@ class regobj_t(builtins.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value Help on class regobjs_t in module ida_typeinf: @@ -85824,7 +83067,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85834,19 +83078,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -85859,16 +83104,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -85878,47 +83123,56 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -85941,11 +83195,14 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | x: qvector< regobj_t > const & + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -85957,22 +83214,23 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -85985,16 +83243,16 @@ class regobjvec_t(builtins.object) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -86004,47 +83262,56 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -86065,49 +83332,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) -> 'bool' remove_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts (C++: const char *) - @param user_level (C++: bool) + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) -> 'tinfo_t' - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - remove_pointer(tif) -> tinfo_t - @param tif (C++: const tinfo_t &) + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - remove_tinfo_pointer(tif, name, til) -> PyObject * - @param tif (C++: tinfo_t *) - name: char const * - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) -> 'int' - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - replace_ordinal_typerefs(til, tif) -> int - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - @retval: number - of replaced subtypes, -1 on failure + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) -> 'type_t const *' resolve_typedef(til, type) -> type_t const * - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -86134,10 +83401,10 @@ class rrel_t(builtins.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -86146,11 +83413,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) -> 'tinfo_code_t' save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - tif: tinfo_t * - til: til_t * - ord: size_t - name: char const * - ntf_flags: int + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -86183,11 +83451,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -86197,31 +83467,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -86234,78 +83510,85 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -86328,135 +83611,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) -> 'bool' serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - type: qtype * - fields: qtype * - fldcmts: qtype * - tif: tinfo_t const * - sudt_flags: int + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) -> 'bool' - Set abi name (see 'Compiler IDs' ) - set_abi_name(abiname, user_level=False) -> bool - @param abiname (C++: const char *) - @param user_level (C++: bool) + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) -> 'void' + set_c_header_path(incdir) Set include directory path the target compiler. - set_c_header_path(incdir) - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) -> 'void' + set_c_macros(macros) Set predefined macros for the target compiler. - set_c_macros(macros) - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) -> 'bool' + set_compiler(cc, flags, abiname=None) -> bool Change current compiler. - set_compiler(cc, flags, abiname=None) -> bool - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) -> 'bool' - Set the compiler id (see 'Compiler IDs' ) - set_compiler_id(id, abiname=None) -> bool - @param id (C++: comp_t) - @param abiname (C++: const char *) + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool - @param compstr: - compiler description in form <abbr>:<abiname> (C++: - const char *) - @param user_level: - initiated by user if TRUE (C++: bool) - @return: success + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) -> 'tinfo_code_t' - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool - tif: tinfo_t * - ta: type_attr_t const & - may_overwrite: bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool - tif: tinfo_t * - ta: type_attrs_t * + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) -> 'size_t' set_tinfo_property(tif, sta_prop, x) -> size_t - tif: tinfo_t * - sta_prop: int - x: size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) -> 'bool' - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) Help on function set_vftable_ea in module ida_typeinf: set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool Set the address of a vftable instance for a vftable type. - set_vftable_ea(ordinal, vftable_ea) -> bool - @param ordinal: ordinal number of the corresponding vftable type. - (C++: uint32) - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: success + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -86467,9 +83754,10 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | nm: char const * - | sz: uint16 - | memt: type_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | @@ -86478,7 +83766,8 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool - | @param pattern (C++: const simd_info_t *) + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86490,39 +83779,78 @@ class simd_info_t(builtins.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag Help on function store_til in module ida_typeinf: store_til(*args) -> 'bool' - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - store_til(ti, tildir, name) -> bool - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success Help on function switch_to_golang in module ida_typeinf: switch_to_golang(*args) -> 'void' + switch_to_golang() switch to GOLANG calling convention (to be used as default CC) Help on class text_sink_t in module ida_typeinf: @@ -86536,7 +83864,8 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -86545,7 +83874,10 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int - | str: char const * + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86568,8 +83900,9 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t - | n: char const * - | t: til_t const * + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -86586,13 +83919,13 @@ class til_symbol_t(builtins.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til Help on class til_t in module ida_typeinf: @@ -86611,13 +83944,17 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t - | n: int + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) -> 'bool' - | Has the til been modified? ( 'TIL_MOD' ) + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) -> 'void' - | Mark the til as modified ( 'TIL_MOD' ) + | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86629,28 +83966,28 @@ class til_t(builtins.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -86664,35 +84001,43 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | decl_type: type_t + | __init__(self, decl_type) -> tinfo_t | + | @param decl_type: type_t | | __init__(self, r) -> tinfo_t - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -86704,48 +84049,51 @@ class tinfo_t(builtins.object) | | _print(self, *args) -> 'bool' | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | name: char const * - | prtype_flags: int - | indent: int - | cmtindent: int - | prefix: char const * - | cmt: char const * + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' + | append_covered(self, out, offset=0) -> bool | Calculate set of covered bytes for the type | - | append_covered(self, out, offset=0) -> bool - | @param out: pointer to the output buffer. covered bytes will be - | appended to it. (C++: rangeset_t *) - | @param offset (C++: uint64) + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) | | calc_gaps(self, *args) -> 'bool' + | calc_gaps(self, out) -> bool | Calculate set of padding bytes for the type | - | calc_gaps(self, out) -> bool - | @param out: pointer to the output buffer; old buffer contents will be - | lost. (C++: rangeset_t *) + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) -> 'int' - | 'BT_FUNC' : Calculate number of purged bytes + | calc_purged_bytes(self) -> int | | calc_score(self, *args) -> 'uint32' + | calc_score(self) -> uint32 | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) -> 'bool' - | Calculate the udt alignments using the field offsets/sizes and the - | total udt size This function does not work on typerefs - | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | @param sudt_flags (C++: int) + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) -> 'bool' + | change_sign(self, sign) -> bool | Change the type sign. Works only for the types that may have sign. | - | change_sign(self, sign) -> bool - | @param sign (C++: type_sign_t) + | @param sign: (C++: type_sign_t) | | clear(self, *args) -> 'void' + | clear(self) | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) -> 'void' @@ -86759,17 +84107,18 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | compare_with(self, *args) -> 'bool' - | Compare two types, based on given flags (see 'tinfo_t comparison - | flags' ) - | | compare_with(self, r, tcflags=0) -> bool - | @param r (C++: const tinfo_t &) - | @param tcflags (C++: int) + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) -> 'bool' + | convert_array_to_ptr(self) -> bool | Convert an array into a pointer. type[] => type * | | copy(self, *args) -> 'tinfo_t' @@ -86777,746 +84126,890 @@ class tinfo_t(builtins.object) | | create_array(self, *args) -> 'bool' | create_array(self, p, decl_type=BT_ARRAY) -> bool - | @param p (C++: const array_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: array_type_data_t const & + | @param decl_type: type_t | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | tif: tinfo_t const & - | nelems: uint32 - | base: uint32 - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | @param p (C++: const bitfield_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | nbytes: uchar - | width: uchar - | is_unsigned: bool - | @param decl_type (C++: type_t) + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | p: enum_type_data_t & - | decl_type: type_t + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' - | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , - | or 'BTF_ENUM' - | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | @param til (C++: til_t *) - | @param decl_type (C++: type_t) - | @param name (C++: const char *) - | @param ntf_flags (C++: int) + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool - | p: func_type_data_t & - | decl_type: type_t + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool - | @param p (C++: const ptr_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | tif: tinfo_t const & - | bps: uchar - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool - | @param decl_type (C++: type_t) + | + | @param decl_type: type_t | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | @param p (C++: const typedef_type_data_t &) - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | til: til_t const * - | name: char const * - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | til: til_t const * - | ord: uint - | @param decl_type (C++: type_t) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool - | p: udt_type_data_t & - | decl_type: type_t + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) -> 'bool' + | del_attr(self, key, make_copy=True) -> bool | Del a type attribute. typerefs cannot be modified by this function. | - | del_attr(self, key, make_copy=True) -> bool - | @param key (C++: const qstring &) - | @param make_copy (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) -> 'void' + | del_attrs(self) | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) -> 'bool' - | Deserialize a type string into a 'tinfo_t' object. - | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | @param til (C++: const til_t *) - | @param ptype (C++: const type_t **) - | @param pfields (C++: const p_list **) - | @param pfldcmts (C++: const p_list **) + | Deserialize a type string into a tinfo_t object. | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** | | deserialize(self, til, type, fields, cmts=None) -> bool - | @param til (C++: const til_t *) - | type: type_t const * - | fields: p_list const * - | cmts: p_list const * + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | Function to facilitate debugging. | | empty(self, *args) -> 'bool' - | Was 'tinfo_t' initialized with some type info or not? + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) -> 'bool' | equals_to(self, r) -> bool - | @param r (C++: const tinfo_t &) + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) -> 'int' - | 'BTF_STRUCT' , 'BTF_UNION' : Find a udt member.at the specified - | offset ( 'STRMEM_OFFSET' )with the specified index ( 'STRMEM_INDEX' - | )with the specified type ( 'STRMEM_TYPE' )with the specified name ( - | 'STRMEM_NAME' ) - | | find_udt_member(self, udm, strmem_flags) -> int - | @param udm (C++: struct udt_member_t *) - | @param strmem_flags (C++: int) - | @return: the index of the found member or -1 + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' + | get_array_details(self, ai) -> bool | Get the array specific info. | - | get_array_details(self, ai) -> bool - | @param ai (C++: array_type_data_t *) + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' - | 'BT_ARRAY' : get type of array element. See also - | 'get_ptrarr_object()' + | get_array_element(self) -> tinfo_t | | get_array_nelems(self, *args) -> 'int' - | 'BT_ARRAY' : get number of elements (-1 means error) + | get_array_nelems(self) -> int | | get_attr(self, *args) -> 'PyObject *' + | get_attr(self, key, all_attrs=True) -> str or None | Get a type attribute. | - | get_attr(self, key, all_attrs=True) -> PyObject * - | @param key (C++: const qstring &) - | @param all_attrs (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) -> 'bool' - | Get type attributes (all_attrs: include attributes of referenced - | types, if any) - | | get_attrs(self, tav, all_attrs=False) -> bool - | @param tav (C++: type_attrs_t *) - | @param all_attrs (C++: bool) + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' + | get_bitfield_details(self, bi) -> bool | Get the bitfield specific info. | - | get_bitfield_details(self, bi) -> bool - | @param bi (C++: bitfield_type_data_t *) + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) -> 'uchar' + | get_declalign(self) -> uchar | Get declared alignment of the type. | | get_decltype(self, *args) -> 'type_t' - | Get declared type (without resolving type references; they are - | returned as is). Obviously this is a very fast function and should be - | used instead of 'get_realtype()' if possible. + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) -> 'type_t' - | Get enum base type (convert enum to integer type) Returns 'BT_UNK' if - | failed to convert + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) -> 'bool' + | get_enum_details(self, ei) -> bool | Get the enum specific info. | - | get_enum_details(self, ei) -> bool - | @param ei (C++: enum_type_data_t *) + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) -> 'uint32' + | get_final_ordinal(self) -> uint32 | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) -> 'bool' + | get_final_type_name(self) -> bool | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) -> 'bool' - | Get only the function specific info for this 'tinfo_t' . - | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | @param fi (C++: func_type_data_t *) - | @param gtd (C++: gtd_func_t) + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' - | Create a 'tinfo_t' object for an existing named type. - | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param name: name of the type to link to (C++: const char *) - | @param decl_type: if the reference was explicitly specified with the - | type tag ( BTF_STRUCT / BTF_UNION / BTF_ENUM ) - | you may specify it. the kernel will accept only - | the specified tag after resolving the type. If - | the resolved type does not correspond to the - | explicitly specified tag, the type will be - | considered as undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code. false: return true but do not immediately - | resolve the type (C++: bool) - | @param try_ordinal: true: try to replace name reference by an ordinal - | reference (C++: bool) + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) -> 'int' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 - | - error) + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) -> 'bool' + | get_next_type_name(self) -> bool | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) -> 'tinfo_t' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means - | return type, see 'get_rettype()' ) - | | get_nth_arg(self, n) -> tinfo_t - | @param n (C++: int) + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) -> 'bool' - | Create a 'tinfo_t' object for an existing ordinal type. - | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param ordinal: number of the type to link to (C++: uint32) - | @param decl_type: if the reference was explicitly specified with the - | type tag (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may - | specify it. the kernel will accept only the - | specified tag after resolving the type. If the - | resolved type does not correspond to the explicitly - | specified tag, the type will be considered as - | undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code false: return true but do not immediately resolve - | the type (C++: bool) + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) -> 'tinfo_t' - | For objects consisting of one member entirely: return type of the - | member. + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) -> 'uint32' - | Get type ordinal (only if the type was created as a numbered type, 0 - | if none) + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) -> 'tinfo_t' - | 'BT_PTR' : get type of pointed object. If the current type is not a - | pointer, return empty type info. See also 'get_ptrarr_object()' and - | 'remove_pointer()' + | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) -> 'bool' + | get_ptr_details(self, pi) -> bool | Get the pointer info. | - | get_ptr_details(self, pi) -> bool - | @param pi (C++: ptr_type_data_t *) + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) -> 'tinfo_t' - | 'BT_PTR' & 'BT_ARRAY' : get the pointed object or array element. If - | the current type is not a pointer or array, return empty type info. + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) -> 'int' - | 'BT_PTR' & 'BT_ARRAY' : get size of pointed object or array element. - | On error returns -1 + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) -> 'type_t' - | Get the resolved base type. Deserialization options:if full=true, the - | referenced type will be deserialized fully, this may not always be - | desirable (slows down things)if full=false, we just return the base - | type, the referenced type will be resolved again later if necessary - | (this may lead to multiple resolvings of the same type) imho - | full=false is a better approach because it does not perform - | unnecessary actions just in case. however, in some cases the caller - | knows that it is very likely that full type info will be required. in - | those cases full=true makes sense - | | get_realtype(self, full=False) -> type_t - | @param full (C++: bool) + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) -> 'tinfo_t' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) -> 'type_sign_t' + | get_sign(self) -> type_sign_t | Get type sign. | | get_size(self, *args) -> 'size_t' + | get_size(self, p_effalign=None, gts_code=0) -> size_t | Get the type size in bytes. | - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | @param p_effalign: buffer for the alignment value (C++: uint32 *) - | @param gts_code: combination of GTS_... constants (C++: int) - | @return: BADSIZE in case of problems + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) -> 'til_t const *' - | Get the type library for 'tinfo_t' . + | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) -> 'bool' - | Does a type refer to a name?. If yes, fill the provided buffer with - | the type name and return true. Names are returned for numbered types - | too: either a user-defined nice name or, if a user-provided name does - | not exist, an ordinal name (like #xx, see - | 'create_numbered_type_name()' ). + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) -> 'bool' + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool | Get the udt specific info. | - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | @param udt (C++: udt_type_data_t *) - | @param gtd (C++: gtd_udt_t) + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) -> 'int' + | get_udt_nmembers(self) -> int | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) -> 'size_t' - | Get the type size in bytes without the final padding, in bytes. For - | some UDTs 'get_unpadded_size()' != 'get_size()' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) -> 'bool' + | has_details(self) -> bool | Does this type refer to a nontrivial type? | | has_vftable(self, *args) -> 'bool' + | has_vftable(self) -> bool | Has a vftable? | | is_anonymous_udt(self, *args) -> 'bool' - | Is an anonymous struct/union? We assume that types with names are - | anonymous if the name starts with $ + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) -> 'bool' - | \isreal{is_type_arithmetic} + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) -> 'bool' - | \isreal{is_type_array} + | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) -> 'bool' - | \isreal{is_type_bitfld} + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) -> 'bool' - | \isreal{is_type_bool} + | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_char(self, *args) -> 'bool' - | \isreal{is_type_char} + | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) -> 'bool' - | \isreal{is_type_complex} + | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) -> 'bool' - | \isreal{is_type_const} + | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) -> 'bool' - | Is the type object correct?. It is possible to create incorrect types. - | For example, we can define a function that returns a enum and then - | delete the enum type. If this function returns false, the type should - | not be used in disassembly. Please note that this function does not - | verify all involved types: for example, pointers to undefined types - | are permitted. + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) -> 'bool' - | \isdecl{is_type_array} + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) -> 'bool' - | \isdecl{is_type_bitfld} + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) -> 'bool' - | \isdecl{is_type_bool} + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) -> 'bool' - | \isdecl{is_type_char} + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) -> 'bool' - | \isdecl{is_type_complex} + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) -> 'bool' - | \isdecl{is_type_const} + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) -> 'bool' - | \isdecl{is_type_double} + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) -> 'bool' - | \isdecl{is_type_enum} + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) -> 'bool' - | \isdecl{is_type_float} + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) -> 'bool' - | \isdecl{is_type_floating} + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) -> 'bool' - | \isdecl{is_type_func} + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) -> 'bool' - | \isdecl{is_type_int} + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) -> 'bool' - | \isdecl{is_type_int128} + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) -> 'bool' - | \isdecl{is_type_int16} + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) -> 'bool' - | \isdecl{is_type_int32} + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) -> 'bool' - | \isdecl{is_type_int64} + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) -> 'bool' - | \isdecl{is_typeid_last} + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) -> 'bool' - | \isdecl{is_type_ldouble} + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) -> 'bool' - | \isdecl{is_type_paf} + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) -> 'bool' - | \isdecl{is_type_partial} + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) -> 'bool' - | \isdecl{is_type_ptr} + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) -> 'bool' - | \isdecl{is_type_struct} + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) -> 'bool' - | \isdecl{is_type_sue} + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) -> 'bool' - | \isdecl{is_type_tbyte} + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) -> 'bool' - | \isdecl{is_type_typedef} + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) -> 'bool' - | \isdecl{is_type_uchar} + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) -> 'bool' - | \isdecl{is_type_struni} + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) -> 'bool' - | \isdecl{is_type_uint} + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) -> 'bool' - | \isdecl{is_type_uint128} + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) -> 'bool' - | \isdecl{is_type_uint16} + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) -> 'bool' - | \isdecl{is_type_uint32} + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) -> 'bool' - | \isdecl{is_type_uint64} + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) -> 'bool' - | \isdecl{is_type_union} + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) -> 'bool' - | \isdecl{is_type_unknown} + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) -> 'bool' - | \isdecl{is_type_void} + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) -> 'bool' - | \isdecl{is_type_volatile} + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) -> 'bool' - | \isreal{is_type_double} + | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) -> 'bool' + | is_empty_udt(self) -> bool | Is an empty struct/union? (has no fields) | | is_enum(self, *args) -> 'bool' - | \isreal{is_type_enum} + | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) -> 'bool' - | \isreal{is_type_ext_arithmetic} + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) -> 'bool' - | \isreal{is_type_ext_integral} + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) -> 'bool' - | \isreal{is_type_float} + | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) -> 'bool' - | \isreal{is_type_floating} + | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) -> 'bool' - | Is this a forward declaration?. Forward declarations are placeholders: - | the type definition does not exist + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) -> 'bool' - | Was the named type found in some base type library (not the top level - | type library)?. If yes, it usually means that the type comes from some - | loaded type library, not the local type library for the database + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) -> 'bool' - | \isreal{is_type_func} + | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) -> 'bool' + | is_funcptr(self) -> bool | Is this pointer to a function? | | is_high_func(self, *args) -> 'bool' - | 'BT_FUNC' : Is high level type? + | is_high_func(self) -> bool | | is_int(self, *args) -> 'bool' - | \isreal{is_type_int} + | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) -> 'bool' - | \isreal{is_type_int128} + | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) -> 'bool' - | \isreal{is_type_int16} + | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) -> 'bool' - | \isreal{is_type_int32} + | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) -> 'bool' - | \isreal{is_type_int64} + | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) -> 'bool' - | \isreal{is_type_integral} + | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) -> 'bool' - | \isreal{is_type_ldouble} + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) -> 'bool' - | Floating value or an object consisting of one floating member - | entirely. + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) -> 'bool' - | \isreal{is_type_paf} + | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) -> 'bool' - | \isreal{is_type_partial} + | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) -> 'bool' - | \isreal{is_type_ptr} + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) -> 'bool' - | \isreal{is_type_ptr_or_array} + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) -> 'bool' - | \tinfocc{is_purging_cc} + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) -> 'bool' - | Is "void *"?. This function does not check the pointer attributes and - | type modifiers. + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) -> 'bool' + | is_scalar(self) -> bool | Does the type represent a single number? | | is_shifted_ptr(self, *args) -> 'bool' + | is_shifted_ptr(self) -> bool | Is a shifted pointer? | | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool | Is this a signed type? | | is_small_udt(self, *args) -> 'bool' + | is_small_udt(self) -> bool | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) -> 'bool' + | is_sse_type(self) -> bool | Is a SSE vector type? | | is_struct(self, *args) -> 'bool' - | \isreal{is_type_struct} + | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) -> 'bool' - | \isreal{is_type_sue} + | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) -> 'bool' - | \isreal{is_type_tbyte} + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) -> 'bool' - | Is this type a type reference?. Type references cannot be modified. - | Once created, they do not change. Because of this, the set_... - | functions applied to typerefs create a new type id. Other types are - | modified directly. + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) -> 'bool' - | \isreal{is_type_uchar} + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) -> 'bool' - | \isreal{is_type_struni} + | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) -> 'bool' - | \isreal{is_type_uint} + | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) -> 'bool' - | \isreal{is_type_uint128} + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) -> 'bool' - | \isreal{is_type_uint16} + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) -> 'bool' - | \isreal{is_type_uint32} + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) -> 'bool' - | \isreal{is_type_uint64} + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) -> 'bool' - | \isreal{is_type_union} + | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) -> 'bool' - | \isreal{is_type_unknown} + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) -> 'bool' + | is_unsigned(self) -> bool | Is this an unsigned type? | | is_user_cc(self, *args) -> 'bool' - | \tinfocc{is_user_cc} + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) -> 'bool' - | \tinfocc{is_vararg_cc} + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) -> 'bool' + | is_varstruct(self) -> bool | Is a variable-size structure? | | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool | Is a vftable type? | | is_void(self, *args) -> 'bool' - | \isreal{is_type_void} + | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) -> 'bool' - | \isreal{is_type_volatile} + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) -> 'bool' - | !( 'empty()' ) && !( 'is_decl_partial()' ) + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) -> 'bool' - | Is the type really present? (not a reference to a missing type, for - | example) + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) -> 'uint64' | read_bitfield_value(self, v, bitoff) -> uint64 - | v: uint64 - | bitoff: int + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) -> 'bool' - | Replace the current type with the ptr obj or array element. This - | function performs one of the following conversions:type[] => typetype* - | => type If the conversion is performed successfully, return true + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' + | requires_qualifier(self, name, offset) -> bool | Requires full qualifier? (name is not unique) | - | requires_qualifier(self, name, offset) -> bool - | @param name: field name (C++: const char *) - | @param offset (C++: uint64) - | @return: if the name is not unique, returns true + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' - | Serialize 'tinfo_t' object into a type string. + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. | - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | @param sudt_flags (C++: int) + | @param sudt_flags: (C++: int) | | set_attr(self, *args) -> 'bool' + | set_attr(self, ta, may_overwrite=True) -> bool | Set a type attribute. If necessary, a new typid will be created. | - | set_attr(self, ta, may_overwrite=True) -> bool - | @param ta (C++: const type_attr_t &) - | @param may_overwrite (C++: bool) + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) -> 'bool' - | Set type attributes. If necessary, a new typid will be created. this - | function modifies tav! (returns old attributes, if any) - | | set_attrs(self, tav) -> bool - | @param tav (C++: type_attrs_t *) - | @return: false: bad attributes + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' + | set_declalign(self, declalign) -> bool | Set declared alignment of the type. | - | set_declalign(self, declalign) -> bool - | @param declalign (C++: uchar) + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) - | mod: type_t + | + | @param mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) -> 'tinfo_code_t' | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | til: til_t * - | ord: uint32 - | ntf_flags: int - | name: char const * + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: tinfo_t &) + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | dst: uint64 - | v: uint64 - | bitoff: int + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t - | id: enum stock_type_id_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87539,7 +85032,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) -> 'tinfo_t' tinfo_t_get_stock(id) -> tinfo_t - id: enum stock_type_id_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -87552,7 +85046,8 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t - | s: int + | + | @param s: int | | __repr__ = _swig_repr(self) | @@ -87560,29 +85055,29 @@ class tinfo_visitor_t(builtins.object) | delete_tinfo_visitor_t(self) | | apply_to(self, *args) -> 'int' + | apply_to(self, tif, out=None, name=None, cmt=None) -> int | Call this function to initiate the traversal. | - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | @param tif (C++: const tinfo_t &) - | @param out (C++: type_mods_t *) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) -> 'void' + | prune_now(self) | To refuse to visit children of the current type, use this: | | visit_type(self, *args) -> 'int' - | Visit a subtype. this function must be implemented in the derived - | class. it may optionally fill out with the new type info. this can be - | used to modify types (in this case the 'out' argument of 'apply_to()' - | may not be NULL) return 0 to continue the traversal. return !=0 to - | stop the traversal. - | | visit_type(self, out, tif, name, cmt) -> int - | @param out (C++: type_mods_t *) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87594,7 +85089,7 @@ class tinfo_visitor_t(builtins.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -87608,14 +85103,16 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -87632,13 +85129,13 @@ class type_attr_t(builtins.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value Help on class type_attrs_t in module ida_typeinf: @@ -87649,11 +85146,14 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | x: qvector< type_attr_t > const & + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87665,22 +85165,23 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: type_attr_t const & + | + | @param i: size_t + | @param v: type_attr_t const & | | __swig_destroy__ = delete_type_attrs_t(...) | delete_type_attrs_t(self) | | at(self, *args) -> 'type_attr_t const &' | at(self, _idx) -> type_attr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -87693,16 +85194,16 @@ class type_attrs_t(builtins.object) | | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t - | it: qvector< type_attr_t >::iterator | + | @param it: qvector< type_attr_t >::iterator | | erase(self, first, last) -> type_attr_t - | first: qvector< type_attr_t >::iterator - | last: qvector< type_attr_t >::iterator + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -87712,47 +85213,56 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) - | x: type_attr_t const & + | + | @param x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: type_attr_t * - | len: size_t + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t - | it: qvector< type_attr_t >::iterator - | x: type_attr_t const & + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) - | x: type_attr_t const & + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: type_attr_t const & | + | @param _newsize: size_t + | @param x: type_attr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< type_attr_t > & + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -87801,19 +85311,21 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) - | @param c (C++: const qstring &) + | + | @param c: qstring const & | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) - | @param n (C++: const qstring &) + | + | @param n: qstring const & | | set_new_type(self, *args) -> 'void' - | The visit_type() function may optionally save the modified type info. - | Use the following functions for that. The new name and comment will be - | applied only if the current tinfo element has storage for them. - | | set_new_type(self, t) - | @param t (C++: const tinfo_t &) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87825,19 +85337,19 @@ class type_mods_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type Help on class typedef_type_data_t in module ida_typeinf: @@ -87848,15 +85360,16 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | _name: char const * - | _resolve: bool | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | ord: uint32 - | _resolve: bool + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | @@ -87865,7 +85378,8 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: typedef_type_data_t &) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87877,16 +85391,22 @@ class typedef_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til Help on class udt_member_t in module ida_typeinf: @@ -87897,18 +85417,21 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -87921,6 +85444,9 @@ class udt_member_t(builtins.object) | clr_baseclass(self, *args) -> 'void' | clr_baseclass(self) | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | | clr_unaligned(self, *args) -> 'void' | clr_unaligned(self) | @@ -87942,6 +85468,9 @@ class udt_member_t(builtins.object) | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | | is_unaligned(self, *args) -> 'bool' | is_unaligned(self) -> bool | @@ -87957,6 +85486,9 @@ class udt_member_t(builtins.object) | set_baseclass(self, *args) -> 'void' | set_baseclass(self) | + | set_method(self, *args) -> 'void' + | set_method(self) + | | set_unaligned(self, *args) -> 'void' | set_unaligned(self) | @@ -87968,7 +85500,8 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: udt_member_t &) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87980,31 +85513,31 @@ class udt_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -88019,6 +85552,7 @@ class udt_type_data_t(udtmembervec_t) | Method resolution order: | udt_type_data_t | udtmembervec_t + | udtmembervec_template_t | builtins.object | | Methods defined here: @@ -88036,7 +85570,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool - | @param idx (C++: size_t) + | + | @param idx: size_t | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -88052,45 +85587,48 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: udt_type_data_t &) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: + | Methods inherited from udtmembervec_template_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88100,31 +85638,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -88137,71 +85681,77 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -88210,7 +85760,7 @@ class udt_type_data_t(udtmembervec_t) | truncate(self) | | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: + | Data descriptors inherited from udtmembervec_template_t: | | __dict__ | dictionary for instance variables (if defined) @@ -88219,28 +85769,48 @@ class udt_type_data_t(udtmembervec_t) | list of weak references to the object (if defined) | | ---------------------------------------------------------------------- - | Data and other attributes inherited from udtmembervec_t: + | Data and other attributes inherited from udtmembervec_template_t: | | __hash__ = None Help on class udtmembervec_t in module ida_typeinf: -class udtmembervec_t(builtins.object) - | Proxy of C++ qvector< udt_member_t > class. +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | x: qvector< udt_member_t > const & + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88250,36 +85820,37 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & - | - | __swig_destroy__ = delete_udtmembervec_t(...) - | delete_udtmembervec_t(self) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -88292,78 +85863,261 @@ class udtmembervec_t(builtins.object) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< udt_member_t > & + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -88388,27 +86142,27 @@ class udtmembervec_t(builtins.object) Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) -> 'error_t' + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t Read a typed idc object from the byte vector. - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) -> 'error_t' + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t Collection of register objects. Read a typed idc object from the database - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: @@ -88416,28 +86170,30 @@ unpack_object_from_bv(*args) -> 'PyObject *' unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) -> 'PyObject *' unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * - ti: til_t * - type: type_t const * - fields: p_list const * - ea: ea_t - pio_flags: int + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int Help on function use_golang_cc in module ida_typeinf: use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -88465,19 +86221,19 @@ class valstr_t(builtins.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -88513,7 +86269,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88523,19 +86280,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -88548,16 +86306,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -88567,47 +86325,56 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -88630,11 +86397,14 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | x: qvector< valstr_t > const & + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -88646,22 +86416,23 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -88674,16 +86445,16 @@ class valstrvec_t(builtins.object) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -88693,47 +86464,56 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -88753,1209 +86533,270 @@ class valstrvec_t(builtins.object) Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) -> 'int' - Verify 'argloc_t' . - verify_argloc(vloc, size, gaps) -> int - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) -> 'int' verify_tinfo(typid) -> int - typid: uint32 + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int - visitor: tinfo_visitor_t * - out: type_mods_t * - tif: tinfo_t const & - name: char const * - cmt: char const * + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) -> 'uint64' write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - typid: uint32 - dst: uint64 - v: uint64 - bitoff: int + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_GOLANG_OK -""" -can use __golang calling convention -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FAI_UNUSED -""" -argument is not used by the function -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" -'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" -'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" -'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" -'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" -'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) -> 'ea_t' - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) -> 'bool' + can_decode(ea) -> bool Can the bytes at address 'ea' be decoded as instruction? - can_decode(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction Help on function construct_macro in module ida_ua: construct_macro(*args) -> 'bool' construct_macro(insn, enable, build_macro) -> bool See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * Help on function construct_macro2 in module ida_ua: construct_macro2(*args) -> 'bool' construct_macro2(_this, insn, enable) -> bool - @param _this (C++: macro_constructor_t *) - @param insn (C++: insn_t *) - @param enable (C++: bool) + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) -> 'outctx_base_t *' + create_outctx(ea, F=0, suspop=0) -> outctx_base_t Create a new output context. To delete it, just use "delete pctx" - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) -> 'int' - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - decode_insn(out, ea) -> int - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) -> 'PyObject *' - decode_preceding_insn(out, ea) -> PyObject * + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) -> 'ea_t' + decode_prev_insn(out, ea) -> ea_t Decode previous instruction if it exists, fill 'out'. - decode_prev_insn(out, ea) -> ea_t - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) -> 'int' - Get 'op_t::dtype' from size. - get_dtype_by_size(size) -> int - @param size (C++: asize_t) + Get op_t::dtype from size. + + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: get_dtype_flag(*args) -> 'flags_t' - Get flags for 'op_t::dtype' field. - get_dtype_flag(dtype) -> flags_t - @param dtype (C++: op_dtype_t) + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) -> 'size_t' + get_dtype_size(dtype) -> size_t Get size of opt_::dtype field. - get_dtype_size(dtype) -> size_t - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) -> 'PyObject *' - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - get_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) -> 'int' - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) -> 'PyObject *' + get_printable_immvals(ea, n, F=0) -> PyObject * Get immediate ready-to-print values at the specified address - get_printable_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum cref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) -> 'void' insn_add_dref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum dref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) -> 'ea_t' insn_add_off_drefs(insn, x, type, outf) -> ea_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - type: enum dref_t - outf: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) -> 'bool' insn_create_stkvar(insn, x, v, flags) -> bool - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - v: adiff_t - flags: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -89969,14 +86810,15 @@ class insn_t(builtins.object) | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t - | n: int + | + | @param n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -89987,77 +86829,92 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) - | v: uint32 + | + | @param v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' + | add_cref(self, to, opoff, type) | Add a code cross-reference from the instruction. | - | add_cref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction. if - | the offset is unknown, then 0. (C++: int) - | @param type: type of xref (C++: cref_t) + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) -> 'void' - | Add a data cross-reference from the instruction. See 'add_off_drefs()' - | - usually it can be used in most cases. - | | add_dref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction if - | the offset is unknown, then 0 (C++: int) - | @param type: type of xref (C++: dref_t) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) -> 'ea_t' - | Add xrefs for an operand of the instruction. This function creates all - | cross references for 'enum', 'offset' and 'structure offset' operands. - | Use 'add_off_drefs()' in the presence of negative offsets. - | | add_off_drefs(self, x, type, outf) -> ea_t - | @param x: reference to operand (C++: const op_t &) - | @param type: type of xref (C++: dref_t) - | @param outf: out_value() flags. These flags should match the flags - | used to output the operand (C++: int) - | @return: if is_off() : the reference target address (the same as - | calc_reference_data). if is_stroff() : BADADDR because for - | stroffs the target address is unknown else: BADADDR because - | enums do not represent addresses + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) -> 'void' | assign(self, other) - | other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) -> 'bool' | create_op_data(self, ea_, opoff, dtype) -> bool - | ea_: ea_t - | opoff: int - | dtype: op_dtype_t + | Convenient alias. | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t | | create_op_data(self, ea_, op) -> bool - | ea_: ea_t - | op: op_t const & + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool - | x: op_t const & - | v: adiff_t - | flags_: int + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) -> 'uint32' - | see 'instruc_t::feature' - | | get_canon_feature(self, ph) -> uint32 - | @param ph (C++: const processor_t &) + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) -> 'char const *' - | see 'instruc_t::name' - | | get_canon_mnem(self, ph) -> char const - | @param ph (C++: const processor_t &) + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) -> 'uint8' | get_next_byte(self) -> uint8 @@ -90072,15 +86929,19 @@ class insn_t(builtins.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool | Belongs to a 64bit segment? | | is_canon_insn(self, *args) -> 'bool' - | see \ph{ 'is_canon_insn()' } - | | is_canon_insn(self, ph) -> bool - | @param ph (C++: const processor_t &) + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool | | is_macro(self, *args) -> 'bool' + | is_macro(self) -> bool | Is a macro instruction? | | ---------------------------------------------------------------------- @@ -90111,32 +86972,38 @@ class insn_t(builtins.object) | auxpref | __get_auxpref__(self) -> uint32 | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -90145,15 +87012,16 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) -> 'insn_t *' insn_t__from_ptrval__(ptrval) -> insn_t - ptrval: size_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) -> 'bool' + is_floating_dtype(dtype) -> bool Is a floating type operand? - is_floating_dtype(dtype) -> bool - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on class macro_constructor_t in module ida_ua: @@ -90166,7 +87034,8 @@ class macro_constructor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> macro_constructor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -90174,23 +87043,19 @@ class macro_constructor_t(builtins.object) | delete_macro_constructor_t(self) | | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool | Try to extend the instruction. | - | build_macro(self, insn, may_go_forward) -> bool - | @param insn: Instruction to modify, usually the first instruction of - | the macro (C++: insn_t *) - | @param may_go_forward: Is it ok to consider the next instruction for - | the macro? This argument may be false, for - | example, if there is a cross reference to the - | end of INSN. In this case creating a macro is - | not desired. However, it may still be useful to - | perform minor tweaks to the instruction using - | the information about the surrounding - | instructions. (C++: bool) - | @return: true if created an macro instruction. This function may - | modify 'insn' and return false; these changes will be - | accepted by the kernel but the instruction will not be - | considered as a macro. + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -90202,7 +87067,7 @@ class macro_constructor_t(builtins.object) | list of weak references to the object (if defined) | | reserved - | macro_constructor_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -90210,52 +87075,46 @@ class macro_constructor_t(builtins.object) Help on function map_code_ea in module ida_ua: map_code_ea(*args) -> 'ea_t' - Map a code address. This function takes into account the segment - translations. - map_code_ea(insn, addr, opnum) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_code_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) -> 'ea_t' - Map a data address. - map_data_ea(insn, addr, opnum=-1) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_data_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) -> 'ea_t' map_ea(insn, op, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param op (C++: const op_t &) - @param iscode (C++: bool) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool map_ea(insn, addr, opnum, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - addr: ea_t - opnum: int - @param iscode (C++: bool) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -90283,49 +87142,57 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) - | r: uint16 + | + | @param r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) - | v: ea_t + | + | @param v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) - | other: op_t const & + | + | @param other: op_t const & | | clr_shown(self, *args) -> 'void' + | clr_shown(self) | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) -> 'bool' + | is_imm(self, v) -> bool | Is immediate operand? | - | is_imm(self, v) -> bool - | @param v (C++: uval_t) + | @param v: (C++: uval_t) | | is_reg(self, *args) -> 'bool' + | is_reg(self, r) -> bool | Is register operand? | - | is_reg(self, r) -> bool - | @param r (C++: int) + | @param r: (C++: int) | | set_shown(self, *args) -> 'void' + | set_shown(self) | Set operand to be shown. | | shown(self, *args) -> 'bool' + | shown(self) -> bool | Is operand set to be shown? | | ---------------------------------------------------------------------- @@ -90341,19 +87208,19 @@ class op_t(builtins.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -90362,16 +87229,16 @@ class op_t(builtins.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -90380,7 +87247,7 @@ class op_t(builtins.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t @@ -90389,7 +87256,8 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) -> 'op_t *' op_t__from_ptrval__(ptrval) -> op_t - ptrval: size_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -90400,11 +87268,13 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array - | data: op_t (&)[8] + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -90416,8 +87286,9 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: op_t const & + | + | @param i: size_t + | @param v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) @@ -90427,7 +87298,10 @@ class operands_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -90442,7 +87316,7 @@ class operands_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -90469,21 +87343,21 @@ class outctx_base_t(builtins.object) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -90492,84 +87366,80 @@ class outctx_base_t(builtins.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -90578,153 +87448,156 @@ class outctx_base_t(builtins.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) -> 'flags_t' - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -90734,24 +87607,25 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, makeline_flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, makeline_flags) - | @param prefix (C++: const char *) - | @param makeline_flags (C++: int) + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -90763,13 +87637,13 @@ class outctx_base_t(builtins.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -90778,7 +87652,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - ptrval: size_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -90799,17 +87674,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) - | @param pfn (C++: func_t *) + | + | @param pfn: func_t * | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | @param flags (C++: int) - | @param proc_name (C++: const char *) - | @param proc_flavour (C++: const char *) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -90818,118 +87696,119 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) -> 'void' - | Output custom mnemonic for 'insn'. E.g. if it should differ from the - | one in 'ph.instruc'. This function outputs colored text. See - | 'out_mnem' - | | out_custom_mnem(self, mnem, width=8, postfix=None) - | @param mnem: custom mnemonic (C++: const char *) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to 'mnem' (C++: const char *) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) - | @param analyze_only (C++: bool) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) -> 'void' - | Print all operand values as commented character constants. This - | function is used to comment void operands with their representation in - | the form of character constants. This function outputs a colored text. + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) -> 'void' - | Output instruction mnemonic for 'insn' using information in - | 'ph.instruc' array. This function outputs a colored text. It should be - | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will - | output at least one space after the instruction. mnemonic even if the - | specified 'width' is not enough. - | | out_mnem(self, width=8, postfix=None) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to the instruction mnemonic - | (C++: const char *) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) -> 'void' - | Output instruction mnemonic using information in 'insn'. It should be - | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or - | 'out_mnem' . This function outputs a colored text. + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) -> 'bool' - | Use this function to output an operand of an instruction. This - | function checks for the existence of a manually defined operand and - | will output it if it exists. It should be called from - | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This - | function outputs a colored text. - | | out_one_operand(self, n) -> bool - | @param n: number of operand (C++: int) - | @retval: 1 - operand is displayed - | @retval: 0 - operand is hidden + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool - | @param segtype (C++: uchar) + | + | @param segtype: uchar | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) - | @param value (C++: int) + | + | @param value: int | | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, flags) - | @param prefix (C++: const char *) - | flags: int + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ash - | outctx_t_ash_get(self) -> asm_t + | ash | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn | | ph - | outctx_t_ph_get(self) -> processor_t + | ph | | procmod - | outctx_t_procmod_get(self) -> procmod_t + | procmod | | saved_immvals - | outctx_t_saved_immvals_get(self) -> uval_t [8] + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -90944,21 +87823,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -90967,81 +87846,77 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -91050,145 +87925,147 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) -> 'flags_t' - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -91198,17 +88075,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -91220,332 +88098,77 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) -> 'outctx_t *' outctx_t__from_ptrval__(ptrval) -> outctx_t - ptrval: size_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) -> 'qstring *' + print_insn_mnem(ea) -> str Print instruction mnemonics. - print_insn_mnem(ea) -> str - @param ea: linear address of the instruction (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address of the instruction + @return: success Help on function print_operand in module ida_ua: print_operand(*args) -> 'qstring *' - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -in case of an error, use a CP_REPLCHAR instead -""" +Cross-references are automatically sorted.""" -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: @@ -91591,10 +88214,10 @@ class cases_and_targets_t(builtins.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -91608,15 +88231,19 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -91625,25 +88252,31 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | __swig_destroy__ = delete_casevec_t(...) | delete_casevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -91671,74 +88304,86 @@ class casevec_t(builtins.object) | | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: qvector< signed-ea-like-numeric-type > *↗ - | len: size_t + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | push_back(self, x) - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -91790,171 +88435,165 @@ create_switch_xrefs(*args) -> 'bool' Help on function del_cref in module ida_xref: del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) - jump_ea: ea_t - si: switch_info_t const & + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' + has_external_refs(pfn, ea) -> bool Has a location external to the function references? - has_external_refs(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -91971,27 +88610,61 @@ class xrefblk_t(builtins.object) | __swig_destroy__ = delete_xrefblk_t(...) | delete_xrefblk_t(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool - | _from: ea_t - | flags: int + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool - | _to: ea_t - | flags: int + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) -> 'bool' | next_from(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -92003,77 +88676,44 @@ class xrefblk_t(builtins.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user Help on function xrefchar in module ida_xref: xrefchar(*args) -> 'char' + xrefchar(xrtype) -> char Get character describing the xref type. - xrefchar(xrtype) -> char - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -92164,13 +88804,13 @@ EVAL_FAILURE(code) Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -92416,40 +89056,30 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_default_til in module idc: @@ -92462,32 +89092,30 @@ add_default_til(name) Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function add_enum in module idc: @@ -92528,39 +89156,39 @@ add_enum_member(enum_id, name, value, bmask) Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -92585,16 +89213,15 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function add_struc in module idc: @@ -92651,13 +89278,12 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function append_func_tail in module idc: @@ -92689,19 +89315,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -92719,53 +89348,51 @@ atol(s) Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -92820,11 +89447,11 @@ can_exc_continue() Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -92846,17 +89473,15 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -92879,32 +89504,30 @@ create_byte(ea) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module idc: @@ -92936,16 +89559,16 @@ create_float(ea) Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -93033,16 +89656,15 @@ create_yword(ea) Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -93076,49 +89698,45 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -93138,25 +89756,26 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_hash_string in module idc: @@ -93171,72 +89790,70 @@ del_hash_string(hash_id, key) Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function del_stkpnt in module idc: @@ -93303,28 +89920,30 @@ demangle_name(name, disable_mask) Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -93359,8 +89978,9 @@ eval_idc(expr) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -93387,34 +90007,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -93430,12 +90050,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -93452,24 +90072,24 @@ find_selector(val) Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -93643,13 +90263,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -93673,24 +90295,24 @@ get_bpt_ea(n) Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -93709,13 +90331,13 @@ get_bytes(ea, size, use_dbg=False) Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -93737,19 +90359,19 @@ get_curline() Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -93759,69 +90381,70 @@ get_debugger_event_cond(*args) -> 'char const *' Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) -> 'flags_t' - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -93840,18 +90463,18 @@ get_enum_member(enum_id, value, serial, bmask) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -93866,10 +90489,10 @@ get_enum_member_cmt(const_id, repeatable) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -93883,40 +90506,39 @@ get_enum_member_name(const_id) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -94015,8 +90637,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -94032,67 +90655,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -94109,13 +90728,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -94174,7 +90795,10 @@ get_first_seg() Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -94229,12 +90853,12 @@ get_fixup_target_type(ea) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -94298,11 +90922,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: get_full_flags(*args) -> 'flags_t' + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -94392,27 +91016,26 @@ get_inf_attr(attr) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -94426,11 +91049,11 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -94486,7 +91109,10 @@ get_last_member(sid) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -94499,11 +91125,11 @@ get_local_tinfo(ordinal) Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -94676,16 +91302,15 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -94700,65 +91325,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -94788,24 +91409,26 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -94884,11 +91507,11 @@ get_next_seg(ea) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -94939,22 +91562,22 @@ get_ordinal_qty() Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -94984,11 +91607,11 @@ get_prev_fchunk(ea) Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -95048,78 +91671,81 @@ get_prev_offset(sid, offset) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' + get_root_filename() -> str Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -95172,19 +91798,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -95226,8 +91853,11 @@ get_sreg(ea, reg) Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_str_type in module idc: @@ -95251,67 +91881,68 @@ get_strlit_contents(ea, length=-1, strtype=0) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -95328,8 +91959,9 @@ get_tev_reg_mem_qty(tev) Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -95339,19 +91971,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -95364,10 +91999,10 @@ get_tinfo(ea) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -95381,35 +92016,35 @@ get_type(ea) Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -95422,32 +92057,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -95542,11 +92176,11 @@ is_align(F) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -95707,10 +92341,10 @@ is_unknown(F) Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -95719,47 +92353,46 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -95798,7 +92431,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -95811,11 +92444,11 @@ msg(*args) -> 'PyObject *' Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -95843,115 +92476,115 @@ next_head(ea, maxea=BADADDR)↗ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: op_offset(*args) -> 'bool' - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -96011,25 +92644,25 @@ op_plain_offset(ea, n, base) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module idc: @@ -96068,79 +92701,75 @@ parse_decls(inputtype, flags=0) Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -96156,22 +92785,20 @@ plan_and_wait(sEA, eEA, final_pass=True) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -96187,11 +92814,11 @@ prev_head(ea, minea=0) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -96276,20 +92903,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) -> 'void' + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -96320,8 +92948,10 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -96368,43 +92998,45 @@ readstr(handle) Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -96434,15 +93066,14 @@ rename_array(array_id, newname) Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function resume_process in module idc: @@ -96451,18 +93082,19 @@ resume_process() Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes Get input file md5. Help on function rotate_byte in module idc: @@ -96494,19 +93126,15 @@ rotate_word(x, count) Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -96520,11 +93148,11 @@ save_database(idbname, flags=0) Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -96545,14 +93173,14 @@ sel2para(sel) Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -96656,14 +93284,15 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_color in module idc: @@ -96679,18 +93308,19 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -96706,76 +93336,76 @@ set_default_sreg_value(ea, reg, value) Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -96847,12 +93477,12 @@ set_func_cmt(ea, cmt, repeatable) Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_flags in module idc: @@ -96889,11 +93519,11 @@ set_hash_string(hash_id, key, value) Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function set_inf_attr in module idc: @@ -96916,12 +93546,11 @@ set_local_type(ordinal, input, flags) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -96989,14 +93618,14 @@ set_name(ea, name, flags=0) Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_reg_value in module idc: @@ -97013,22 +93642,21 @@ set_reg_value(value, name) Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -97117,57 +93745,57 @@ set_segment_bounds(ea, startea, endea, flags) Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -97185,11 +93813,11 @@ set_struc_idx(sid, index) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -97206,21 +93834,20 @@ set_tail_owner(tailea, funcea) Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -97239,42 +93866,44 @@ split_sreg_range(ea, reg, value, tag=2) Help on function start_process in module ida_dbg: start_process(*args) -> 'int' - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -97291,38 +93920,39 @@ substr(s, x1, x2) Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function to_ea in module idc: @@ -97343,20 +93973,21 @@ toggle_bnot(ea, n) Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -97415,16 +94046,15 @@ value_is_string(var) Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: @@ -97465,3 +94095,15683 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + only 32/16bit functions can be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block (after a tail call) + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + empty ? function_mode : snippet mode + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + R-records. + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_IF_ENABLED in module ida_kernwin: + + add item only if it is enabled (prevents unusable, greyed-out items) + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom popup menu names. Used to replace labels for the standard + handlers (Insert, Delete, Edit, Refresh). + An empty name means that the default name will be used. + @note: Availability of items in the popup menu is determined by the `CH_CAN_...` + flags. + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable PMF_PUSH_MODE_MASK in module ida_lumina: + + Conflict resolution mode. + +Documentation on variable AMDF_UPGRADE in module ida_lumina: + + apply kvps that seem to be of higher "quality" than what's currently in the IDB + +Documentation on variable AMDF_FORCE in module ida_lumina: + + apply kvps regardless of what's currently in the IDB, possibly removing some + attributes currently present (e.g., name, or prototype could be lost) + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_NOCHECK in module ida_name: + + Don't fail if the name contains invalid characters. If this bit is clear, all + invalid chars (those !is_ident_cp()) will be replaced by SUBSTCHAR List of valid + characters is defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v7.7. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/python/idautils.py b/python/idautils.py index f55f206..0bf2271 100644 --- a/python/idautils.py +++ b/python/idautils.py @@ -35,6 +35,8 @@ import types import os import sys +# TO_REFACTOR_ON_PY2_REMOVAL +# this internal function can be dropped def refs(ea, funcfirst, funcnext): """ Generic reference collector - INTERNAL USE ONLY. @@ -60,6 +62,13 @@ def CodeRefsTo(ea, flow): for ref in CodeRefsTo(get_screen_ea(), 1): print(ref) """ + # TO_REFACTOR_ON_PY2_REMOVAL + # we can use the new generators + # xref = ida_xref.xrefblk_t() + # if flow == 1: + # yield from xref.crefs_to(ea) + # else: + # yield from xref.fcrefs_to(ea) if flow == 1: return refs(ea, ida_xref.get_first_cref_to, ida_xref.get_next_cref_to) else: @@ -81,6 +90,7 @@ def CodeRefsFrom(ea, flow): for ref in CodeRefsFrom(get_screen_ea(), 1): print(ref) """ + # TO_REFACTOR_ON_PY2_REMOVAL if flow == 1: return refs(ea, ida_xref.get_first_cref_from, ida_xref.get_next_cref_from) else: @@ -100,6 +110,7 @@ def DataRefsTo(ea): for ref in DataRefsTo(get_screen_ea()): print(ref) """ + # TO_REFACTOR_ON_PY2_REMOVAL return refs(ea, ida_xref.get_first_dref_to, ida_xref.get_next_dref_to) @@ -116,6 +127,7 @@ def DataRefsFrom(ea): for ref in DataRefsFrom(get_screen_ea()): print(ref) """ + # TO_REFACTOR_ON_PY2_REMOVAL return refs(ea, ida_xref.get_first_dref_from, ida_xref.get_next_dref_from) @@ -144,16 +156,6 @@ def XrefTypeName(typecode): assert typecode in _ref_types, "unknown reference type %d" % typecode return _ref_types[typecode] -def _copy_xref(xref): - """ Make a private copy of the xref class to preserve its contents """ - class _xref(object): - pass - - xr = _xref() - for attr in [ 'frm', 'to', 'iscode', 'type', 'user' ]: - setattr(xr, attr, getattr(xref, attr)) - return xr - def XrefsFrom(ea, flags=0): """ @@ -168,10 +170,7 @@ def XrefsFrom(ea, flags=0): 'from', hex(xref.frm), 'to', hex(xref.to)) """ xref = ida_xref.xrefblk_t() - if xref.first_from(ea, flags): - yield _copy_xref(xref) - while xref.next_from(): - yield _copy_xref(xref) + return xref.refs_from(ea, flags) def XrefsTo(ea, flags=0): @@ -187,10 +186,7 @@ def XrefsTo(ea, flags=0): 'from', hex(xref.frm), 'to', hex(xref.to)) """ xref = ida_xref.xrefblk_t() - if xref.first_to(ea, flags): - yield _copy_xref(xref) - while xref.next_to(): - yield _copy_xref(xref) + return xref.refs_to(ea, flags) def Threads(): @@ -253,18 +249,16 @@ def Functions(start=None, end=None): def Chunks(start): """ Get a list of function chunks + See also ida_funcs.func_tail_iterator_t @param start: address of the function - @return: list of funcion chunks (tuples of the form (start_ea, end_ea)) + @return: list of function chunks (tuples of the form (start_ea, end_ea)) belonging to the function """ func_iter = ida_funcs.func_tail_iterator_t( ida_funcs.get_func( start ) ) - status = func_iter.main() - while status: - chunk = func_iter.chunk() + for chunk in func_iter: yield (chunk.start_ea, chunk.end_ea) - status = next(func_iter) def Modules(): @@ -319,19 +313,13 @@ def Entries(): def FuncItems(start): """ Get a list of function items (instruction or data items inside function boundaries) + See also ida_funcs.func_item_iterator_t @param start: address of the function @return: ea of each item in the function """ - func = ida_funcs.get_func(start) - if not func: - return - fii = ida_funcs.func_item_iterator_t() - ok = fii.set(func) - while ok: - yield fii.current() - ok = fii.next_code() + return ida_funcs.func_item_iterator_t(ida_funcs.get_func(start)) def Structs(): @@ -691,7 +679,12 @@ class _procregs(object): class _cpu(object): "Simple wrapper around get_reg_value/set_reg_value" def __getattr__(self, name): - return idc.get_reg_value(name) + try: + return idc.get_reg_value(name) + except Exception as ex: + raise AttributeError("_cpu: \"{}\" is not a register;" + " inner exception: [{}] {}" + .format(name, type(ex).__name__, ex)) def __setattr__(self, name, value): return idc.set_reg_value(value, name) diff --git a/python/idc.py b/python/idc.py index f78eadf..f71ecec 100644 --- a/python/idc.py +++ b/python/idc.py @@ -70,7 +70,7 @@ import types import sys __EA64__ = ida_idaapi.BADADDR == 0xFFFFFFFFFFFFFFFF -WORDMASK = 0xFFFFFFFFFFFFFFFF if __EA64__ else 0xFFFFFFFF +WORDMASK = 0xFFFFFFFFFFFFFFFF if __EA64__ else 0xFFFFFFFF # just there for bw-compat purposes; please don't use class DeprecatedIDCError(Exception): """ Exception for deprecated function calls @@ -115,8 +115,13 @@ def _IDC_SetAttr(obj, attrmap, attroffs, value): BADADDR = ida_idaapi.BADADDR # Not allowed address value BADSEL = ida_idaapi.BADSEL # Not allowed selector value/number -MAXADDR = ida_ida.MAXADDR & WORDMASK SIZE_MAX = _ida_idaapi.SIZE_MAX +ida_ida.__set_module_dynattrs( + __name__, + { + "MAXADDR" : (lambda: ida_ida.inf_get_privrange_start_ea(), None), + }) + # # Flag bit definitions (for get_full_flags()) # @@ -1748,15 +1753,13 @@ SEARCH_NOBRK = ida_search.SEARCH_NOBRK # don't test ctrl-break SEARCH_NOSHOW = ida_search.SEARCH_NOSHOW # don't display the search progress -def find_text(ea, flag, y, x, searchstr, from_bc695=False): - if not from_bc695: - __warn_once_deprecated_proto_confusion("find_text", "ida_search.find_text") +def find_text(ea, flag, y, x, searchstr): + __warn_once_deprecated_proto_confusion("find_text", "ida_search.find_text") return ida_search.find_text(ea, y, x, searchstr, flag) -def find_binary(ea, flag, searchstr, radix=16, from_bc695=False): - if not from_bc695: - __warn_once_deprecated_proto_confusion("find_binary", "ida_search.find_binary") +def find_binary(ea, flag, searchstr, radix=16): + __warn_once_deprecated_proto_confusion("find_binary", "ida_search.find_binary") endea = flag & 1 and ida_ida.cvar.inf.max_ea or ida_ida.cvar.inf.min_ea return ida_search.find_binary(ea, endea, searchstr, radix, flag) @@ -1918,7 +1921,8 @@ INF_LISTNAMES = 39 # uchar; What names should be included in the li # DISASSEMBLY LISTING DETAILS INF_INDENT = 40 # char; Indention for instructions -INF_COMMENT = 41 # char; Indention for comments +INF_CMT_INDENT = 41 # char; Indention for comments +INF_COMMENT = 41 # for compatibility INF_MARGIN = 42 # ushort; max length of data lines INF_LENXREF = 43 # ushort; max length of line with xrefs INF_OUTFLAGS = 44 # uint32; output flags @@ -1997,7 +2001,7 @@ _INF_attrs_accessors = { INF_CC_SIZE_LL : (ida_ida.inf_get_cc_size_ll, ida_ida.inf_set_cc_size_ll), INF_CC_SIZE_S : (ida_ida.inf_get_cc_size_s, ida_ida.inf_set_cc_size_s), INF_CMTFLAG : (ida_ida.inf_get_cmtflg, ida_ida.inf_set_cmtflg), - INF_COMMENT : (ida_ida.inf_get_comment, ida_ida.inf_set_comment), + INF_CMT_INDENT : (ida_ida.inf_get_cmt_indent, ida_ida.inf_set_cmt_indent), INF_DATABASE_CHANGE_COUNT : (ida_ida.inf_get_database_change_count, ida_ida.inf_set_database_change_count), INF_DATATYPES : (ida_ida.inf_get_datatypes, ida_ida.inf_set_datatypes), INF_DEMNAMES : (ida_ida.inf_get_demnames, ida_ida.inf_set_demnames), @@ -5928,94 +5932,6 @@ def set_flag(off, bit, value): v = v & ~bit set_inf_attr(off, v) -#-------------------------------------------------------------------------- -# Compatibility macros (auto-generated part. Comes first so -# that any re-definition below will override auto-generated part) -if sys.modules["__main__"].IDAPYTHON_COMPAT_695_API: - - # see header.i.in - bc695redef = ida_idaapi.bc695redef - - # although many things have changed in the 'inf' structure, - # let's still try and do the best we can here even though - # some INF_* accessor enumerators don't exist anymore - GetCharPrm=get_inf_attr - GetLongPrm=get_inf_attr - GetShortPrm=get_inf_attr - SetCharPrm=set_inf_attr - SetLongPrm=set_inf_attr - SetShortPrm=set_inf_attr - - #-------------------------------------------------------------------------- - # Compatibility macros (non-auto-generated part) - def CompileEx(inp, isfile): return compile_idc_file(inp) if isfile else compile_idc_text(inp) - - def WriteMap(filepath): - return gen_file(OFILE_MAP, filepath, 0, BADADDR, GENFLG_MAPSEG|GENFLG_MAPNAME) - - def WriteTxt(filepath, ea1, ea2): - return gen_file(OFILE_ASM, filepath, ea1, ea2, 0) - - def WriteExe(filepath): - return gen_file(OFILE_EXE, filepath, 0, BADADDR, 0) - - UTP_STRUCT = ida_typeinf.UTP_STRUCT - UTP_ENUM = ida_typeinf.UTP_ENUM - - - def begin_type_updating(utp): - """ - Begin type updating. Use this function if you - plan to call AddEnumConst or similar type modification functions - many times or from inside a loop - - @param utp: one of UTP_xxxx consts - @return: None - """ - return ida_typeinf.begin_type_updating(utp) - - - def end_type_updating(utp): - """ - End type updating. Refreshes the type system - at the end of type modification operations - - @param utp: one of ida_typeinf.UTP_xxxx consts - @return: None - """ - return ida_typeinf.end_type_updating(utp) - - from idc_bc695 import * - - SendDbgCommand=send_dbg_command - - def MakeFunction(start, end=ida_idaapi.BADADDR): - return ida_funcs.add_func(start, end) - - ApplyType = apply_type - GetManyBytes = get_bytes - GetString = get_strlit_contents - ClearTraceFile = clear_trace - def FindBinary(ea, flag, searchstr, radix=16): - return find_binary(ea, flag, searchstr, radix, from_bc695=True) - def FindText(ea, flag, y, x, text): - return find_text(ea, flag, y, x, text, from_bc695=True) - NextHead = next_head - ParseTypes = parse_decls - PrevHead = prev_head - ProcessUiAction = process_ui_action - SaveBase = save_database - Eval = eval_idc - def MakeStr(ea, endea): - return create_strlit(ea, endea) - - def GetProcessorName(): - return ida_ida.cvar.inf.procname - - def SegStart(ea): return get_segm_start(ea) - def SegEnd(ea): return get_segm_end(ea) - def SetSegmentType(ea, type): return set_segm_type(ea, type) - # Convenience functions: def here(): return get_screen_ea() def is_mapped(ea): return (prev_addr(ea+1)==ea) diff --git a/python/init.py b/python/init.py index 63b78e5..976b9f9 100644 --- a/python/init.py +++ b/python/init.py @@ -129,11 +129,17 @@ if os.getcwd() in sys.path: if not IDAPYTHON_REMOVE_CWD_SYS_PATH: sys.path.append(os.getcwd()) +# Additional $IDAUSR-derived paths +if IDAPYTHON_IDAUSR_SYSPATH: + idausr_python_list = ida_diskio.get_ida_subdirs("python") + for idausr_python in idausr_python_list: + one = os.path.join(idausr_python, str(sys.version_info.major)) + if one not in sys.path: + sys.path.append(one) + if IDAPYTHON_COMPAT_AUTOIMPORT_MODULES: # Import all the required modules from idaapi import get_user_idadir, cvar, Appcall, Form - if IDAPYTHON_COMPAT_695_API: - from idaapi import Choose2 from idc import * from idautils import * import idaapi diff --git a/pywraps.cpp b/pywraps.cpp index 6684df1..c69c42c 100644 --- a/pywraps.cpp +++ b/pywraps.cpp @@ -131,18 +131,18 @@ static Py_ssize_t pyvar_walk_list( py_item = newref_t(PySequence_GetItem(o, i)); else py_item = borref_t(PyList_GetItem(o, i)); - bool ok = py_item != NULL && cb(py_item, i, ud) == CIP_OK; + bool ok = py_item != nullptr && cb(py_item, i, ud) == CIP_OK; if ( ok ) { // We cannot have, at the same time, a 'successful conversion', and // the Python runtime raising an exception. It's up to the callback // implementation to ensure that whatever it did, didn't cause an // error to be set. - QASSERT(30604, PyErr_Occurred() == NULL); + QASSERT(30604, PyErr_Occurred() == nullptr); } else { - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) { qstring m; m.sprnt("Sequence item #%d cannot be converted", int(i)); @@ -198,7 +198,7 @@ Py_ssize_t ida_export PyW_PyListToEaVec(eavec_t *out, PyObject *py_list) if ( PyLong_Check(py_item.o) ) { unsigned long long ull = PyLong_AsUnsignedLongLong(py_item.o); - if ( ull == -1ULL && PyErr_Occurred() != NULL ) + if ( ull == -1ULL && PyErr_Occurred() != nullptr ) return CIP_FAILED; ea = ea_t(ull); } @@ -213,7 +213,7 @@ Py_ssize_t ida_export PyW_PyListToEaVec(eavec_t *out, PyObject *py_list) ea = ea_t(PyLong_AsUnsignedLongLong(py_item.o)); else return CIP_FAILED; - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return CIP_FAILED; #endif } @@ -239,7 +239,7 @@ Py_ssize_t ida_export PyW_PyListToEa64Vec(ea64vec_t *out, PyObject *py_list) if ( PyLong_Check(py_item.o) ) { unsigned long long ull = PyLong_AsUnsignedLongLong(py_item.o); - if ( ull == -1ULL && PyErr_Occurred() != NULL ) + if ( ull == -1ULL && PyErr_Occurred() != nullptr ) return CIP_FAILED; v = uint64(ull); } @@ -254,7 +254,7 @@ Py_ssize_t ida_export PyW_PyListToEa64Vec(ea64vec_t *out, PyObject *py_list) v = uint64(PyLong_AsUnsignedLongLong(py_item.o)); else return CIP_FAILED; - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return CIP_FAILED; #endif } @@ -353,7 +353,7 @@ static int get_pyidc_cvt_type(PyObject *py_var) // Check if this our special by reference object ref_t attr(PyW_TryGetAttrString(py_var, S_PY_IDCCVT_ID_ATTR)); - if ( attr == NULL || !IDAPyIntOrLong_Check(attr.o) ) + if ( attr == nullptr || !IDAPyIntOrLong_Check(attr.o) ) return -1; return int(IDAPyIntOrLong_AsLong(attr.o)); } @@ -439,7 +439,7 @@ static const ext_idcfunc_t opaque_dtor_desc = S_PY_IDC_OPAQUE_T ".dtor_name", py_idc_opaque_dtor, py_idc_cvt_helper_dtor_args, - NULL, + nullptr, 0, 0 }; @@ -466,8 +466,8 @@ static int pyvar_to_idcvar2( return CIP_OK; } - // None / NULL - if ( py_var == NULL || py_var.o == Py_None ) + // None / nullptr + if ( py_var == nullptr || py_var.o == Py_None ) { idc_var->set_long(0); } @@ -623,7 +623,7 @@ static int pyvar_to_idcvar2( { // Get the value attribute ref_t attr(PyW_TryGetAttrString(py_var.o, S_PY_IDCCVT_VALUE_ATTR)); - if ( attr == NULL ) + if ( attr == nullptr ) return false; idc_var->set_int64(PyLong_AsLongLong(attr.o)); return CIP_OK; @@ -634,12 +634,12 @@ static int pyvar_to_idcvar2( case PY_ICID_BYREF: { // BYREF always require this parameter - if ( gvar_sn == NULL ) + if ( gvar_sn == nullptr ) return CIP_FAILED; // Get the value attribute ref_t attr(PyW_TryGetAttrString(py_var.o, S_PY_IDCCVT_VALUE_ATTR)); - if ( attr == NULL ) + if ( attr == nullptr ) return CIP_FAILED; // Create a global variable @@ -671,7 +671,7 @@ static int pyvar_to_idcvar2( { newref_t py_dir(PyObject_Dir(py_var.o)); Py_ssize_t size = PyList_Size(py_dir.o); - if ( py_dir == NULL || !PyList_Check(py_dir.o) || size == 0 ) + if ( py_dir == nullptr || !PyList_Check(py_dir.o) || size == 0 ) return CIP_FAILED; // Create the IDC object idcv_object(idc_var); @@ -685,7 +685,7 @@ static int pyvar_to_idcvar2( #else const char *field_name = PyString_AsString(item.o); #endif - if ( field_name == NULL ) + if ( field_name == nullptr ) continue; size_t len = strlen(field_name); @@ -700,7 +700,7 @@ static int pyvar_to_idcvar2( idc_value_t v; newref_t attr(PyObject_GetAttrString(py_var.o, field_name)); - if ( attr == NULL ) + if ( attr == nullptr ) return CIP_FAILED; else if ( pyvar_to_idcvar1(attr, &v, gvar_sn, visited) < CIP_OK ) return CIP_FAILED; @@ -760,9 +760,9 @@ int ida_export idcvar_to_pyvar( switch ( idc_var.vtype ) { case VT_PVOID: - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { - newref_t nr(PyCapsule_New(idc_var.pvoid, VALID_CAPSULE_NAME, NULL)); + newref_t nr(PyCapsule_New(idc_var.pvoid, VALID_CAPSULE_NAME, nullptr)); *py_var = nr; } else @@ -776,14 +776,14 @@ int ida_export idcvar_to_pyvar( bool as_pylong = (flags & PYWCVTF_INT64_AS_UNSIGNED_PYLONG) != 0; if ( as_pylong ) { - QASSERT(30513, *py_var == NULL); // recycling not supported in this case + QASSERT(30513, *py_var == nullptr); // recycling not supported in this case *py_var = newref_t(PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) idc_var.i64)); return CIP_OK; } else { // Recycle? - if ( *py_var != NULL ) + if ( *py_var != nullptr ) { // Recycling an int64 object? if ( !is_pyidc_cvt_type_int64(py_var->o) ) @@ -793,17 +793,17 @@ int ida_export idcvar_to_pyvar( return CIP_OK; } ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_CVT_INT64)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; - *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, PyLong_FromLongLong(idc_var.i64), NULL)); - if ( PyW_GetError() || *py_var == NULL ) + *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, PyLong_FromLongLong(idc_var.i64), nullptr)); + if ( PyW_GetError() || *py_var == nullptr ) return CIP_FAILED; } break; } case VT_STR: - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { const qstring &s = idc_var.qstr(); if ( (flags & PYWCVTF_STR_AS_BYTES) != 0 ) @@ -816,7 +816,7 @@ int ida_export idcvar_to_pyvar( return CIP_IMMUTABLE; // Cannot recycle immutable object case VT_LONG: // Cannot recycle immutable objects - if ( *py_var != NULL ) + if ( *py_var != nullptr ) { // Recycling an int64 object? if ( !is_pyidc_cvt_type_int64(py_var->o) ) @@ -828,7 +828,7 @@ int ida_export idcvar_to_pyvar( *py_var = newref_t(cvt_to_pylong(idc_var.num)); break; case VT_FLOAT: - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { double x; if ( processor_t::realcvt(&x, (fpvalue_t*)&idc_var.e, (sizeof(x)/2-1)|010) != 1 ) @@ -842,15 +842,15 @@ int ida_export idcvar_to_pyvar( case VT_REF: { - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_CVT_BYREF)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; // Create a byref object with None value. We populate it later - *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, Py_None, NULL)); - if ( PyW_GetError() || *py_var == NULL ) + *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, Py_None, nullptr)); + if ( PyW_GetError() || *py_var == nullptr ) return CIP_FAILED; } int t = get_pyidc_cvt_type(py_var->o); @@ -860,12 +860,12 @@ int ida_export idcvar_to_pyvar( // Dereference // (Since we are not using VREF_COPY flag, we can safely const_cast) idc_value_t *dref_v = deref_idcv(const_cast<idc_value_t *>(&idc_var), VREF_LOOP); - if ( dref_v == NULL ) + if ( dref_v == nullptr ) return CIP_FAILED; // Can we recycle the object? ref_t new_py_val(PyW_TryGetAttrString(py_var->o, S_PY_IDCCVT_VALUE_ATTR)); - if ( new_py_val != NULL ) + if ( new_py_val != nullptr ) { // Recycle t = idcvar_to_pyvar(*dref_v, &new_py_val); @@ -903,16 +903,16 @@ int ida_export idcvar_to_pyvar( bool is_dict = false; // Need to create a new object? - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { // Get skeleton class reference ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_APPCALL_SKEL_OBJ)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; // Call constructor - obj = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, NULL)); - if ( PyW_GetError() || obj == NULL ) + obj = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, nullptr)); + if ( PyW_GetError() || obj == nullptr ) return CIP_FAILED; } else @@ -925,7 +925,7 @@ int ida_export idcvar_to_pyvar( // Walk the IDC attributes and store into python for ( const char *attr_name = first_idcv_attr(&idc_var); - attr_name != NULL; + attr_name != nullptr; attr_name = next_idcv_attr(&idc_var, attr_name) ) { // Get the attribute @@ -955,7 +955,7 @@ int ida_export idcvar_to_pyvar( //------------------------------------------------------------------------- // Converts IDC arguments to Python argument list or just one tuple -// If 'decref' is NULL then 'pargs' will contain one element which is the tuple +// If 'decref' is nullptr then 'pargs' will contain one element which is the tuple bool ida_export pyw_convert_idc_args( const idc_value_t args[], int nargs, @@ -973,9 +973,9 @@ bool ida_export pyw_convert_idc_args( if ( as_tuple ) { py_tuple = newref_t(PyTuple_New(nargs)); - if ( py_tuple == NULL ) + if ( py_tuple == nullptr ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) *errbuf = "Failed to create a new tuple to store arguments!"; return false; } @@ -987,7 +987,7 @@ bool ida_export pyw_convert_idc_args( int cvt = idcvar_to_pyvar(args[i], &py_obj, flags); if ( cvt < CIP_OK ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->sprnt("arg#%d has wrong type %d", i, args[i].vtype); return false; } @@ -1083,7 +1083,7 @@ static error_t idaapi idc_py_invoke0( { PYW_GIL_GET; PyObject *pyfunc = (PyObject *) argv[0].pvoid; - newref_t py_result(PyObject_CallFunctionObjArgs(pyfunc, NULL)); + newref_t py_result(PyObject_CallFunctionObjArgs(pyfunc, nullptr)); // Report Python error as IDC exception qstring err; @@ -1095,7 +1095,7 @@ static error_t idaapi idc_py_invoke0( static const char idc_py_invoke0_args[] = { VT_PVOID, 0 }; static const ext_idcfunc_t idc_py_invoke0_desc = { - S_PYINVOKE0, idc_py_invoke0, idc_py_invoke0_args, NULL, 0, 0 + S_PYINVOKE0, idc_py_invoke0, idc_py_invoke0_args, nullptr, 0, 0 }; //------------------------------------------------------------------------ @@ -1107,11 +1107,11 @@ static bool init_pywraps() // Take a reference to the idaapi python module // (We need it to create instances of certain classes) - if ( ida_idaapi_module == NULL ) + if ( ida_idaapi_module == nullptr ) { // Take a reference to the module so we can create the needed class instances ida_idaapi_module = PyW_TryImportModule(S_PY_IDA_IDAAPI_MODNAME); - if ( ida_idaapi_module == NULL ) + if ( ida_idaapi_module == nullptr ) return false; } @@ -1120,11 +1120,11 @@ static bool init_pywraps() return false; // IDC opaque class not registered? - if ( get_py_idc_cvt_opaque() == NULL ) + if ( get_py_idc_cvt_opaque() == nullptr ) { // Add the class idc_class_t *idc_cvt_opaque = add_idc_class(S_PY_IDC_OPAQUE_T); - if ( idc_cvt_opaque == NULL ) + if ( idc_cvt_opaque == nullptr ) return false; // Register the dtor function @@ -1167,14 +1167,14 @@ ref_t ida_export create_linked_class_instance( PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_module(PyImport_ImportModule(modname)); ref_t result; - if ( py_module != NULL ) + if ( py_module != nullptr ) { ref_t py_class = PyW_TryGetAttrString(py_module.o, clsname); - if ( py_class != NULL ) + if ( py_class != nullptr ) { - newref_t py_lnk(PyCapsule_New(lnk, VALID_CAPSULE_NAME, NULL)); - ref_t py_obj = newref_t(PyObject_CallFunctionObjArgs(py_class.o, py_lnk.o, NULL)); - if ( !PyW_GetError() && py_obj != NULL ) + newref_t py_lnk(PyCapsule_New(lnk, VALID_CAPSULE_NAME, nullptr)); + ref_t py_obj = newref_t(PyObject_CallFunctionObjArgs(py_class.o, py_lnk.o, nullptr)); + if ( !PyW_GetError() && py_obj != nullptr ) result = py_obj; } } @@ -1187,7 +1187,7 @@ ref_t ida_export create_linked_class_instance( // This function takes a reference to the idaapi module and keeps the reference static ref_t get_idaapi_attr_by_id(const int class_id) { - if ( class_id >= PY_CLSID_LAST || ida_idaapi_module == NULL ) + if ( class_id >= PY_CLSID_LAST || ida_idaapi_module == nullptr ) return ref_t(); // Some class names. The array is parallel with the PY_CLSID_xxx consts @@ -1206,7 +1206,7 @@ static ref_t get_idaapi_attr_by_id(const int class_id) static ref_t get_idaapi_attr(const char *attrname) { PYW_GIL_CHECK_LOCKED_SCOPE(); - return ida_idaapi_module == NULL + return ida_idaapi_module == nullptr ? ref_t() : PyW_TryGetAttrString(ida_idaapi_module.o, attrname); } @@ -1220,13 +1220,13 @@ bool ida_export PyW_GetStringAttr( { PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_attr(PyW_TryGetAttrString(py_obj, attr_name)); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return false; return IDAPyStr_Check(py_attr.o) != 0 && IDAPyStr_AsUTF8(str, py_attr.o); } //------------------------------------------------------------------------ -// Returns an attribute or NULL +// Returns an attribute or nullptr // No errors will be set if the attribute did not exist ref_t ida_export PyW_TryGetAttrString(PyObject *py_obj, const char *attr) { @@ -1243,7 +1243,7 @@ ref_t ida_export PyW_TryImportModule(const char *name) { PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t result(PyImport_ImportModule(name)); - if ( result == NULL && PyErr_Occurred() ) + if ( result == nullptr && PyErr_Occurred() ) PyErr_Clear(); return result; } @@ -1274,9 +1274,9 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) #define SETNUM(numexpr, is64_expr) \ do \ { \ - if ( num != NULL ) \ + if ( num != nullptr ) \ *num = numexpr; \ - if ( is_64 != NULL ) \ + if ( is_64 != nullptr ) \ *is_64 = is64_expr; \ } while ( false ) @@ -1330,7 +1330,7 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) // Try to parse as uint64 unsigned PY_LONG_LONG ull = PyLong_AsUnsignedLongLong(py_var); PyObject *err = PyErr_Occurred(); - if ( err == NULL ) //-V547 'err == 0' is always false + if ( err == nullptr ) //-V547 'err == 0' is always false { SETNUM(uint64(ull), true); break; @@ -1341,7 +1341,7 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) { newref_t py_mask(Py_BuildValue("K", 0xFFFFFFFFFFFFFFFFull)); newref_t py_num(PyNumber_And(py_var, py_mask.o)); - if ( py_num != NULL && py_mask != NULL ) + if ( py_num != nullptr && py_mask != nullptr ) { PyErr_Clear(); ull = PyLong_AsUnsignedLongLong(py_num.o); @@ -1373,7 +1373,7 @@ bool ida_export PyW_IsSequenceType(PyObject *obj) } Py_ssize_t sz = PySequence_Size(obj); - if ( sz == -1 || PyErr_Occurred() != NULL ) + if ( sz == -1 || PyErr_Occurred() != nullptr ) { PyErr_Clear(); rc = false; @@ -1389,7 +1389,7 @@ bool ida_export PyW_ObjectToString(PyObject *obj, qstring *out) { PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_str(PyObject_Str(obj)); - bool ok = py_str != NULL; + bool ok = py_str != nullptr; #ifdef PY3 if ( ok ) IDAPyStr_AsUTF8(out, py_str.o); @@ -1409,10 +1409,10 @@ bool ida_export PyW_GetError(qstring *out, bool clear_err) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) return false; - if ( out != NULL ) + if ( out != nullptr ) { // Get the exception info (this also clears the exception) PyObject *err_type, *err_value, *err_traceback; @@ -1421,21 +1421,21 @@ bool ida_export PyW_GetError(qstring *out, bool clear_err) // Try helper first ref_t py_ret; ref_t py_fmtexc(get_idaapi_attr(S_IDAAPI_FORMATEXC)); - if ( py_fmtexc != NULL ) + if ( py_fmtexc != nullptr ) { py_ret = newref_t(PyObject_CallFunctionObjArgs( py_fmtexc.o, err_type, err_value, err_traceback, - NULL)); + nullptr)); } // and fallback to simple stringification if needed - if ( py_ret == NULL ) + if ( py_ret == nullptr ) py_ret = newref_t(PyObject_Str(err_value)); - if ( py_ret != NULL ) + if ( py_ret != nullptr ) IDAPyStr_AsUTF8(out, py_ret.o); else *out = "IDAPython: unknown error"; @@ -1482,9 +1482,9 @@ void *ida_export pyobj_get_clink(PyObject *pyobj) // Try to query the link attribute ref_t attr(PyW_TryGetAttrString(pyobj, S_CLINK_NAME)); - void *t = attr != NULL && PyCapsule_IsValid(attr.o, VALID_CAPSULE_NAME) + void *t = attr != nullptr && PyCapsule_IsValid(attr.o, VALID_CAPSULE_NAME) ? PyCapsule_GetPointer(attr.o, VALID_CAPSULE_NAME) - : NULL; + : nullptr; return t; } @@ -1493,7 +1493,7 @@ void *ida_export pyobj_get_clink(PyObject *pyobj) //------------------------------------------------------------------------- lookup_entry_t &ida_export lookup_info_t_new_entry(lookup_info_t *_this, py_customidamemo_t *py_view) { - QASSERT(30454, py_view != NULL && !_this->find_by_py_view(NULL, py_view)); + QASSERT(30454, py_view != nullptr && !_this->find_by_py_view(nullptr, py_view)); lookup_entry_t &e = _this->entries.push_back(); e.py_view = py_view; return e; @@ -1503,9 +1503,9 @@ lookup_entry_t &ida_export lookup_info_t_new_entry(lookup_info_t *_this, py_cust void ida_export lookup_info_t_commit(lookup_info_t *_this, lookup_entry_t &e, TWidget *view) { QASSERT(30455, &e >= _this->entries.begin() && &e < _this->entries.end()); - QASSERT(30456, view != NULL && e.py_view != NULL - && !_this->find_by_view(NULL, view) - && _this->find_by_py_view(NULL, e.py_view)); + QASSERT(30456, view != nullptr && e.py_view != nullptr + && !_this->find_by_view(nullptr, view) + && _this->find_by_py_view(nullptr, e.py_view)); e.view = view; } @@ -1516,7 +1516,7 @@ void ida_export lookup_info_t_commit(lookup_info_t *_this, lookup_entry_t &e, TW const lookup_entry_t &e = *it; \ if ( e.crit == crit ) \ { \ - if ( out_##res != NULL ) \ + if ( out_##res != nullptr ) \ *out_##res = e.res; \ return true; \ } \ @@ -1574,10 +1574,10 @@ PyObject *ida_export py_customidamemo_t_create_groups( if ( !PyDict_Check(item.o) ) continue; borref_t nodes(PyDict_GetItemString(item.o, "nodes")); - if ( nodes.o == NULL || !PySequence_Check(nodes.o) ) + if ( nodes.o == nullptr || !PySequence_Check(nodes.o) ) continue; borref_t text(PyDict_GetItemString(item.o, "text")); - if ( text.o == NULL || !IDAPyStr_Check(text.o) ) + if ( text.o == nullptr || !IDAPyStr_Check(text.o) ) continue; group_crinfo_t gi; Py_ssize_t nodes_cnt = PySequence_Size(nodes.o); @@ -1667,12 +1667,12 @@ PyObject *ida_export py_customidamemo_t_set_groups_visibility( //------------------------------------------------------------------------- bool ida_export py_customidamemo_t_bind(py_customidamemo_t *_this, PyObject *self, TWidget *view) { - if ( _this->self != NULL || _this->view != NULL ) + if ( _this->self != nullptr || _this->view != nullptr ) return false; PYGLOG("%p: py_customidamemo_t::bind(self=%p, view=%p)\n", _this, _this->self.o, _this->view); PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_cobj(PyCapsule_New(_this, VALID_CAPSULE_NAME, NULL)); + newref_t py_cobj(PyCapsule_New(_this, VALID_CAPSULE_NAME, nullptr)); PyObject_SetAttrString(self, S_M_THIS, py_cobj.o); _this->self = borref_t(self); @@ -1683,14 +1683,14 @@ bool ida_export py_customidamemo_t_bind(py_customidamemo_t *_this, PyObject *sel //------------------------------------------------------------------------- void ida_export py_customidamemo_t_unbind(py_customidamemo_t *_this, bool clear_view) { - if ( _this->self == NULL ) + if ( _this->self == nullptr ) return; PYGLOG("%p: py_customidamemo_t::unbind(); self.o=%p, view=%p\n", _this, _this->self.o, _this->view); PYW_GIL_CHECK_LOCKED_SCOPE(); PyObject_SetAttrString(_this->self.o, S_M_THIS, Py_None); - _this->self = newref_t(NULL); + _this->self = newref_t(nullptr); if ( clear_view ) - _this->view = NULL; + _this->view = nullptr; } //------------------------------------------------------------------------- @@ -1715,13 +1715,13 @@ bool ida_export py_customidamemo_t_collect_pyobject_callbacks( ref_t attr(PyW_TryGetAttrString(o, cbid.name.c_str())); int have = cbid.have; // Mandatory fields not present? - if ( (attr == NULL && have <= 0) + if ( (attr == nullptr && have <= 0) // Mandatory callback fields present but not callable? - || (attr != NULL && have >= 0 && PyCallable_Check(attr.o) == 0) ) + || (attr != nullptr && have >= 0 && PyCallable_Check(attr.o) == 0) ) { return false; } - if ( have > 0 && attr != NULL ) + if ( have > 0 && attr != nullptr ) _this->cb_flags |= have; } @@ -1845,7 +1845,7 @@ ref_t ida_export try_create_swig_wrapper(ref_t mod, const char *clsname, void *c wname.sprnt("%s__from_ptrval__", clsname); ref_t res; ref_t py_cls_wrapper_inst(PyW_TryGetAttrString(mod.o, wname.c_str())); - if ( py_cls_wrapper_inst != NULL ) + if ( py_cls_wrapper_inst != nullptr ) { uninterruptible_op_t op; res = newref_t(PyObject_CallFunction(py_cls_wrapper_inst.o, "(K)", uint64(cobj))); @@ -1859,20 +1859,20 @@ ssize_t ida_export get_callable_arg_count(ref_t callable) PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_module(PyImport_ImportModule("inspect")); ssize_t cnt = -1; - if ( py_module != NULL ) + if ( py_module != nullptr ) { #ifdef PY3 ref_t py_fun = PyW_TryGetAttrString(py_module.o, "getfullargspec"); #else ref_t py_fun = PyW_TryGetAttrString(py_module.o, "getargspec"); #endif - if ( py_fun != NULL ) + if ( py_fun != nullptr ) { - newref_t py_tuple(PyObject_CallFunctionObjArgs(py_fun.o, callable.o, NULL)); - if ( py_tuple != NULL && PyTuple_Check(py_tuple.o) ) + newref_t py_tuple(PyObject_CallFunctionObjArgs(py_fun.o, callable.o, nullptr)); + if ( py_tuple != nullptr && PyTuple_Check(py_tuple.o) ) { borref_t py_args(PyTuple_GetItem(py_tuple.o, 0)); - if ( py_args != NULL && PySequence_Check(py_args.o) ) + if ( py_args != nullptr && PySequence_Check(py_args.o) ) cnt = PySequence_Length(py_args.o); } } @@ -1956,7 +1956,7 @@ bool ida_export idapython_convert_cli_completions( int *out_match_end, ref_t py_res) { - bool ok = py_res != NULL + bool ok = py_res != nullptr && PyTuple_Check(py_res.o) && PyTuple_Size(py_res.o) == 3; if ( ok ) @@ -1972,7 +1972,7 @@ bool ida_export idapython_convert_cli_completions( { *out_match_start = IDAPyInt_AsLong(i1.o); *out_match_end = IDAPyInt_AsLong(i2.o); - ok = PyErr_Occurred() == NULL; + ok = PyErr_Occurred() == nullptr; } else { diff --git a/pywraps.hpp b/pywraps.hpp index 7e0a498..ee4500e 100644 --- a/pywraps.hpp +++ b/pywraps.hpp @@ -248,7 +248,7 @@ struct ref_t { PyObject *o; - ref_t() : o(NULL) {} + ref_t() : o(nullptr) {} ref_t(const ref_t &other) : o(other.o) { incref(); } ~ref_t() { decref(); } ref_t &operator=(const ref_t &other) @@ -272,13 +272,13 @@ struct ref_t PyObject *was = o; o = other.o; incref(); - if ( was != NULL ) + if ( was != nullptr ) Py_DECREF(was); return *this; } - void incref() const { if ( o != NULL ) Py_INCREF(o); } - void decref() const { if ( o != NULL ) { QASSERT(30469, o->ob_refcnt > 0); Py_DECREF(o); } } + void incref() const { if ( o != nullptr ) Py_INCREF(o); } + void decref() const { if ( o != nullptr ) { QASSERT(30469, o->ob_refcnt > 0); Py_DECREF(o); } } bool operator==(PyObject *other) const { return o == other; } bool operator!=(PyObject *other) const { return !((*this) == other); } @@ -310,7 +310,7 @@ struct newref_t : public ref_t newref_t(PyObject *_o) { #ifdef _DEBUG - QASSERT(30409, _o == NULL || _o->ob_refcnt >= 1); + QASSERT(30409, _o == nullptr || _o->ob_refcnt >= 1); #endif o = _o; } @@ -366,11 +366,11 @@ GCC_DIAG_OFF(return-type-c-linkage); #endif -// Tries to import a module and swallows the exception if it fails and returns NULL +// Tries to import a module and swallows the exception if it fails and returns nullptr // Return value: New reference. idaman ref_t ida_export PyW_TryImportModule(const char *name); -// Tries to get an attribute and swallows the exception if it fails and returns NULL +// Tries to get an attribute and swallows the exception if it fails and returns nullptr idaman ref_t ida_export PyW_TryGetAttrString(PyObject *py_var, const char *attr); // Converts a Python number (LONGLONG or normal integer) to an IDC variable (VT_LONG or VT_INT64) @@ -383,13 +383,13 @@ idaman bool ida_export PyW_GetStringAttr( qstring *str); // Deprecated. Please use specific functions instead. -idaman bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64 = NULL); +idaman bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64 = nullptr); // Checks if an Python object can be treated like a sequence idaman bool ida_export PyW_IsSequenceType(PyObject *obj); // Returns an error string from the last exception (and clears it) -idaman bool ida_export PyW_GetError(qstring *out = NULL, bool clear_err = true); +idaman bool ida_export PyW_GetError(qstring *out = nullptr, bool clear_err = true); // If an error occurred (it calls PyGetError) it displays it and return TRUE // This function is used when calling callbacks @@ -421,7 +421,7 @@ idaman bool ida_export pyw_convert_idc_args( int nargs, ref_vec_t &pargs, uint32 flags, - qstring *errbuf = NULL); + qstring *errbuf = nullptr); // Converts from IDC to Python // We support converting VT_REF IDC variable types @@ -436,14 +436,14 @@ idaman int ida_export idcvar_to_pyvar( idaman int ida_export pyvar_to_idcvar( const ref_t &py_var, idc_value_t *idc_var, - int *gvar_sn=NULL); + int *gvar_sn=nullptr); //------------------------------------------------------------------------- // Walks a Python list or Sequence and calls the callback idaman Py_ssize_t ida_export pyvar_walk_list( PyObject *py_list, - int (idaapi *cb)(const ref_t &py_item, Py_ssize_t index, void *ud)=NULL, - void *ud = NULL); + int (idaapi *cb)(const ref_t &py_item, Py_ssize_t index, void *ud)=nullptr, + void *ud = nullptr); // Converts a vector to a Python list object idaman ref_t ida_export PyW_SizeVecToPyList(const sizevec_t &vec); @@ -499,7 +499,7 @@ struct pycall_res_t PyErr_Print(); } - inline bool success() const { return result.o != NULL; } + inline bool success() const { return result.o != nullptr; } newref_t result; @@ -516,7 +516,7 @@ class lookup_info_t; class py_customidamemo_t; struct lookup_entry_t { - lookup_entry_t() : view(NULL), py_view(NULL) {} + lookup_entry_t() : view(nullptr), py_view(nullptr) {} TWidget *view; py_customidamemo_t *py_view; @@ -713,8 +713,8 @@ inline void *view_extract_this(PyObject *self) { PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_this(PyW_TryGetAttrString(self, S_M_THIS)); - if ( py_this == NULL || !PyCapsule_IsValid(py_this.o, VALID_CAPSULE_NAME) ) - return NULL; + if ( py_this == nullptr || !PyCapsule_IsValid(py_this.o, VALID_CAPSULE_NAME) ) + return nullptr; return PyCapsule_GetPointer(py_this.o, VALID_CAPSULE_NAME); } @@ -736,7 +736,7 @@ DECL_REG_UNREG_REFCOUNTED(udt_type_data_t); // Context structure used by register/unregister timer struct py_timer_ctx_t { - py_timer_ctx_t() : timer_id(NULL) {} + py_timer_ctx_t() : timer_id(nullptr) {} qtimer_t timer_id; ref_t pyfunc; }; @@ -791,22 +791,13 @@ struct idapython_plugin_config_t run_script_t() : when(RSW_UNKNOWN) {} }; run_script_t run_script; - uint32 execution_timeout; - bool alert_auto_scripts; - bool remove_cwd_sys_path; - bool autoimport_compat_idaapi; - bool autoimport_compat_ida695; - bool namespace_aware; - bool repl_use_sys_displayhook; - - idapython_plugin_config_t() - : execution_timeout(0), - alert_auto_scripts(true), - remove_cwd_sys_path(false), - autoimport_compat_idaapi(true), - autoimport_compat_ida695(false), - namespace_aware(true), - repl_use_sys_displayhook(true) {} + uint32 execution_timeout = 0; + bool alert_auto_scripts = true; + bool remove_cwd_sys_path = false; + bool autoimport_compat_idaapi = true; + bool namespace_aware = true; + bool repl_use_sys_displayhook = true; + bool idausr_syspath = true; }; //------------------------------------------------------------------------- @@ -1022,7 +1013,7 @@ private: PyObject *globals, qstring *errbuf, const char *idaapi_executor_func_name = S_IDAAPI_EXECSCRIPT, - idc_value_t *second_res = NULL, + idc_value_t *second_res = nullptr, bool want_tuple = false); bool _run_user_script(); @@ -1042,13 +1033,12 @@ private: }; idaman idapython_plugin_t *ida_export get_plugin_instance(); -idaman bool ida_export is_api695_compat_enabled(); //------------------------------------------------------------------------- py_customidamemo_t::py_customidamemo_t() : cb_flags(0), - self(newref_t(NULL)), - view(NULL) + self(newref_t(nullptr)), + view(nullptr) { PYGLOG("%p: py_customidamemo_t()\n", this); } @@ -1087,8 +1077,8 @@ struct hooks_base_t typedef std::map<int,uchar> has_nondef_map_t; has_nondef_map_t has_nondef; - bool hook() { return cb != NULL && idapython_hook_to_notification_point(type, cb, this, true); } - bool unhook() { return cb != NULL && idapython_unhook_from_notification_point(type, cb, this); } + bool hook() { return cb != nullptr && idapython_hook_to_notification_point(type, cb, this, true); } + bool unhook() { return cb != nullptr && idapython_unhook_from_notification_point(type, cb, this); } bool call_requires_new_execution() const { return (flags & HBF_CALL_WITH_NEW_EXEC) != 0; } bool has_fixed_method_set() const { return (flags & HBF_VOLATILE_METHOD_SET) == 0; } @@ -1122,9 +1112,9 @@ protected: ref_t py_id; if ( PyObject_HasAttrString(self, "id") ) py_id = newref_t(PyObject_GetAttrString(self, "id")); - if ( py_id == NULL || !IDAPyStr_Check(py_id.o) ) + if ( py_id == nullptr || !IDAPyStr_Check(py_id.o) ) py_id = newref_t(PyObject_Repr(self)); - if ( py_id != NULL && IDAPyStr_Check(py_id.o) ) + if ( py_id != nullptr && IDAPyStr_Check(py_id.o) ) IDAPyStr_AsUTF8(&identifier, py_id.o); } @@ -1133,20 +1123,20 @@ protected: qstring buf(class_name); QASSERT(30589, !buf.empty()); char *p = qstrchr(buf.begin(), '.'); - QASSERT(30590, p != NULL); + QASSERT(30590, p != nullptr); *p++ = '\0'; newref_t py_mod(PyImport_ImportModule(buf.c_str())); #ifdef TESTABLE_BUILD - QASSERT(30591, py_mod != NULL); + QASSERT(30591, py_mod != nullptr); #endif - if ( py_mod != NULL ) + if ( py_mod != nullptr ) { newref_t py_def_class(PyObject_GetAttrString(py_mod.o, p)); newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); #ifdef TESTABLE_BUILD - QASSERT(30592, py_def_class != NULL && py_this_class != NULL); + QASSERT(30592, py_def_class != nullptr && py_this_class != nullptr); #endif - if ( py_def_class != NULL && py_this_class != NULL ) + if ( py_def_class != nullptr && py_this_class != nullptr ) { for ( size_t i = 0; i < count; ++i ) { @@ -1155,30 +1145,21 @@ protected: newref_t py_def_meth(PyObject_GetAttrString(py_def_class.o, cur.method_name)); newref_t py_this_meth(PyObject_GetAttrString(py_this_class.o, cur.method_name)); #ifdef TESTABLE_BUILD - QASSERT(30593, py_def_meth != NULL && py_this_meth != NULL); + QASSERT(30593, py_def_meth != nullptr && py_this_meth != nullptr); #endif - if ( py_def_meth != NULL && py_this_meth != NULL ) + if ( py_def_meth != nullptr && py_this_meth != nullptr ) { -#ifdef BC695 - if ( PyObject_HasAttrString(py_def_meth.o, "bc695_trampoline") > 0 ) + if ( PyObject_HasAttrString(py_def_meth.o, "__trampoline") > 0 ) { - _has_nondef = 3; + _has_nondef = 2; } else -#endif { - if ( PyObject_HasAttrString(py_def_meth.o, "__trampoline") > 0 ) - { - _has_nondef = 2; - } - else - { #ifdef PY3 - _has_nondef = PyObject_RichCompareBool(py_this_meth.o, py_def_meth.o, Py_EQ) == 0 ? 1 : 0; + _has_nondef = PyObject_RichCompareBool(py_this_meth.o, py_def_meth.o, Py_EQ) == 0 ? 1 : 0; #else - _has_nondef = PyObject_Compare(py_this_meth.o, py_def_meth.o) != 0 ? 1 : 0; + _has_nondef = PyObject_Compare(py_this_meth.o, py_def_meth.o) != 0 ? 1 : 0; #endif - } } } has_nondef[cur.code] = _has_nondef; @@ -1187,30 +1168,29 @@ protected: } } - void ensure_no_method_when_no_695_compat( + void ensure_no_method( PyObject *self, const char *forbidden_method_name, const char *replacement_method_name) { - if ( !is_api695_compat_enabled() ) + if ( PyObject_HasAttrString(self, "__class__") ) { - if ( PyObject_HasAttrString(self, "__class__") ) + newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); + if ( py_this_class != nullptr + && PyObject_HasAttrString(py_this_class.o, forbidden_method_name) ) { - newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); - if ( py_this_class != NULL - && PyObject_HasAttrString(py_this_class.o, forbidden_method_name) ) - { - msg("WARNING: The method \"%s::%s\" won't be called (it has been replaced with \"%s::%s\")\n", - class_name, forbidden_method_name, class_name, replacement_method_name); - } + msg("WARNING: The method \"%s::%s\" won't be called (it has been replaced with \"%s::%s\")\n", + class_name, forbidden_method_name, class_name, replacement_method_name); } } } - qstring dump_state( + PyObject *dump_state( const event_code_to_method_name_t *mappings, - size_t mappings_size) const + size_t mappings_size, + bool assert_all_reimplemented) const { + qstrvec_t missing_reimpls; qstring buf; #ifdef TESTABLE_BUILD buf.sprnt("%s(this=%p) \"%s\" {type=%d, cb=%p, flags=%x}", @@ -1230,6 +1210,27 @@ protected: how = " (as 6.95 bw-compat)"; buf.cat_sprnt("\n\treimplements \"%s\"%s", m.method_name, how); } + else + { + missing_reimpls.push_back(m.method_name); + } + } + const size_t nmr = missing_reimpls.size(); + if ( assert_all_reimplemented && nmr > 0 ) + { + qstring ebuf; + for ( size_t i = 0; i < nmr; ++i ) + { + if ( !ebuf.empty() ) + ebuf.append(", ", 2); + ebuf.append(missing_reimpls[i]); + } + PyErr_Format(PyExc_NotImplementedError, + "%s(this=%p) \"%s\" {type=%d, cb=%p, flags=%x} is " + "missing reimplementations for: \"%s\"", + class_name, this, identifier.c_str(), int(type), cb, + flags, ebuf.c_str()); + return nullptr; } } else @@ -1243,7 +1244,7 @@ protected: qnotused(mappings); qnotused(mappings_size); #endif - return buf; + return IDAPyStr_FromUTF8(buf); } }; diff --git a/pywraps/py_auto.py b/pywraps/py_auto.py deleted file mode 100644 index 5996d14..0000000 --- a/pywraps/py_auto.py +++ /dev/null @@ -1,14 +0,0 @@ - -#<pycode_BC695(py_auto)> -analyze_area = plan_and_wait -autoCancel = auto_cancel -autoIsOk = auto_is_ok -autoMark = auto_mark -autoUnmark = auto_unmark -autoWait = auto_wait - -noUsed = plan_ea -setStat = set_ida_state -showAddr = show_addr -showAuto = show_auto -#</pycode_BC695(py_auto)> diff --git a/pywraps/py_bytes.hpp b/pywraps/py_bytes.hpp index 5086658..9c513ed 100644 --- a/pywraps/py_bytes.hpp +++ b/pywraps/py_bytes.hpp @@ -2,25 +2,6 @@ #define __PY_IDA_BYTES__ //<code(py_bytes)> -//------------------------------------------------------------------------ -static bool idaapi py_testf_cb(flags_t flags, void *ud) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_flags(PyLong_FromUnsignedLong(flags)); - newref_t result(PyObject_CallFunctionObjArgs((PyObject *) ud, py_flags.o, NULL)); - return result != NULL && PyObject_IsTrue(result.o); -} - -//------------------------------------------------------------------------ -// Wraps the (next|prev)that() -static ea_t py_npthat(ea_t ea, ea_t bound, PyObject *py_callable, bool next) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !PyCallable_Check(py_callable) ) - return BADADDR; - else - return (next ? next_that : prev_that)(ea, bound, py_testf_cb, py_callable); -} //--------------------------------------------------------------------------- static int idaapi py_visit_patched_bytes_cb( @@ -40,7 +21,7 @@ static int idaapi py_visit_patched_bytes_cb( o, v)); PyW_ShowCbErr("visit_patched_bytes"); - return (py_result != NULL && IDAPyInt_Check(py_result.o)) ? IDAPyInt_AsLong(py_result.o) : 0; + return (py_result != nullptr && IDAPyInt_Check(py_result.o)) ? IDAPyInt_AsLong(py_result.o) : 0; } //------------------------------------------------------------------------- @@ -63,7 +44,7 @@ static bool py_do_get_bytes( int gmb_flags) { PYW_GIL_CHECK_LOCKED_SCOPE(); - bool has_mask = out_py_mask != NULL; + bool has_mask = out_py_mask != nullptr; do { if ( size <= 0 ) @@ -71,8 +52,8 @@ static bool py_do_get_bytes( // Allocate memory via Python - newref_t py_bytes(IDAPyBytes_FromMemAndSize(NULL, Py_ssize_t(size))); - if ( py_bytes == NULL ) + newref_t py_bytes(IDAPyBytes_FromMemAndSize(nullptr, Py_ssize_t(size))); + if ( py_bytes == nullptr ) break; bytevec_t mask; @@ -84,7 +65,7 @@ static bool py_do_get_bytes( size, ea, gmb_flags, - has_mask ? mask.begin() : NULL); + has_mask ? mask.begin() : nullptr); if ( code < 0 ) break; @@ -94,7 +75,7 @@ static bool py_do_get_bytes( newref_t py_mask(IDAPyBytes_FromMemAndSize( (const char *) mask.begin(), mask.size())); - if ( py_mask == NULL ) + if ( py_mask == nullptr ) break; py_mask.incref(); *out_py_mask = py_mask.o; @@ -140,33 +121,6 @@ static int py_visit_patched_bytes(ea_t ea1, ea_t ea2, PyObject *py_callable) return visit_patched_bytes(ea1, ea2, py_visit_patched_bytes_cb, py_callable); } -//------------------------------------------------------------------------ -/* -#<pydoc> -def next_that(ea, maxea, callable): - """ - Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. - - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. - @return: the found address or BADADDR. - """ - pass -#</pydoc> -*/ -static ea_t py_next_that(ea_t ea, ea_t maxea, PyObject *callable) -{ - return py_npthat(ea, maxea, callable, true); -} - -//--------------------------------------------------------------------------- -static ea_t py_prev_that(ea_t ea, ea_t minea, PyObject *callable) -{ - return py_npthat(ea, minea, callable, false); -} - //------------------------------------------------------------------------ /* #<pydoc> @@ -182,8 +136,8 @@ def get_bytes(ea, size): */ static PyObject *py_get_bytes(ea_t ea, unsigned int size, int gmb_flags=GMB_READALL) { - PyObject *py_bytes = NULL; - if ( py_do_get_bytes(&py_bytes, NULL, ea, size, gmb_flags) ) + PyObject *py_bytes = nullptr; + if ( py_do_get_bytes(&py_bytes, nullptr, ea, size, gmb_flags) ) return py_bytes; else Py_RETURN_NONE; @@ -206,8 +160,8 @@ def get_bytes_and_mask(ea, size, mask): */ static PyObject *py_get_bytes_and_mask(ea_t ea, unsigned int size, int gmb_flags=GMB_READALL) { - PyObject *py_bytes = NULL; - PyObject *py_mask = NULL; + PyObject *py_bytes = nullptr; + PyObject *py_mask = nullptr; if ( py_do_get_bytes(&py_bytes, &py_mask, ea, size, gmb_flags) ) return Py_BuildValue("(OO)", py_bytes, py_mask); else @@ -222,14 +176,12 @@ STRCONV_ESCAPE = 0x00000001 # convert non-printable characters to C escapes (\ def get_strlit_contents(ea, len, type, flags = 0): """ - Get bytes contents at location, possibly converted. + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string @param len: length of the string in bytes (including terminating 0) @@ -254,7 +206,7 @@ static PyObject *py_get_strlit_contents( len = uint64(-1); qstring buf; if ( len != uint64(-1) && ea_t(ea + len) < ea - || get_strlit_contents(&buf, ea, len, type, NULL, flags) < 0 ) + || get_strlit_contents(&buf, ea, len, type, nullptr, flags) < 0 ) { Py_RETURN_NONE; } @@ -285,13 +237,13 @@ static ea_t py_bin_search( const size_t len = image.size(); const uchar *mask = imask.begin(); bytevec_t lmask; - if ( mask != NULL ) + if ( mask != nullptr ) { if ( *mask == 0xFF ) { // a value of '0xFF' in the first byte meant "all bytes defined". We - // can thus turn that into a NULL mask. - mask = NULL; + // can thus turn that into a nullptr mask. + mask = nullptr; } else { diff --git a/pywraps/py_bytes.py b/pywraps/py_bytes.py deleted file mode 100644 index 5344a06..0000000 --- a/pywraps/py_bytes.py +++ /dev/null @@ -1,230 +0,0 @@ - -#<pycode(py_bytes)> -#</pycode(py_bytes)> - - -#<pycode_BC695(py_bytes)> -ACFOPT_ASCII=0 -ACFOPT_CONVMASK=0 -ACFOPT_ESCAPE=STRCONV_ESCAPE -ACFOPT_UTF16=0 -ACFOPT_UTF8=0 -DOUNK_DELNAMES=DELIT_DELNAMES -DOUNK_EXPAND=DELIT_EXPAND -DOUNK_NOTRUNC=DELIT_NOTRUNC -DOUNK_SIMPLE=DELIT_SIMPLE -FF_ASCI=FF_STRLIT -FF_DWRD=FF_DWORD -FF_OWRD=FF_OWORD -FF_QWRD=FF_QWORD -FF_STRU=FF_STRUCT -FF_TBYT=FF_TBYTE -FF_VAR=0 -FF_YWRD=FF_YWORD -FF_ZWRD=FF_ZWORD -GFE_NOVALUE=0 -add_hidden_area=add_hidden_range -asciflag=strlit_flag -delValue=del_value -del_hidden_area=del_hidden_range -do16bit=create_16bit_data -do32bit=create_32bit_data -doAlign=create_align -doByte=create_byte -doCustomData=create_custdata -doDouble=create_double -doDwrd=create_dword -doExtra=ida_idaapi._BC695.false_p -doFloat=create_float -doImmd=set_immd -doOwrd=create_oword -doPackReal=create_packed_real -doQwrd=create_qword -doStruct=create_struct -doTbyt=create_tbyte -doWord=create_word -doYwrd=create_yword -doZwrd=create_zword -do_data_ex=create_data -do_unknown=del_items -def do_unknown_range(ea, size, flags): - return del_items(ea, flags, size) # swap 2 last args -dwrdflag=dword_flag -f_hasRef=f_has_xref -f_isASCII=f_is_strlit -f_isAlign=f_is_align -f_isByte=f_is_byte -f_isCode=f_is_code -f_isCustom=f_is_custom -f_isData=f_is_data -f_isDouble=f_is_double -f_isDwrd=f_is_dword -f_isFloat=f_is_float -f_isHead=f_is_head -f_isNotTail=f_is_not_tail -f_isOwrd=f_is_oword -f_isPackReal=f_is_pack_real -f_isQwrd=f_is_qword -f_isStruct=f_is_struct -f_isTail=f_is_tail -f_isTbyt=f_is_tbyte -f_isWord=f_is_word -f_isYwrd=f_is_yword -getDefaultRadix=get_default_radix -getFlags=get_full_flags -get_long=get_dword -get_full_byte=get_wide_byte -get_full_word=get_wide_word -get_full_long=get_wide_dword -get_original_long=get_original_dword -put_long=put_dword -patch_long=patch_dword -add_long=add_dword -getRadix=get_radix -get_ascii_contents=get_strlit_contents -get_ascii_contents2=get_strlit_contents -get_flags_novalue=get_flags -get_hidden_area=get_hidden_range -get_hidden_area_num=get_hidden_range_num -get_hidden_area_qty=get_hidden_range_qty -def get_many_bytes(ea, size): - return get_bytes(ea, size) -def get_many_bytes_ex(ea, size): - return get_bytes_and_mask(ea, size) -get_max_ascii_length=get_max_strlit_length -get_next_hidden_area=get_next_hidden_range -get_prev_hidden_area=get_prev_hidden_range -get_zero_areas=get_zero_ranges -getn_hidden_area=getn_hidden_range -hasExtra=has_extra_cmts -hasRef=has_xref -hasValue=has_value -hidden_area_t=hidden_range_t -isASCII=is_strlit -isAlign=is_align -isByte=is_byte -isChar=is_char -isChar0=is_char0 -isChar1=is_char1 -isCode=is_code -isCustFmt=is_custfmt -isCustFmt0=is_custfmt0 -isCustFmt1=is_custfmt1 -isCustom=is_custom -isData=is_data -isDefArg=is_defarg -isDefArg0=is_defarg0 -isDefArg1=is_defarg1 -isDouble=is_double -isDwrd=is_dword -isEnabled=is_mapped -isEnum=is_enum -isEnum0=is_enum0 -isEnum1=is_enum1 -isFloat=is_float -isFloat0=is_float0 -isFloat1=is_float1 -isFlow=is_flow -isFltnum=is_fltnum -isFop=is_forced_operand -isFunc=is_func -isHead=is_head -isImmd=has_immd -isLoaded=is_loaded -isNotTail=is_not_tail -isNum=is_numop -isNum0=is_numop0 -isNum1=is_numop1 -isOff=is_off -isOff0=is_off0 -isOff1=is_off1 -isOwrd=is_oword -isPackReal=is_pack_real -isQwrd=is_qword -isSeg=is_seg -isSeg0=is_seg0 -isSeg1=is_seg1 -isStkvar=is_stkvar -isStkvar0=is_stkvar0 -isStkvar1=is_stkvar1 -isStroff=is_stroff -isStroff0=is_stroff0 -isStroff1=is_stroff1 -isStruct=is_struct -isTail=is_tail -isTbyt=is_tbyte -isUnknown=is_unknown -isVoid=is_suspop -isWord=is_word -isYwrd=is_yword -isZwrd=is_zword -make_ascii_string=create_strlit -noExtra=ida_idaapi._BC695.false_p -noType=clr_op_type -owrdflag=oword_flag -patch_many_bytes=patch_bytes -print_ascii_string_type=print_strlit_type -put_many_bytes=put_bytes -qwrdflag=qword_flag -tbytflag=tbyte_flag -update_hidden_area=update_hidden_range -ywrdflag=yword_flag -zwrdflag=zword_flag -def get_opinfo(*args): - import ida_nalt - if isinstance(args[3], ida_nalt.opinfo_t): # 6.95: ea, n, flags, buf - ea, n, flags, buf = args - else: # 7.00: buf, ea, n, flags - buf, ea, n, flags = args - return _ida_bytes.get_opinfo(buf, ea, n, flags) -def doASCI(ea, length): - import ida_netnode - return create_data(ea, FF_STRLIT, length, ida_netnode.BADNODE) -FF_3BYTE=FF_BYTE -chunksize=chunk_size -chunkstart=chunk_start -do3byte=ida_idaapi._BC695.false_p -f_is3byte=ida_idaapi._BC695.false_p -freechunk=free_chunk -get_3byte=ida_idaapi._BC695.false_p -is3byte=ida_idaapi._BC695.false_p -nextaddr=next_addr -nextchunk=next_chunk -nextthat=next_that -prevaddr=prev_addr -prevchunk=prev_chunk -prevthat=prev_that -tribyteflag=byte_flag -alignflag=align_flag -binflag=bin_flag -byteflag=byte_flag -charflag=char_flag -codeflag=code_flag -custflag=cust_flag -custfmtflag=custfmt_flag -decflag=dec_flag -doubleflag=double_flag -enumflag=enum_flag -floatflag=float_flag -fltflag=flt_flag -hexflag=hex_flag -numflag=num_flag -octflag=oct_flag -offflag=off_flag -packrealflag=packreal_flag -segflag=seg_flag -stkvarflag=stkvar_flag -stroffflag=stroff_flag -struflag=stru_flag -wordflag=word_flag -invalidate_visea_cache=ida_idaapi._BC695.false_p -@bc695redef -def op_stroff(*args): - insn, n, path, path_len, delta = args - import ida_ua - if not isinstance(insn, ida_ua.insn_t): - tmp = ida_ua.insn_t() - ida_ua.decode_insn(tmp, insn) - insn = tmp - return _ida_bytes.op_stroff(insn, n, path, path_len, delta) -#</pycode_BC695(py_bytes)> diff --git a/pywraps/py_bytes_custdata.hpp b/pywraps/py_bytes_custdata.hpp index ba74100..37678ba 100644 --- a/pywraps/py_bytes_custdata.hpp +++ b/pywraps/py_bytes_custdata.hpp @@ -14,7 +14,7 @@ class py_custom_data_type_t : public data_type_t int dtid; // The data format id PyObject *py_self; - // may create data? NULL means always may + // may create data? nullptr means always may static bool idaapi s_may_create_at( void *ud, // user-defined data ea_t ea, // address of the future item @@ -31,10 +31,10 @@ class py_custom_data_type_t : public data_type_t bvsz_t(nbytes))); PyW_ShowCbErr(S_MAY_CREATE_AT); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } - // !=NULL means variable size datatype + // !=nullptr means variable size datatype static asize_t idaapi s_calc_item_size( // This function is used to determine // size of the (possible) item at 'ea' @@ -54,7 +54,7 @@ class py_custom_data_type_t : public data_type_t bvea_t(ea), bvasize_t(maxsize))); - if ( PyW_ShowCbErr(S_CALC_ITEM_SIZE) || py_result == NULL ) + if ( PyW_ShowCbErr(S_CALC_ITEM_SIZE) || py_result == nullptr ) return 0; uint64 num = 0; @@ -111,12 +111,12 @@ public: // may_create_at py_attr = PyW_TryGetAttrString(py_self, S_MAY_CREATE_AT); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) may_create_at = s_may_create_at; // calc_item_size py_attr = PyW_TryGetAttrString(py_self, S_CALC_ITEM_SIZE); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) calc_item_size = s_calc_item_size; // Now try to register @@ -148,7 +148,7 @@ py_custom_data_type_t *py_custom_data_type_cast(data_type_t *inst) { // The following code seems to not work with gcc. Compiler bug? Not sure, but no time ATM // py_custom_data_type_t *py_inst = (py_custom_data_type_t *) inst; - // py_custom_data_types.has(py_inst) ? py_inst : NULL; + // py_custom_data_types.has(py_inst) ? py_inst : nullptr; if ( py_custom_data_types.has((py_custom_data_type_t *) inst) ) return (py_custom_data_type_t *) inst; else @@ -159,7 +159,7 @@ py_custom_data_type_t *py_custom_data_type_cast(data_type_t *inst) static int py_custom_data_type_t_get_id(data_type_t *_dt) { py_custom_data_type_t *dt = py_custom_data_type_cast(_dt); - return dt != NULL ? dt->get_dtid() : -1; + return dt != nullptr ? dt->get_dtid() : -1; } //------------------------------------------------------------------------- @@ -178,8 +178,8 @@ private: static bool idaapi s_print( // convert to colored string void *ud, // user-defined data - qstring *out, // output buffer. may be NULL - const void *value, // value to print. may not be NULL + qstring *out, // output buffer. may be nullptr + const void *value, // value to print. may not be nullptr asize_t size, // size of value in bytes ea_t current_ea, // current address (BADADDR if unknown) int operand_num, // current operand number @@ -191,7 +191,7 @@ private: newref_t py_value(IDAPyBytes_FromMemAndSize( (const char *)value, Py_ssize_t(size))); - if ( py_value == NULL ) + if ( py_value == nullptr ) return false; py_custom_data_format_t *_this = (py_custom_data_format_t *) ud; @@ -205,13 +205,13 @@ private: dtid)); // Error while calling the function? - if ( PyW_ShowCbErr(S_PRINTF) || py_result == NULL ) + if ( PyW_ShowCbErr(S_PRINTF) || py_result == nullptr ) return false; bool ok = false; if ( IDAPyStr_Check(py_result.o) ) { - if ( out != NULL ) + if ( out != nullptr ) IDAPyStr_AsUTF8(out, py_result.o); ok = true; } @@ -220,8 +220,8 @@ private: static bool idaapi s_scan( // convert from uncolored string void *ud, // user-defined data - bytevec_t *value, // output buffer. may be NULL - const char *input, // input string. may not be NULL + bytevec_t *value, // output buffer. may be nullptr + const char *input, // input string. may not be nullptr ea_t current_ea, // current address (BADADDR if unknown) int operand_num, // current operand number (-1 if unknown) qstring *errstr) // buffer for error message @@ -239,7 +239,7 @@ private: operand_num)); // Error while calling the function? - if ( PyW_ShowCbErr(S_SCAN) || py_result == NULL ) + if ( PyW_ShowCbErr(S_SCAN) || py_result == nullptr ) return false; bool ok = false; @@ -259,7 +259,7 @@ private: if ( ok ) { // Probe-only? Then okay, no need to extract the 'value' - if ( value == NULL ) + if ( value == nullptr ) break; Py_ssize_t len; @@ -354,17 +354,17 @@ public: // print cb py_attr = PyW_TryGetAttrString(py_self, S_PRINTF); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) print = s_print; // scan cb py_attr = PyW_TryGetAttrString(py_self, S_SCAN); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) scan = s_scan; // analyze cb py_attr = PyW_TryGetAttrString(py_self, S_ANALYZE); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) analyze = s_analyze; // Now try to register @@ -401,7 +401,7 @@ py_custom_data_format_t *py_custom_data_format_cast(data_format_t *inst) static int py_custom_data_format_t_get_id(data_format_t *_df) { py_custom_data_format_t *df = py_custom_data_format_cast(_df); - return df != NULL ? df->get_dfid() : -1; + return df != nullptr ? df->get_dfid() : -1; } //------------------------------------------------------------------------- @@ -436,12 +436,12 @@ def register_custom_data_type(dt): static int py_register_custom_data_type(PyObject *py_dt) { ref_t py_attr = PyW_TryGetAttrString(py_dt, "this"); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return -1; - py_custom_data_type_t *inst = NULL; + py_custom_data_type_t *inst = nullptr; int cvt = SWIG_ConvertPtr(py_attr.o, (void **) &inst, SWIGTYPE_p_data_type_t, 0); - if ( !SWIG_IsOK(cvt) || py_custom_data_type_cast(inst) == NULL ) + if ( !SWIG_IsOK(cvt) || py_custom_data_type_cast(inst) == nullptr ) return -1; return inst->do_register(); } @@ -461,11 +461,11 @@ def unregister_custom_data_type(dtid): static bool py_unregister_custom_data_type(int dtid) { const data_type_t *_dt = get_custom_data_type(dtid); - if ( _dt == NULL ) + if ( _dt == nullptr ) return false; py_custom_data_type_t *dt = py_custom_data_type_cast((data_type_t *) _dt); - bool ok = dt != NULL; + bool ok = dt != nullptr; if ( ok ) ok = dt->do_unregister(); else @@ -490,12 +490,12 @@ def register_custom_data_format(df): static int py_register_custom_data_format(PyObject *py_df) { ref_t py_attr = PyW_TryGetAttrString(py_df, "this"); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return -1; - py_custom_data_format_t *inst = NULL; + py_custom_data_format_t *inst = nullptr; int cvt = SWIG_ConvertPtr(py_attr.o, (void **) &inst, SWIGTYPE_p_data_format_t, 0); - if ( !SWIG_IsOK(cvt) || py_custom_data_format_cast(inst) == NULL ) + if ( !SWIG_IsOK(cvt) || py_custom_data_format_cast(inst) == nullptr ) return -1; return inst->do_register(); @@ -516,11 +516,11 @@ def unregister_custom_data_format(dfid): static bool py_unregister_custom_data_format(int dfid) { const data_format_t *_df = get_custom_data_format(dfid); - if ( _df == NULL ) + if ( _df == nullptr ) return false; py_custom_data_format_t *df = py_custom_data_format_cast((data_format_t *) _df); - bool ok = df != NULL; + bool ok = df != nullptr; if ( ok ) ok = df->do_unregister(); else diff --git a/pywraps/py_dbg.hpp b/pywraps/py_dbg.hpp index 08e3ff7..1d38700 100644 --- a/pywraps/py_dbg.hpp +++ b/pywraps/py_dbg.hpp @@ -18,14 +18,14 @@ struct _cvt_status_t _cvt_status_t(PyObject *_def_err_class, const char *_def_err_string) : def_err_class(_def_err_class), def_err_string(_def_err_string), - err_class(NULL), + err_class(nullptr), ok(true) {} ~_cvt_status_t() { if ( !ok ) { - if ( err_class == NULL ) + if ( err_class == nullptr ) { err_class = def_err_class; err_string = def_err_string; @@ -50,7 +50,7 @@ static bool _to_reg_val(regval_t **out, regval_t *buf, const char *name, PyObjec return false; int cvt = SWIG_ConvertPtr(o, (void **) out, SWIGTYPE_p_regval_t, 0); - if ( SWIG_IsOK(cvt) && *out != NULL ) + if ( SWIG_IsOK(cvt) && *out != nullptr ) return true; register_info_t ri; @@ -98,7 +98,7 @@ static bool _to_reg_val(regval_t **out, regval_t *buf, const char *name, PyObjec fpvalue_t fpval; _cvt_status_t status(PyExc_TypeError, "Expected float value"); double dbl = PyFloat_AsDouble(in); - status.ok = PyErr_Occurred() == NULL; + status.ok = PyErr_Occurred() == nullptr; if ( status.ok ) status.ok = ieee_realcvt(&dbl, &fpval, 003 /*load double*/) == REAL_ERROR_OK; if ( !status.ok ) @@ -240,7 +240,7 @@ static PyObject *_from_reg_val( if ( !get_dbg_reg_info(name, &ri) ) // see _to_reg_val() ri.dtype = dt_dword; - PyObject *res = NULL; + PyObject *res = nullptr; _cvt_status_t status(PyExc_ValueError, "Conversion failed"); switch ( ri.dtype ) { @@ -309,7 +309,7 @@ def dbg_is_loaded(): */ static bool dbg_is_loaded() { - return dbg != NULL; + return dbg != nullptr; } //------------------------------------------------------------------------- @@ -330,7 +330,7 @@ static PyObject *refresh_debugger_memory() invalidate_dbgmem_contents(BADADDR, 0); // Ask the debugger to populate debug names - if ( dbg != NULL ) + if ( dbg != nullptr ) dbg->suspended(true); // Invalidate the cache @@ -351,7 +351,7 @@ struct DBG_Hooks : public hooks_base_t bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenDBG:methods @@ -409,21 +409,6 @@ static PyObject *py_list_bptgrps() } //------------------------------------------------------------------------ -/* -#<pydoc> -def move_bpt_to_grp(): - """ - Sets new group for the breakpoint - """ - pass -#</pydoc> -*/ -static void move_bpt_to_grp(bpt_t *bpt, const char *grp_name) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - set_bpt_group(*bpt, grp_name); -} - /* #<pydoc> def internal_get_sreg_base(): @@ -450,7 +435,7 @@ static ssize_t py_write_dbg_memory(ea_t ea, PyObject *py_buf, size_t size=size_t PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !dbg_can_query(dbg) || !IDAPyBytes_Check(py_buf) ) return -1; - char *buf = NULL; + char *buf = nullptr; Py_ssize_t sz; if ( IDAPyBytes_AsMemAndSize(py_buf, &buf, &sz) < 0 ) return -1; @@ -487,14 +472,14 @@ static PyObject *py_set_reg_val(const char *regname, PyObject *o) regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, regname, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = set_reg_val(regname, ptr); SWIG_PYTHON_THREAD_END_ALLOW; if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to set register value"); - return NULL; + return nullptr; } Py_RETURN_TRUE; } @@ -502,23 +487,23 @@ static PyObject *py_set_reg_val(const char *regname, PyObject *o) //------------------------------------------------------------------------- static PyObject *py_set_reg_val(thid_t tid, int regidx, PyObject *o) { - if ( dbg == NULL ) + if ( dbg == nullptr ) { PyErr_SetString(PyExc_Exception, "No debugger loaded"); - return NULL; + return nullptr; } if ( regidx < 0 || regidx >= dbg->nregs ) { qstring buf; buf.sprnt("Bad register index: %d", regidx); PyErr_SetString(PyExc_Exception, buf.c_str()); - return NULL; + return nullptr; } const register_info_t &ri = dbg->regs(regidx); regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, ri.name, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = set_reg_val(tid, regidx, ptr) > 0; SWIG_PYTHON_THREAD_END_ALLOW; @@ -531,14 +516,14 @@ static PyObject *py_request_set_reg_val(const char *regname, PyObject *o) regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, regname, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = request_set_reg_val(regname, ptr); SWIG_PYTHON_THREAD_END_ALLOW; if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to request set register value"); - return NULL; + return nullptr; } Py_RETURN_TRUE; } @@ -553,7 +538,7 @@ static PyObject *py_get_reg_val(const char *regname) if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to retrieve register value"); - return NULL; + return nullptr; } return _from_reg_val(regname, buf); } diff --git a/pywraps/py_dbg.py b/pywraps/py_dbg.py index f6373dd..4779419 100644 --- a/pywraps/py_dbg.py +++ b/pywraps/py_dbg.py @@ -55,19 +55,6 @@ def send_dbg_command(command): else: return False, "eval_idc_expr(): wrong return type: %d" % vtype -#</pycode(py_dbg)> +move_bpt_to_grp = set_bpt_group -#<pycode_BC695(py_dbg)> -import ida_idd -def get_process_info(n, pi): - pis = ida_idd.procinfo_vec_t() - cnt = get_processes(pis) - if n >= cnt: - return ida_idd.NO_PROCESS - pi.name = pis[n].name - pi.pid = pis[n].pid - return pi.pid -def get_process_qty(): - pis = ida_idd.procinfo_vec_t() - return get_processes(pis) -#</pycode_BC695(py_dbg)> +#</pycode(py_dbg)> diff --git a/pywraps/py_diskio.hpp b/pywraps/py_diskio.hpp index c63e7ee..26f44a3 100644 --- a/pywraps/py_diskio.hpp +++ b/pywraps/py_diskio.hpp @@ -14,8 +14,8 @@ int idaapi py_enumerate_files_cb(const char *file, void *ud) PyObject_CallFunctionObjArgs( (PyObject *)ud, py_file.o, - NULL)); - return (py_ret == NULL || !PyNumber_Check(py_ret.o)) ? 1 /* stop enum on failure */ : PyInt_AsLong(py_ret.o); + nullptr)); + return (py_ret == nullptr || !PyNumber_Check(py_ret.o)) ? 1 /* stop enum on failure */ : PyInt_AsLong(py_ret.o); } //------------------------------------------------------------------------- @@ -79,7 +79,7 @@ linput_t *py_create_bytearray_linput(const qstring &s) { qstring *bytes = new qstring(s); linput_t *li = create_bytearray_linput((const uchar *) bytes->c_str(), bytes->length()); - if ( li != NULL ) + if ( li != nullptr ) { bytearray_linput_data_t &ld = bytearray_linput_data_vec.push_back(); ld.bytes = bytes; diff --git a/pywraps/py_diskio.py b/pywraps/py_diskio.py deleted file mode 100644 index 44c7034..0000000 --- a/pywraps/py_diskio.py +++ /dev/null @@ -1,4 +0,0 @@ -#<pycode_BC695(py_diskio)> -create_generic_linput64=create_generic_linput -generic_linput64_t=generic_linput_t -#</pycode_BC695(py_diskio)> diff --git a/pywraps/py_enum.py b/pywraps/py_enum.py deleted file mode 100644 index 11661b3..0000000 --- a/pywraps/py_enum.py +++ /dev/null @@ -1,37 +0,0 @@ -#<pycode_BC695(py_enum)> -CONST_ERROR_ENUM=ENUM_MEMBER_ERROR_NAME -CONST_ERROR_ILLV=ENUM_MEMBER_ERROR_VALUE -CONST_ERROR_MASK=ENUM_MEMBER_ERROR_ENUM -CONST_ERROR_NAME=ENUM_MEMBER_ERROR_MASK -CONST_ERROR_VALUE=ENUM_MEMBER_ERROR_ILLV -add_const=add_enum_member -del_const=del_enum_member -get_const=get_enum_member -get_const_bmask=get_enum_member_bmask -get_const_by_name=get_enum_member_by_name -get_const_cmt=get_enum_member_cmt -get_const_enum=get_enum_member_enum -get_const_name=get_enum_member_name -get_const_serial=get_enum_member_serial -get_const_value=get_enum_member_value -get_first_const=get_first_enum_member -get_first_serial_const=get_first_serial_enum_member -get_last_const=get_last_enum_member -get_last_serial_const=get_last_serial_enum_member -get_next_const=get_next_enum_member -get_next_serial_const=get_next_serial_enum_member -get_prev_const=get_prev_enum_member -get_prev_serial_const=get_prev_serial_enum_member -set_const_cmt=set_enum_member_cmt -set_const_name=set_enum_member_name -def get_next_serial_enum_member(*args): - serial, cid = args[0], args[1] - if serial > 0xFF: - serial, cid = cid, serial - return _ida_enum.get_next_serial_enum_member(serial, cid) -def get_prev_serial_enum_member(*args): - serial, cid = args[0], args[1] - if serial > 0xFF: - serial, cid = cid, serial - return _ida_enum.get_prev_serial_enum_member(serial, cid) -#</pycode_BC695(py_enum)> diff --git a/pywraps/py_expr.hpp b/pywraps/py_expr.hpp index b1ee6a2..ddde571 100644 --- a/pywraps/py_expr.hpp +++ b/pywraps/py_expr.hpp @@ -42,7 +42,7 @@ static error_t py_call_idc_func( // Call the Python function newref_t py_result = PyObject_CallObject( ctx->py_func.o, - pargs.empty() ? NULL : pargs[0].o); + pargs.empty() ? nullptr : pargs[0].o); int cvt; error_t err; @@ -113,7 +113,7 @@ static bool pyw_convert_defvals(idc_values_t *out, PyObject *py_seq) { newref_t py_var(PySequence_GetItem(py_seq, i)); idc_value_t &idc_var = out->push_back(); - if ( pyvar_to_idcvar(py_var, &idc_var, NULL) != CIP_OK ) + if ( pyvar_to_idcvar(py_var, &idc_var, nullptr) != CIP_OK ) return false; } return true; diff --git a/pywraps/py_expr.py b/pywraps/py_expr.py index 615e203..d45f3c4 100644 --- a/pywraps/py_expr.py +++ b/pywraps/py_expr.py @@ -129,41 +129,3 @@ def add_idc_func(name, fp, args, defvals=(), flags=0): flags) #</pycode(py_expr)> - -#<pycode_BC695(py_expr)> -Compile=compile_idc_file -CompileEx=compile_idc_file -CompileLine=compile_idc_text -VT_STR2=VT_STR -VarCopy=copy_idcv -VarDelAttr=del_idcv_attr -VarDeref=deref_idcv -VarFirstAttr=first_idcv_attr -def VarGetAttr(obj, attr, res, may_use_getattr=False): - return get_idcv_attr(res, obj, attr, may_use_getattr) -VarGetClassName=get_idcv_class_name -VarGetSlice=get_idcv_slice -VarInt64=idcv_int64 -VarLastAttr=last_idcv_attr -VarMove=move_idcv -VarNextAttr=next_idcv_attr -VarObject=idcv_object -VarPrevAttr=prev_idcv_attr -VarPrint=print_idcv -VarRef=create_idcv_ref -VarSetAttr=set_idcv_attr -VarSetSlice=set_idcv_slice -VarString2=idcv_string -VarSwap=swap_idcvs -def calc_idc_expr(where, expr, res): - return eval_idc_expr(res, where, expr) -def calcexpr(where, expr, res): - return eval_expr(res, where, expr) -def dosysfile(complain_if_no_file, fname): - return exec_system_script(fname, complain_if_no_file) -def execute(line): - return eval_idc_snippet(None, line) -py_set_idc_func_ex=py_add_idc_func -def set_idc_func_ex(name, fp=None, args=(), flags=0): - return add_idc_func(name, fp, args, (), flags) -#</pycode_BC695(py_expr)> diff --git a/pywraps/py_fixup.py b/pywraps/py_fixup.py deleted file mode 100644 index b862b0c..0000000 --- a/pywraps/py_fixup.py +++ /dev/null @@ -1,6 +0,0 @@ - -#<pycode_BC695(py_fixup)> -FIXUP_CREATED=FIXUPF_CREATED -FIXUP_EXTDEF=FIXUPF_EXTDEF -FIXUP_REL=FIXUPF_REL -#</pycode_BC695(py_fixup)> diff --git a/pywraps/py_fpro.hpp b/pywraps/py_fpro.hpp index fa96e49..ed70823 100644 --- a/pywraps/py_fpro.hpp +++ b/pywraps/py_fpro.hpp @@ -96,7 +96,7 @@ private: //-------------------------------------------------------------------------- bool _from_fp(FILE *fp) { - if ( fp == NULL ) + if ( fp == nullptr ) return false; own = false; fn.sprnt("<FILE * %p>", fp); @@ -117,16 +117,16 @@ public: } //-------------------------------------------------------------------------- - qfile_t(PyObject *pycapsule = NULL) + qfile_t(PyObject *pycapsule = nullptr) { - fp = NULL; + fp = nullptr; own = true; fn.qclear(); __idc_cvt_id__ = PY_ICID_OPAQUE; bool ok; { PYW_GIL_CHECK_LOCKED_SCOPE(); - ok = pycapsule != NULL && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME); + ok = pycapsule != nullptr && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME); } if ( ok ) _from_capsule(pycapsule); @@ -135,13 +135,13 @@ public: //-------------------------------------------------------------------------- bool opened() { - return fp != NULL; + return fp != nullptr; } //-------------------------------------------------------------------------- void close() { - if ( fp == NULL ) + if ( fp == nullptr ) return; if ( own ) { @@ -149,7 +149,7 @@ public: qfclose(fp); Py_END_ALLOW_THREADS; } - fp = NULL; + fp = nullptr; own = true; } @@ -166,7 +166,7 @@ public: Py_BEGIN_ALLOW_THREADS; fp = qfopen(filename, mode); Py_END_ALLOW_THREADS; - if ( fp == NULL ) + if ( fp == nullptr ) return false; // Save file name fn = filename; @@ -177,8 +177,8 @@ public: //-------------------------------------------------------------------------- static qfile_t *from_fp(FILE *fp) { - if ( fp == NULL ) - return NULL; + if ( fp == nullptr ) + return nullptr; qfile_t *qf = new qfile_t(); qf->own = false; qf->fn.sprnt("<FILE * %p>", fp); @@ -192,7 +192,7 @@ public: { return PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ? from_fp((FILE *) PyCapsule_GetPointer(pycapsule, VALID_CAPSULE_NAME)) - : NULL; + : nullptr; } //-------------------------------------------------------------------------- @@ -237,7 +237,7 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); int r; @@ -263,7 +263,7 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); int r; @@ -288,14 +288,14 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); char *p; Py_BEGIN_ALLOW_THREADS; p = qfgets(buf, size, fp); Py_END_ALLOW_THREADS; - if ( p == NULL ) + if ( p == nullptr ) { free(buf); break; diff --git a/pywraps/py_frame.hpp b/pywraps/py_frame.hpp index f041e01..f4d580b 100644 --- a/pywraps/py_frame.hpp +++ b/pywraps/py_frame.hpp @@ -21,7 +21,7 @@ PyObject *py_get_stkvar(const insn_t &insn, const op_t &op, sval_t v) PYW_GIL_CHECK_LOCKED_SCOPE(); sval_t actval; member_t *member = get_stkvar(&actval, insn, op, v); - if ( member == NULL ) + if ( member == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(O" PY_BV_SVAL ")", diff --git a/pywraps/py_frame.py b/pywraps/py_frame.py deleted file mode 100644 index 8b4f240..0000000 --- a/pywraps/py_frame.py +++ /dev/null @@ -1,24 +0,0 @@ - -#<pycode_BC695(py_frame)> -add_auto_stkpnt2=add_auto_stkpnt -# in fact, we cannot simulate add_stkvar[23] here, because we simply -# don't have the insn_t object -- and no way of retrieving it, either, -# since cmd is gone -@bc695redef -def get_stkvar(*args): - if len(args) == 2: - import ida_ua - insn, op, v = ida_ua.cmd, args[0], args[1] - else: - insn, op, v = args - return _ida_frame.get_stkvar(insn, op, v) - -@bc695redef -def get_frame_part(*args): - import ida_funcs - if isinstance(args[0], ida_funcs.func_t): # 6.95: pfn, part, range - rnge, pfn, part = args[2], args[0], args[1] - else: # 7.00: range, pfn, part - rnge, pfn, part = args - return _ida_frame.get_frame_part(rnge, pfn, part) -#</pycode_BC695(py_frame)> diff --git a/pywraps/py_funcs.hpp b/pywraps/py_funcs.hpp index 280a2a5..20e9d31 100644 --- a/pywraps/py_funcs.hpp +++ b/pywraps/py_funcs.hpp @@ -18,7 +18,7 @@ static ea_t get_fchunk_referer(ea_t ea, size_t idx) if ( !is_func_tail(pfn) ) return BADADDR; func_parent_iterator_t dummy(pfn); // read referer info - if ( idx >= pfn->refqty || pfn->referers == NULL ) + if ( idx >= pfn->refqty || pfn->referers == nullptr ) return BADADDR; else return pfn->referers[idx]; diff --git a/pywraps/py_funcs.py b/pywraps/py_funcs.py index fd81561..fa50819 100644 --- a/pywraps/py_funcs.py +++ b/pywraps/py_funcs.py @@ -11,24 +11,3 @@ def calc_thunk_func_target(*args): else: return calc_thunk_func_target.__dict__["orig"](*args) #</pycode(py_funcs)> - -#<pycode_BC695(py_funcs)> -FUNC_STATIC=FUNC_STATICDEF -add_regarg2=add_regarg -clear_func_struct=lambda *args: True -def del_func_cmt(pfn, rpt): - set_func_cmt(pfn, "", rpt) -func_parent_iterator_set2=func_parent_iterator_set -func_setend=set_func_end -func_setstart=set_func_start -func_tail_iterator_set2=func_tail_iterator_set -def get_func_limits(pfn, limits): - import ida_range - rs = ida_range.rangeset_t() - if get_func_ranges(rs, pfn) == ida_idaapi.BADADDR: - return False - limits.start_ea = rs.begin().start_ea - limits.end_ea = rs.begin().end_ea - return True -get_func_name2=get_func_name -#</pycode_BC695(py_funcs)> diff --git a/pywraps/py_gdl.py b/pywraps/py_gdl.py index 70fa7a2..47be0c6 100644 --- a/pywraps/py_gdl.py +++ b/pywraps/py_gdl.py @@ -39,15 +39,8 @@ class BasicBlock(object): for i in range(0, q.nsucc(self.id)): yield self._fc[q.succ(self.id, i)] - try: - if _BC695: - startEA = property(lambda self: self.start_ea, lambda self, ea: setattr(self, "start_ea", ea)) - endEA = property(lambda self: self.end_ea, lambda self, ea: setattr(self, "end_ea", ea)) - else: - startEA = ida_idaapi._make_badattr_property("startEA", "start_ea") - endEA = ida_idaapi._make_badattr_property("endEA", "end_ea") - except: - pass # BC695 not defined at compile-time + startEA = ida_idaapi._make_badattr_property("startEA", "start_ea") + endEA = ida_idaapi._make_badattr_property("endEA", "end_ea") # ----------------------------------------------------------------------- class FlowChart(object): diff --git a/pywraps/py_graph.hpp b/pywraps/py_graph.hpp index 7316c39..ed3dcc1 100644 --- a/pywraps/py_graph.hpp +++ b/pywraps/py_graph.hpp @@ -38,7 +38,7 @@ private: { iterator it = find(node_id); if ( it == end() ) - return NULL; + return nullptr; return &it->second; } nodetext_cache_t *add(const int node_id, const char *text, bgcolor_t bgcolor = DEFCOLOR) @@ -59,7 +59,7 @@ private: // don't perform sanity check for 'grcode_destroyed', since if we called // Close() on this object, it'll have been marked for later deletion in the // UI, and thus when we end up here, the view has already been destroyed. - bool found = get_plugin_instance()->pycim_lookup_info.find_by_py_view(NULL, (py_graph_t *) obj); + bool found = get_plugin_instance()->pycim_lookup_info.find_by_py_view(nullptr, (py_graph_t *) obj); QASSERT(30453, found || code == grcode_destroyed); if ( found ) { @@ -88,7 +88,7 @@ private: int _on_hint_epilog(char **hint, ref_t result); // graph is being destroyed - void on_graph_destroyed(mutable_graph_t * /*g*/ = NULL) + void on_graph_destroyed(mutable_graph_t * /*g*/ = nullptr) { refresh_needed = true; node_cache.clear(); @@ -120,7 +120,7 @@ private: "i", item2->n)); PyW_ShowCbErr(S_ON_CLICK); - return result == NULL || !PyObject_IsTrue(result.o); + return result == nullptr || !PyObject_IsTrue(result.o); } // a graph node has been double clicked @@ -139,13 +139,13 @@ private: "i", item->node)); PyW_ShowCbErr(S_ON_DBL_CLICK); - return result == NULL || !PyObject_IsTrue(result.o); + return result == nullptr || !PyObject_IsTrue(result.o); } // a graph viewer got focus void on_gotfocus(graph_viewer_t * /*view*/) { - if ( self.o == NULL ) + if ( self.o == nullptr ) return; PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -153,14 +153,14 @@ private: PyObject_CallMethod( self.o, (char *)S_ON_ACTIVATE, - NULL)); + nullptr)); PyW_ShowCbErr(S_ON_ACTIVATE); } // a graph viewer lost focus void on_lostfocus(graph_viewer_t * /*view*/) { - if ( self.o == NULL ) + if ( self.o == nullptr ) return; PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -168,7 +168,7 @@ private: PyObject_CallMethod( self.o, (char *)S_ON_DEACTIVATE, - NULL)); + nullptr)); PyW_ShowCbErr(S_ON_DEACTIVATE); } @@ -188,7 +188,7 @@ private: "O", py_nodes.o)); PyW_ShowCbErr(S_ON_CREATING_GROUP); - return (py_result == NULL || !IDAPyInt_Check(py_result.o)) + return (py_result == nullptr || !IDAPyInt_Check(py_result.o)) ? 1 : IDAPyInt_AsLong(py_result.o); } @@ -228,7 +228,7 @@ private: // will return a place only when a node was previously selected place_t *old_pl = get_custom_viewer_place(view, false, &x, &y); - if ( old_pl != NULL ) + if ( old_pl != nullptr ) { user_graph_place_t *new_pl = (user_graph_place_t *) old_pl->clone(); new_pl->node = nid; @@ -251,7 +251,7 @@ private: return -1; TWidget *widget = find_widget(title); - if ( widget == NULL ) // create new widget + if ( widget == nullptr ) // create new widget { lookup_entry_t &e = get_plugin_instance()->pycim_lookup_info.new_entry(this); // get a unique graph id @@ -264,8 +264,8 @@ private: graph_viewer_t *pview = create_graph_viewer(title, id, s_callback, this, 0); this->self = ref_t(); display_widget(pview, WOPN_DP_TAB); - newref_t ret(PyObject_CallMethod(self, "hook", NULL)); - if ( pview != NULL ) + newref_t ret(PyObject_CallMethod(self, "hook", nullptr)); + if ( pview != nullptr ) viewer_fit_window(pview); bind(self, pview); get_plugin_instance()->pycim_lookup_info.commit(e, view); @@ -282,7 +282,7 @@ private: public: py_graph_t() { - // form = NULL; + // form = nullptr; refresh_needed = true; } @@ -292,7 +292,7 @@ public: return; py_graph_t *_this = (py_graph_t *) view_extract_this(self); - if ( _this == NULL || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(NULL, _this) ) + if ( _this == nullptr || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(nullptr, _this) ) return; _this->jump_to_node(nid); @@ -302,9 +302,9 @@ public: { TWidget *view; py_graph_t *_this = (py_graph_t *) view_extract_this(self); - if ( _this == NULL || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&view, _this) ) - return NULL; - newref_t ret(PyObject_CallMethod(self, "unhook", NULL)); + if ( _this == nullptr || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&view, _this) ) + return nullptr; + newref_t ret(PyObject_CallMethod(self, "unhook", nullptr)); close_widget(view, WCLS_CLOSE_LATER); return _this; } @@ -316,19 +316,19 @@ public: py_graph_t *py_graph = (py_graph_t *) view_extract_this(self); // New instance? - if ( py_graph == NULL ) + if ( py_graph == nullptr ) { qstring title; if ( !PyW_GetStringAttr(self, S_M_TITLE, &title) ) - return NULL; + return nullptr; // Form already created? try to get associated py_graph instance // so that we reuse it TWidget *existing = find_widget(title.c_str()); - if ( existing != NULL ) + if ( existing != nullptr ) get_plugin_instance()->pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_graph, existing); - if ( py_graph == NULL ) + if ( py_graph == nullptr ) { py_graph = new py_graph_t(); } @@ -341,7 +341,7 @@ public: if ( py_graph->initialize(self, title.c_str()) < 0 ) { delete py_graph; - py_graph = NULL; + py_graph = nullptr; } } else @@ -379,17 +379,17 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) // Check return value to OnRefresh() call PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t ret(PyObject_CallMethod(self.o, (char *)S_ON_REFRESH, NULL)); + newref_t ret(PyObject_CallMethod(self.o, (char *)S_ON_REFRESH, nullptr)); PyW_ShowCbErr(S_ON_REFRESH); - if ( ret != NULL && PyObject_IsTrue(ret.o) ) + if ( ret != nullptr && PyObject_IsTrue(ret.o) ) { // Refer to the nodes ref_t nodes(PyW_TryGetAttrString(self.o, S_M_NODES)); - if ( ret != NULL && PyList_Check(nodes.o) ) + if ( ret != nullptr && PyList_Check(nodes.o) ) { // Refer to the edges ref_t edges(PyW_TryGetAttrString(self.o, S_M_EDGES)); - if ( ret != NULL && PyList_Check(edges.o) ) + if ( ret != nullptr && PyList_Check(edges.o) ) { // Resize the nodes int max_nodes = abs(int(PyList_Size(nodes.o))); @@ -416,7 +416,7 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) for ( j=0; j < qnumber(edge_ids); j++ ) { newref_t id(PySequence_GetItem(item.o, j)); - if ( id == NULL || !IDAPyInt_Check(id.o) ) + if ( id == nullptr || !IDAPyInt_Check(id.o) ) break; int v = int(IDAPyInt_AsLong(id.o)); if ( v > max_nodes ) @@ -429,7 +429,7 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) break; // Add the edge - g->add_edge(edge_ids[0], edge_ids[1], NULL); + g->add_edge(edge_ids[0], edge_ids[1], nullptr); } } } @@ -441,10 +441,10 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st { // If already cached then return the value nodetext_cache_t *c = node_cache.get(node); - if ( c != NULL ) + if ( c != nullptr ) { *str = c->text.c_str(); - if ( bg_color != NULL ) + if ( bg_color != nullptr ) *bg_color = c->bgcolor; return true; } @@ -453,10 +453,10 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t result(PyObject_CallMethod(self.o, (char *)S_ON_GETTEXT, "i", node)); PyW_ShowCbErr(S_ON_GETTEXT); - if ( result == NULL ) + if ( result == nullptr ) return false; - bgcolor_t cl = bg_color == NULL ? DEFCOLOR : *bg_color; + bgcolor_t cl = bg_color == nullptr ? DEFCOLOR : *bg_color; qstring buf; // User returned a string? @@ -472,16 +472,16 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st newref_t py_str(PySequence_GetItem(result.o, 0)); newref_t py_color(PySequence_GetItem(result.o, 1)); - if ( py_str != NULL && IDAPyStr_Check(py_str.o) ) + if ( py_str != nullptr && IDAPyStr_Check(py_str.o) ) IDAPyStr_AsUTF8(&buf, py_str.o); - if ( py_color != NULL && PyNumber_Check(py_color.o) ) + if ( py_color != nullptr && PyNumber_Check(py_color.o) ) cl = bgcolor_t(PyLong_AsUnsignedLong(py_color.o)); c = node_cache.add(node, buf.c_str(), cl); } *str = c->text.c_str(); - if ( bg_color != NULL ) + if ( bg_color != nullptr ) *bg_color = c->bgcolor; return true; @@ -510,7 +510,7 @@ int py_graph_t::_on_hint_epilog(char **hint, ref_t result) { // 'hint' must be allocated by qalloc() or qstrdup() // out: 0-use default hint, 1-use proposed hint - bool ok = result != NULL && IDAPyStr_Check(result.o); + bool ok = result != nullptr && IDAPyStr_Check(result.o); if ( ok ) { qstring buf; @@ -565,7 +565,7 @@ ssize_t py_graph_t::gr_callback(int code, va_list va) { graph_viewer_t *view = va_arg(va, graph_viewer_t *); selection_item_t *item = va_arg(va, selection_item_t *); - handled = item != NULL && item->is_node; + handled = item != nullptr && item->is_node; if ( handled ) ret = on_dblclicked(view, item); } @@ -667,13 +667,13 @@ ssize_t py_graph_t::gr_callback(int code, va_list va) //------------------------------------------------------------------------- bool pyg_show(PyObject *self) { - return py_graph_t::Show(self) != NULL; + return py_graph_t::Show(self) != nullptr; } void pyg_close(PyObject *self) { py_graph_t *pyg = py_graph_t::Close(self); - if ( pyg != NULL ) + if ( pyg != nullptr ) delete pyg; } diff --git a/pywraps/py_graph.py b/pywraps/py_graph.py index e24b97b..415037f 100644 --- a/pywraps/py_graph.py +++ b/pywraps/py_graph.py @@ -183,11 +183,3 @@ class GraphViewer(ida_kernwin.CustomIDAMemo): # return True #</pydoc> #</pycode(py_graph)> - -#<pycode_BC695(py_graph)> -clr_node_info2=clr_node_info -del_node_info2=del_node_info -get_node_info2=get_node_info -set_node_info2=set_node_info -GraphViewer.GetTForm = GraphViewer.GetWidget -#</pycode_BC695(py_graph)> diff --git a/pywraps/py_hexrays.hpp b/pywraps/py_hexrays.hpp index 4f2efa8..3da6c28 100644 --- a/pywraps/py_hexrays.hpp +++ b/pywraps/py_hexrays.hpp @@ -1,6 +1,7 @@ //------------------------------------------------------------------------- //<code(py_hexrays)> static bool do_not_check_ctree = false; +static bool idapython_exiting = false; #ifdef WITH_HEXRAYS #define DCLVL_SIMPLE 1 #define DCLVL_FULL 2 @@ -54,6 +55,7 @@ static void *idaapi idapython_dummy_hexdsp(int code, ...) case hx_mop_t_erase: case hx_mba_t_term: case hx_valrng_t_clear: + case hx_udc_filter_t_cleanup: { #ifdef TESTABLE_BUILD va_list va; @@ -63,15 +65,18 @@ static void *idaapi idapython_dummy_hexdsp(int code, ...) if ( code == hx_remitem ) QASSERT(30529, ((cinsn_t *)item)->op == cot_empty || ((cinsn_t *)item)->op == cit_empty); else if ( code == hx_cexpr_t_cleanup ) - QASSERT(30497, ((cexpr_t *)item)->op == cot_empty && ((cexpr_t *)item)->n == NULL); + QASSERT(30497, ((cexpr_t *)item)->op == cot_empty && ((cexpr_t *)item)->n == nullptr); else if ( code == hx_cinsn_t_cleanup ) - QASSERT(30498, ((cinsn_t *)item)->op == cit_empty && ((cinsn_t *)item)->cblock == NULL); + QASSERT(30498, ((cinsn_t *)item)->op == cit_empty && ((cinsn_t *)item)->cblock == nullptr); else if ( code == hx_mop_t_erase ) - QASSERT(30595, ((mop_t *)item)->t == mop_z && ((mop_t *)item)->nnn == NULL); + QASSERT(30595, ((mop_t *)item)->t == mop_z && ((mop_t *)item)->nnn == nullptr); else if ( code == hx_mba_t_term ) - QASSERT(30596, ((mba_t *)item)->blocks == NULL); + QASSERT(30596, ((mba_t *)item)->blocks == nullptr); else if ( code == hx_valrng_t_clear ) QASSERT(30601, ((valrng_t *)item)->empty()); + else if ( code == hx_udc_filter_t_cleanup ) + QASSERT(30633, ((udc_filter_t *)item)->empty() + && !install_microcode_filter((udc_filter_t *)item, false)); else INTERR(30597); va_end(va); @@ -131,6 +136,12 @@ static void *idaapi idapython_dummy_hexdsp(int code, ...) #endif } break; + case hx_hexrays_free: +#ifdef TESTABLE_BUILD + if ( !idapython_exiting ) + goto BAD_CODE; +#endif + break; default: BAD_CODE: #ifdef _DEBUG @@ -140,7 +151,7 @@ BAD_CODE: warning("Hex-Rays Decompiler got called from Python without being loaded"); break; } - return NULL; + return nullptr; } hexdsp_t *get_idapython_hexdsp() @@ -267,7 +278,7 @@ void hexrays_register_python_clearable_instance( void *ptr, hx_clearable_type_t type) { - if ( ptr == NULL ) + if ( ptr == nullptr ) return; for ( size_t i = 0, n = python_clearables.size(); i < n; ++i ) if ( python_clearables[i].ptr == ptr ) @@ -378,8 +389,9 @@ static void ida_hexrays_init(void) {} //------------------------------------------------------------------------- static void ida_hexrays_term(void) { + idapython_exiting = true; idapython_unhook_from_notification_point( - HT_UI, ida_hexrays_ui_notification, NULL); + HT_UI, ida_hexrays_ui_notification, nullptr); } //------------------------------------------------------------------------- @@ -424,7 +436,7 @@ bool py_init_hexrays_plugin(int flags=0) // the idapython_hr-decompile test.) vdui_t *py_get_widget_vdui(TWidget *f) { - return hexdsp_inited() ? get_widget_vdui(f) : NULL; + return hexdsp_inited() ? get_widget_vdui(f) : nullptr; } //------------------------------------------------------------------------- @@ -449,5 +461,5 @@ void py_term_hexrays_plugin(void) {} //</inline(py_hexrays)> //<init(py_hexrays)> -idapython_hook_to_notification_point(HT_UI, ida_hexrays_ui_notification, NULL, /*is_hooks_base=*/ false); +idapython_hook_to_notification_point(HT_UI, ida_hexrays_ui_notification, nullptr, /*is_hooks_base=*/ false); //</init(py_hexrays)> diff --git a/pywraps/py_hexrays.py b/pywraps/py_hexrays.py index 01130b3..9f9eef9 100644 --- a/pywraps/py_hexrays.py +++ b/pywraps/py_hexrays.py @@ -465,10 +465,3 @@ def remove_hexrays_callback(callback): return 0 #</pycode(py_hexrays)> - -#<pycode_BC695(py_hexrays)> -get_tform_vdui=get_widget_vdui -hx_get_tform_vdui=hx_get_widget_vdui -HEXRAYS_API_MAGIC1=(HEXRAYS_API_MAGIC>>32) -HEXRAYS_API_MAGIC2=(HEXRAYS_API_MAGIC&0xFFFFFFFF) -#</pycode_BC695(py_hexrays)> diff --git a/pywraps/py_hexrays_hooks.hpp b/pywraps/py_hexrays_hooks.hpp index d40e9ae..4c21fec 100644 --- a/pywraps/py_hexrays_hooks.hpp +++ b/pywraps/py_hexrays_hooks.hpp @@ -18,7 +18,7 @@ static void hexrays_unloading__unhook_hooks(void) //------------------------------------------------------------------------- Hexrays_Hooks::Hexrays_Hooks(uint32 _flags) - : hooks_base_t("ida_hexrays.Hexrays_Hooks", NULL, hook_type_t(-1), _flags), + : hooks_base_t("ida_hexrays.Hexrays_Hooks", nullptr, hook_type_t(-1), _flags), hooked(false) { hexrays_hooks_instances.push_back(this); @@ -66,7 +66,7 @@ struct Hexrays_Hooks : public hooks_base_t return !hooked; } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenHEXRAYS:methods @@ -82,10 +82,14 @@ struct Hexrays_Hooks : public hooks_base_t } private: - static ssize_t handle_create_hint_output(PyObject *o, vdui_t *, qstring *out_hint, int *out_implines) + static ssize_t handle_create_hint_output( + PyObject *o, + vdui_t *, + qstring *out_hint, + int *out_implines) { ssize_t rc = 0; - if ( o != NULL && PySequence_Check(o) && PySequence_Size(o) == 3 ) + if ( o != nullptr && PySequence_Check(o) && PySequence_Size(o) == 3 ) { newref_t py_rc(PySequence_GetItem(o, 0)); newref_t py_hint(PySequence_GetItem(o, 1)); @@ -111,5 +115,21 @@ private: } return rc; } + + static ssize_t handle_build_callinfo_output( + PyObject *o, + mblock_t *, + tinfo_t *, + mcallinfo_t **out_callinfo) + { + if ( o == nullptr || o == Py_None ) + return 0; + mcallinfo_t *mi = nullptr; + const int cvt = SWIG_ConvertPtr(o, (void **) &mi, SWIGTYPE_p_mcallinfo_t, 0); + if ( !SWIG_IsOK(cvt) || mi == nullptr ) + return 0; + *out_callinfo = new mcallinfo_t(*mi); + return 0; + } }; //</inline(py_hexrays_hooks)> diff --git a/pywraps/py_ida.py b/pywraps/py_ida.py index d413a96..4f0eabf 100644 --- a/pywraps/py_ida.py +++ b/pywraps/py_ida.py @@ -1,4 +1,6 @@ #<pycode(py_ida)> +import sys + def __make_idainfo_bound(func, attr): def __func(self, *args): return func(*args) @@ -138,6 +140,11 @@ show_all_comments = inf_show_all_comments show_comments = lambda *args: not inf_hide_comments() show_repeatables = inf_show_repeatables +inf_get_comment = inf_get_cmt_indent +inf_set_comment = inf_set_cmt_indent +idainfo_comment_get = inf_get_cmt_indent +idainfo_comment_set = inf_set_cmt_indent + __make_idainfo_accessors(None, "is_graph_view", "set_graph_view") if ida_idaapi.uses_swig_builtins: @@ -168,95 +175,38 @@ def __wrap_hooks_callback(klass, new_name, old_name, do_call): setattr(__wrapper, "__trampoline", True) setattr(klass, new_name, __wrapper) return __wrapper + + +def __set_module_dynattrs(modname, pdict): + import types + class _module_wrapper_t(types.ModuleType): + def __init__(self, orig): + self.orig = orig + def __getattribute__(self, name): + if name in pdict: + return pdict[name][0]() + elif name == "orig": + return types.ModuleType.__getattribute__(self, name) + elif name == "__dict__": + d = self.orig.__dict__ + d = d.copy() + for name in pdict: + d[name] = pdict[name][0]() + return d + else: + return getattr(self.orig, name) + def __setattr__(self, name, value): + if name == "orig": + types.ModuleType.__setattr__(self, name, value) + else: + return setattr(self.orig, name, value) + + sys.modules[modname] = _module_wrapper_t(sys.modules[modname]) + +__set_module_dynattrs( + __name__, + { + "MAXADDR" : (lambda: inf_get_privrange_start_ea(), None), + }) + #</pycode(py_ida)> - - -#<pycode_BC695(py_ida)> -AF2_ANORET=AF_ANORET -AF2_CHKUNI=AF_CHKUNI -AF2_DATOFF=AF_DATOFF -AF2_DOCODE=AF_DOCODE -AF2_DODATA=AF_DODATA -AF2_FTAIL=AF_FTAIL -AF2_HFLIRT=AF_HFLIRT -AF2_JUMPTBL=AF_JUMPTBL -AF2_MEMFUNC=AF_MEMFUNC -AF2_PURDAT=AF_PURDAT -AF2_REGARG=AF_REGARG -AF2_SIGCMT=AF_SIGCMT -AF2_SIGMLT=AF_SIGMLT -AF2_STKARG=AF_STKARG -AF2_TRFUNC=AF_TRFUNC -AF2_VERSP=AF_VERSP -AF_ASCII=AF_STRLIT -ASCF_AUTO=STRF_AUTO -ASCF_COMMENT=STRF_COMMENT -ASCF_GEN=STRF_GEN -ASCF_SAVECASE=STRF_SAVECASE -ASCF_SERIAL=STRF_SERIAL -ASCF_UNICODE=STRF_UNICODE -INFFL_LZERO=OFLG_LZERO -ansi2idb=ida_idaapi._BC695.identity -idb2scr=ida_idaapi._BC695.identity -scr2idb=ida_idaapi._BC695.identity -showAllComments=show_all_comments -showComments=show_comments -showRepeatables=show_repeatables -toEA=to_ea -idainfo.ASCIIbreak = idainfo.strlit_break -idainfo.ASCIIpref = idainfo.strlit_pref -idainfo.ASCIIsernum = idainfo.strlit_sernum -idainfo.ASCIIzeroes = idainfo.strlit_zeroes -idainfo.asciiflags = idainfo.strlit_flags -idainfo.beginEA = idainfo.start_ea -idainfo.binSize = idainfo.bin_prefix_size -def my_get_proc_name(self): - return [self.procname, self.procname] -idainfo.get_proc_name = my_get_proc_name -idainfo.graph_view = property(idainfo.is_graph_view, idainfo.set_graph_view) -idainfo.mf = property(idainfo.is_be, idainfo.set_be) -idainfo.namelen = idainfo.max_autoname_len -idainfo.omaxEA = idainfo.omax_ea -idainfo.ominEA = idainfo.omin_ea -def make_outflags_accessors(bit): - def getter(self): - return (self.outflags & bit) != 0 - def setter(self, value): - if value: - self.outflags |= bit - else: - self.outflags &= ~bit - return getter, setter -idainfo.s_assume = property(*make_outflags_accessors(OFLG_GEN_ASSUME)) -idainfo.s_auto = property(idainfo.is_auto_enabled, idainfo.set_auto_enabled) -idainfo.s_null = property(*make_outflags_accessors(OFLG_GEN_NULL)) -idainfo.s_org = property(*make_outflags_accessors(OFLG_GEN_ORG)) -idainfo.s_prefseg = property(*make_outflags_accessors(OFLG_PREF_SEG)) -idainfo.s_showauto = property(*make_outflags_accessors(OFLG_SHOW_AUTO)) -idainfo.s_showpref = property(*make_outflags_accessors(OFLG_SHOW_PREF)) -idainfo.s_void = property(*make_outflags_accessors(OFLG_SHOW_VOID)) -idainfo.startIP = idainfo.start_ip -idainfo.startSP = idainfo.start_sp -def make_lflags_accessors(bit): - def getter(self): - return (self.lflags & bit) != 0 - def setter(self, value): - if value: - self.lflags |= bit - else: - self.lflags &= ~bit - return getter, setter -idainfo.wide_high_byte_first = property(*make_lflags_accessors(LFLG_WIDE_HBF)) -def make_obsolete_accessors(): - def getter(self): - return False - def setter(self, value): - pass - return getter, setter -idainfo.allow_nonmatched_ops = property(*make_obsolete_accessors()) -idainfo.check_manual_ops = property(*make_obsolete_accessors()) - -def __wrap_695_hooks_callback(klass, new_name, old_name, do_call): - w = __wrap_hooks_callback(klass, new_name, old_name, do_call) - setattr(w, "bc695_trampoline", True) -#</pycode_BC695(py_ida)> diff --git a/pywraps/py_idaapi.py b/pywraps/py_idaapi.py index 0a7d454..a8f9a99 100644 --- a/pywraps/py_idaapi.py +++ b/pywraps/py_idaapi.py @@ -774,33 +774,33 @@ class IDAPython_displayhook: _IDAPython_displayhook = IDAPython_displayhook() sys.displayhook = _IDAPython_displayhook.displayhook -# ----------------------------------- helpers for bw-compat w/ 6.95 API -class __BC695: - def __init__(self): - self.FIXME = "FIXME @arnaud" - - def false_p(self, *args): - return False - - def identity(self, arg): - return arg - - def dummy(self, *args): - pass - - def replace_fun(self, new): - new.__dict__["bc695redef"] = True - _replace_module_function(new) - -_BC695 = __BC695() - def _make_badattr_property(bad_attr, new_attr): def _raise(*args): raise AttributeError("Property %s has been replaced with %s" % (bad_attr, new_attr)) return property(_raise, _raise) -#</pycode(py_idaapi)> -#<pycode_BC695(py_idaapi)> -pycim_get_tcustom_control=pycim_get_widget -pycim_get_tform=pycim_get_widget -#</pycode_BC695(py_idaapi)> +def _make_one_time_warning_message(bad_attr, new_attr): + warned = [False] + def f(): + if not warned[0]: + import traceback + # skip two frames to get the actual line which triggered the access + f = sys._getframe().f_back.f_back + traceback.print_stack(f) + print("Please use \"%s\" instead of \"%s\" (\"%s\" is kept for backward-compatibility, and will be removed soon.)" % (new_attr, bad_attr, bad_attr)) + warned[0] = True + return f + +def _make_missed_695bwcompat_property(bad_attr, new_attr, has_setter): + _notify_bwcompat = _make_one_time_warning_message(bad_attr, new_attr) + def _getter(self): + _notify_bwcompat() + return getattr(self, new_attr) + def _setter(self, v): + _notify_bwcompat() + return setattr(self, new_attr, v) + return property(_getter, _setter if has_setter else None) + + + +#</pycode(py_idaapi)> diff --git a/pywraps/py_idaapi_loader_input.hpp b/pywraps/py_idaapi_loader_input.hpp index c702a8f..2b35c0b 100644 --- a/pywraps/py_idaapi_loader_input.hpp +++ b/pywraps/py_idaapi_loader_input.hpp @@ -137,17 +137,17 @@ public: // class from and to IDC. The value of this variable must be set to two int __idc_cvt_id__; //-------------------------------------------------------------------------- - loader_input_t(PyObject *pycapsule = NULL): li(NULL), own(OWN_NONE), __idc_cvt_id__(PY_ICID_OPAQUE) + loader_input_t(PyObject *pycapsule = nullptr): li(nullptr), own(OWN_NONE), __idc_cvt_id__(PY_ICID_OPAQUE) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( pycapsule != NULL && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) + if ( pycapsule != nullptr && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) _from_capsule(pycapsule); } //-------------------------------------------------------------------------- void close() { - if ( li == NULL ) + if ( li == nullptr ) return; PYW_GIL_GET; @@ -157,7 +157,7 @@ public: else if ( own == OWN_FROM_FP ) unmake_linput(li); Py_END_ALLOW_THREADS; - li = NULL; + li = nullptr; own = OWN_NONE; } @@ -174,14 +174,14 @@ public: PYW_GIL_GET; Py_BEGIN_ALLOW_THREADS; li = open_linput(filename, remote); - if ( li != NULL ) + if ( li != nullptr ) { // Save file name fn = filename; own = OWN_CREATE; } Py_END_ALLOW_THREADS; - return li != NULL; + return li != nullptr; } //-------------------------------------------------------------------------- @@ -207,7 +207,7 @@ public: { PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) - return NULL; + return nullptr; loader_input_t *l = new loader_input_t(); l->_from_capsule(pycapsule); return l; @@ -217,10 +217,10 @@ public: static loader_input_t *from_fp(FILE *fp) { PYW_GIL_GET; - loader_input_t *l = NULL; + loader_input_t *l = nullptr; Py_BEGIN_ALLOW_THREADS; linput_t *fp_li = make_linput(fp); - if ( fp_li != NULL ) + if ( fp_li != nullptr ) { l = new loader_input_t(); l->own = OWN_FROM_FP; @@ -244,7 +244,7 @@ public: linput_t *l; Py_BEGIN_ALLOW_THREADS; l = create_memory_linput(start, size); - if ( l != NULL ) + if ( l != nullptr ) { close(); li = l; @@ -252,7 +252,7 @@ public: own = OWN_CREATE; } Py_END_ALLOW_THREADS; - return l != NULL; + return l != nullptr; } //-------------------------------------------------------------------------- @@ -284,7 +284,7 @@ public: do { char *buf = (char *) malloc(sz + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; Py_BEGIN_ALLOW_THREADS; qlgetz(li, fpos, buf, sz); @@ -304,7 +304,7 @@ public: buf.resize(len); bool ok; Py_BEGIN_ALLOW_THREADS; - ok = qlgets((char *) buf.begin(), buf.size(), li) != NULL; + ok = qlgets((char *) buf.begin(), buf.size(), li) != nullptr; Py_END_ALLOW_THREADS; if ( !ok ) Py_RETURN_NONE; @@ -329,7 +329,7 @@ public: //-------------------------------------------------------------------------- bool opened() { - return li != NULL; + return li != nullptr; } //-------------------------------------------------------------------------- @@ -339,7 +339,7 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; int r; Py_BEGIN_ALLOW_THREADS; diff --git a/pywraps/py_idc.hpp b/pywraps/py_idc.hpp index 5f37727..6f9dae1 100644 --- a/pywraps/py_idc.hpp +++ b/pywraps/py_idc.hpp @@ -15,7 +15,7 @@ inline void mark_position( ri.pos.cx = x; ri.pos.cy = y; lochist_entry_t loc(&ip, ri); - bookmarks_t::mark(loc, slot, NULL, comment, NULL); + bookmarks_t::mark(loc, slot, nullptr, comment, nullptr); } //------------------------------------------------------------------------- @@ -25,7 +25,7 @@ inline ea_t get_marked_pos(int32 slot) renderer_info_t ri; lochist_entry_t loc(&ip, ri); uint32 uslot = uint32(slot); - return bookmarks_t::get(&loc, NULL, &uslot, NULL) + return bookmarks_t::get(&loc, nullptr, &uslot, nullptr) ? loc.place()->toea() : BADADDR; } @@ -37,7 +37,7 @@ inline PyObject *get_mark_comment(int32 slot) idaplace_t ip(inf_get_min_ea(), 0); renderer_info_t ri; lochist_entry_t loc(&ip, ri); - if ( bookmarks_t::get_desc(&desc, loc, slot, NULL) ) + if ( bookmarks_t::get_desc(&desc, loc, slot, nullptr) ) return IDAPyStr_FromUTF8(desc.c_str()); else Py_RETURN_NONE; diff --git a/pywraps/py_idd.hpp b/pywraps/py_idd.hpp index b848860..556e663 100644 --- a/pywraps/py_idd.hpp +++ b/pywraps/py_idd.hpp @@ -10,13 +10,13 @@ PyObject *py_appcall( PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyList_Check(arg_list) ) - return NULL; + return nullptr; const type_t *type = (const type_t *) _type_or_none.begin(); const type_t *fields = (const p_list *) _fields.begin(); tinfo_t tif; - tinfo_t *ptif = NULL; - if ( tif.deserialize(NULL, &type, &fields) ) + tinfo_t *ptif = nullptr; + if ( tif.deserialize(nullptr, &type, &fields) ) ptif = &tif; // Convert Python arguments into IDC values @@ -49,7 +49,7 @@ PyObject *py_appcall( PyErr_SetString( PyExc_ValueError, "PyAppCall: Failed to convert Python values to IDC values"); - return NULL; + return nullptr; } error_t ret; @@ -89,13 +89,13 @@ PyObject *py_appcall( ref_t py_appcall_exc; idcvar_to_pyvar(idc_result, &py_appcall_exc); PyErr_SetObject(PyExc_OSError, py_appcall_exc.o); - return NULL; + return nullptr; } // An error in the Appcall? (or an exception but AppCallOptions/DEBEV is not set) else { PyErr_SetString(PyExc_Exception, qstrerror(ret)); - return NULL; + return nullptr; } } @@ -122,7 +122,7 @@ PyObject *py_appcall( if ( idcvar_to_pyvar(idc_args[i], &py_item) == CIP_FAILED ) { PyErr_SetString(PyExc_ValueError, "PyAppCall: Failed while converting IDC values to Python values"); - return NULL; + return nullptr; } } @@ -133,7 +133,7 @@ PyObject *py_appcall( if ( idcvar_to_pyvar(idc_result, &py_result, PYWCVTF_STR_AS_BYTES) <= CIP_IMMUTABLE ) { PyErr_SetString(PyExc_ValueError, "PyAppCall: Failed while converting IDC return value to Python return value"); - return NULL; + return nullptr; } if ( (debug & IDA_DEBUG_APPCALL) != 0 ) { @@ -169,7 +169,7 @@ static PyObject *dbg_get_registers() { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( dbg == NULL ) + if ( dbg == nullptr ) Py_RETURN_NONE; PyObject *py_list = PyList_New(dbg->nregs); @@ -181,14 +181,14 @@ static PyObject *dbg_get_registers() // Does this register have bit strings? // (Make sure it does not use custom formats because bit_string would be the format name) - if ( ri.bit_strings != NULL && (ri.flags & REGISTER_CUSTFMT) == 0 ) + if ( ri.bit_strings != nullptr && (ri.flags & REGISTER_CUSTFMT) == 0 ) { int nbits = (int)b2a_width((int)get_dtype_size(ri.dtype), 0) * 4; py_bits = PyList_New(nbits); for ( int i=0; i < nbits; i++ ) { const char *s = ri.bit_strings[i]; - PyList_SetItem(py_bits, i, IDAPyStr_FromUTF8(s == NULL ? "" : s)); + PyList_SetItem(py_bits, i, IDAPyStr_FromUTF8(s == nullptr ? "" : s)); } } else @@ -255,8 +255,8 @@ static PyObject *dbg_read_memory(ea_t ea, size_t sz) Py_RETURN_NONE; // Create a Python string - PyObject *ret = IDAPyBytes_FromMemAndSize(NULL, Py_ssize_t(sz)); - if ( ret == NULL ) + PyObject *ret = IDAPyBytes_FromMemAndSize(nullptr, Py_ssize_t(sz)); + if ( ret == nullptr ) Py_RETURN_NONE; // Get the internal buffer @@ -311,7 +311,7 @@ static PyObject *dbg_get_name() { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( dbg == NULL ) + if ( dbg == nullptr ) Py_RETURN_NONE; else return IDAPyStr_FromUTF8(dbg->name); diff --git a/pywraps/py_idd.py b/pywraps/py_idd.py index e8cc8eb..817510a 100644 --- a/pywraps/py_idd.py +++ b/pywraps/py_idd.py @@ -246,7 +246,7 @@ class Appcall_consts__(object): def __getattr__(self, attr): v = Appcall__.valueof(attr, self.__default) if v is None: - raise ValueError("No constant with name " + attr) + raise AttributeError("No constant with name " + attr) return v # ----------------------------------------------------------------------- @@ -301,7 +301,7 @@ class Appcall__(object): ea = name_or_ea # could not resolve name or invalid address? if ea == _ida_idaapi.BADADDR or not _ida_bytes.is_mapped(ea): - raise ValueError("Undefined function " + name_or_ea) + raise AttributeError("Undefined function " + name_or_ea) return ea @staticmethod @@ -353,7 +353,7 @@ class Appcall__(object): # resolve and raise exception on error ea = self.__name_or_ea(name_or_ea) if ea == _ida_idaapi.BADADDR: - raise ValueError("Undefined function " + name) + raise AttributeError("Undefined function " + name) # Return the callable method return Appcall_callable__(ea) @@ -456,7 +456,3 @@ class Appcall__(object): Appcall = Appcall__() #</pycode(py_idd)> - -#<pycode_BC695(py_idd)> -PROCESS_NO_THREAD=NO_THREAD -#</pycode_BC695(py_idd)> diff --git a/pywraps/py_idp.hpp b/pywraps/py_idp.hpp index f58664e..7993509 100644 --- a/pywraps/py_idp.hpp +++ b/pywraps/py_idp.hpp @@ -303,12 +303,12 @@ static PyObject *ph_get_instruc() Py_ssize_t i = 0; PYW_GIL_CHECK_LOCKED_SCOPE(); processor_t &ph = PH; - PyObject *py_result = PyTuple_New(ph.instruc_end - ph.instruc_start); + PyObject *py_result = PyList_New(ph.instruc_end - ph.instruc_start); for ( const instruc_t *p = ph.instruc + ph.instruc_start, *end = ph.instruc + ph.instruc_end; p != end; ++p ) { - PyTuple_SetItem(py_result, i++, Py_BuildValue("(sI)", p->name, p->feature)); + PyList_SetItem(py_result, i++, Py_BuildValue("(sI)", p->name, p->feature)); } return py_result; } @@ -363,7 +363,7 @@ static PyObject *ph_get_operand_info( Py_BEGIN_ALLOW_THREADS; do { - if ( dbg == NULL || n == - 1 ) + if ( dbg == nullptr || n == - 1 ) break; // Allocate register space @@ -447,7 +447,7 @@ struct IDP_Hooks : public hooks_base_t bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenIDP:methods @@ -488,8 +488,8 @@ private: static ssize_t cm_t_to_ssize_t(cm_t cm) { return ssize_t(cm); } static bool _handle_qstring_output(PyObject *o, qstring *buf) { - bool is_str = o != NULL && IDAPyStr_Check(o); - if ( is_str && buf != NULL ) + bool is_str = o != nullptr && IDAPyStr_Check(o); + if ( is_str && buf != nullptr ) IDAPyStr_AsUTF8(buf, o); Py_XDECREF(o); return is_str; @@ -508,7 +508,7 @@ private: const char * /*line*/) { ssize_t rc = 0; - if ( o != NULL && IDAPyBytes_Check(o) ) + if ( o != nullptr && IDAPyBytes_Check(o) ) { char *s; Py_ssize_t len = 0; @@ -543,11 +543,11 @@ private: && PyBool_Check(py_bexec.o) && PyBool_Check(py_fexec.o) ) { - if ( pea != NULL ) + if ( pea != nullptr ) *pea = nea; - if ( pbexec != NULL ) + if ( pbexec != nullptr ) *pbexec = py_bexec.o == Py_True; - if ( pfexec != NULL ) + if ( pfexec != nullptr ) *pfexec = py_fexec.o == Py_True; return 1; } @@ -591,7 +591,7 @@ private: { rc = IDAPyInt_AsLong(py_rc.o); *out_res = IDAPyInt_AsLong(py_out_res.o); - if ( out != NULL ) + if ( out != nullptr ) out->swap(qs); } } @@ -669,7 +669,7 @@ inline size_t sizeof_ldbl(void) //------------------------------------------------------------------------- static PyObject *_wrap_addr_in_pycapsule(void *addr) { - return PyCapsule_New(addr, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(addr, VALID_CAPSULE_NAME, nullptr); } //------------------------------------------------------------------------- diff --git a/pywraps/py_idp_idbhooks.hpp b/pywraps/py_idp_idbhooks.hpp index ec44002..e7e58c8 100644 --- a/pywraps/py_idp_idbhooks.hpp +++ b/pywraps/py_idp_idbhooks.hpp @@ -15,7 +15,7 @@ struct IDB_Hooks : public hooks_base_t bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenIDB:methods diff --git a/pywraps/py_kernwin.hpp b/pywraps/py_kernwin.hpp index 674a1d3..edcb70c 100644 --- a/pywraps/py_kernwin.hpp +++ b/pywraps/py_kernwin.hpp @@ -51,7 +51,7 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( py_callback == NULL || !PyCallable_Check(py_callback) ) + if ( py_callback == nullptr || !PyCallable_Check(py_callback) ) Py_RETURN_NONE; // An inner class hosting the callback method @@ -61,14 +61,14 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) { PYW_GIL_GET; py_timer_ctx_t *ctx = (py_timer_ctx_t *)ud; - newref_t py_result(PyObject_CallFunctionObjArgs(ctx->pyfunc.o, NULL)); + newref_t py_result(PyObject_CallFunctionObjArgs(ctx->pyfunc.o, nullptr)); int ret = -1; if ( PyErr_Occurred() ) { msg("Exception in timer callback. This timer will be unregistered.\n"); PyErr_Print(); } - else if ( py_result != NULL ) + else if ( py_result != nullptr ) { ret = PyLong_AsLong(py_result.o); } @@ -86,9 +86,9 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) tmr_t::callback, ctx); - if ( ctx->timer_id != NULL ) + if ( ctx->timer_id != nullptr ) { - return PyCapsule_New(ctx, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(ctx, VALID_CAPSULE_NAME, nullptr); } else { @@ -115,11 +115,11 @@ static bool py_unregister_timer(PyObject *py_timerctx) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( py_timerctx == NULL || !PyCapsule_IsValid(py_timerctx, VALID_CAPSULE_NAME) ) + if ( py_timerctx == nullptr || !PyCapsule_IsValid(py_timerctx, VALID_CAPSULE_NAME) ) return false; py_timer_ctx_t *ctx = (py_timer_ctx_t *) PyCapsule_GetPointer(py_timerctx, VALID_CAPSULE_NAME); - if ( ctx == NULL || !unregister_timer(ctx->timer_id) ) + if ( ctx == nullptr || !unregister_timer(ctx->timer_id) ) return false; python_timer_del(ctx); @@ -144,7 +144,7 @@ static PyObject *py_choose_idasgn() { char *name = choose_idasgn(); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( name == NULL ) + if ( name == nullptr ) { Py_RETURN_NONE; } @@ -159,21 +159,23 @@ static PyObject *py_choose_idasgn() //------------------------------------------------------------------------ /* #<pydoc> -def get_highlight(): +def get_highlight(v, flags=0): """ Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error. """ pass #</pydoc> */ -static PyObject *py_get_highlight(TWidget *v) +static PyObject *py_get_highlight(TWidget *v, uint32 in_flags=0) { qstring buf; uint32 flags; - bool ok = get_highlight(&buf, v, &flags); + bool ok = get_highlight(&buf, v, &flags, in_flags); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !ok ) Py_RETURN_NONE; @@ -249,26 +251,15 @@ def read_selection(view, p0, p1): */ //------------------------------------------------------------------------ -/* -#<pydoc> -def msg(text): - """ - Prints text into IDA's Output window - - @param text: text to print - Can be Unicode, or string in local encoding - @return: number of bytes printed - """ - pass -#</pydoc> -*/ static PyObject *py_msg(PyObject *o) { - const char *utf8 = NULL; + const char *utf8 = nullptr; ref_t py_utf8; if ( PyUnicode_Check(o) ) { py_utf8 = newref_t(PyUnicode_AsUTF8String(o)); + if ( PyErr_Occurred() != nullptr ) + return nullptr; utf8 = PyString_AsString(py_utf8.o); } else if ( PyString_Check(o) ) @@ -278,7 +269,7 @@ static PyObject *py_msg(PyObject *o) else { PyErr_SetString(PyExc_TypeError, "A string expected"); - return NULL; + return nullptr; } int rc; Py_BEGIN_ALLOW_THREADS; @@ -387,7 +378,7 @@ def process_ui_action(name): */ static bool py_process_ui_action(const char *name, int flags = 0) { - return process_ui_action(name, flags, NULL); + return process_ui_action(name, flags, nullptr); } //------------------------------------------------------------------------ @@ -411,7 +402,7 @@ bool py_del_hotkey(PyObject *pyctx) return false; py_idchotkey_ctx_t *ctx = (py_idchotkey_ctx_t *) PyCapsule_GetPointer(pyctx, VALID_CAPSULE_NAME); - if ( ctx == NULL || !unregister_action(ctx->action_name.c_str()) ) + if ( ctx == nullptr || !unregister_action(ctx->action_name.c_str()) ) return false; delete ctx; @@ -442,7 +433,7 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) PYW_GIL_CHECK_LOCKED_SCOPE(); // Make sure a callable was passed if ( !PyCallable_Check(pyfunc) ) - return NULL; + return nullptr; // Form the function name qstring idc_func_name; @@ -459,7 +450,7 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) // Now add the global variable idc_value_t *gvar = add_idc_gvar(idc_gvarname.c_str()); - if ( gvar == NULL ) + if ( gvar == nullptr ) break; // The function body will call a registered IDC function that @@ -482,7 +473,7 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) gvar->set_pvoid(pyfunc); // Return the context - return PyCapsule_New(ctx, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(ctx, VALID_CAPSULE_NAME, nullptr); } while (false); } // Cleanup @@ -500,7 +491,7 @@ static PyObject *py_take_database_snapshot(snapshot_t *ss) bool b = take_database_snapshot(ss, &err_msg); // Return (b, err_msg) - return Py_BuildValue("(Ns)", PyBool_FromLong(b), err_msg.empty() ? NULL : err_msg.c_str()); + return Py_BuildValue("(Ns)", PyBool_FromLong(b), err_msg.empty() ? nullptr : err_msg.c_str()); } //------------------------------------------------------------------------ @@ -529,7 +520,7 @@ static void idaapi py_ss_restore_callback(const char *err_msg, void *userdata) Py_DECREF(o); // We cannot raise an exception in the callback, just print it. - if ( result == NULL ) + if ( result == nullptr ) PyErr_Print(); } @@ -543,14 +534,14 @@ static PyObject *py_restore_database_snapshot( // If there is no callback, just call the function directly if ( pyfunc_or_none == Py_None ) - return PyBool_FromLong(restore_database_snapshot(ss, NULL, NULL)); + return PyBool_FromLong(restore_database_snapshot(ss, nullptr, nullptr)); // Create a new tuple or increase reference to pytuple_or_none if ( pytuple_or_none == Py_None ) { pytuple_or_none = PyTuple_New(0); - if ( pytuple_or_none == NULL ) - return NULL; + if ( pytuple_or_none == nullptr ) + return nullptr; } else { @@ -624,8 +615,8 @@ static int py_execute_sync(PyObject *py_callable, int reqf) virtual int idaapi execute() override { PYW_GIL_GET; - newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, NULL)); - int ret = py_result == NULL || !IDAPyInt_Check(py_result.o) + newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, nullptr)); + int ret = py_result == nullptr || !IDAPyInt_Check(py_result.o) ? -1 : IDAPyInt_AsLong(py_result.o); // if the requesting thread decided not to wait for the request to @@ -716,8 +707,8 @@ static bool py_execute_ui_requests(PyObject *py_list) // Get callable ref_t py_callable = py_callables.at(py_callable_idx); bool reschedule; - newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, NULL)); - reschedule = py_result != NULL && PyObject_IsTrue(py_result.o); + newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, nullptr)); + reschedule = py_result != nullptr && PyObject_IsTrue(py_result.o); // No rescheduling? Then advance to the next callable if ( !reschedule ) @@ -750,7 +741,7 @@ static bool py_execute_ui_requests(PyObject *py_list) delete req; return false; } - execute_ui_requests(req, NULL); + execute_ui_requests(req, nullptr); return true; } @@ -761,14 +752,16 @@ def set_dock_pos(src, dest, orient, left = 0, top = 0, right = 0, bottom = 0): """ Sets the dock orientation of a window relatively to another window. + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + @param src: Source docking control @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + @param orient: One of DP_XXXX constants @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window """ pass #</pydoc> @@ -796,19 +789,19 @@ public: PyObject *get_dict() { newref_t json_module(PyImport_ImportModule("json")); - if ( json_module != NULL ) + if ( json_module != nullptr ) { borref_t json_globals(PyModule_GetDict(json_module.o)); - if ( json_globals != NULL ) + if ( json_globals != nullptr ) { borref_t json_loads(PyDict_GetItemString(json_globals.o, "loads")); - if ( json_loads != NULL ) + if ( json_loads != nullptr ) { qstring clob; if ( serialize_json(&clob, o) ) { newref_t dict(PyObject_CallFunction(json_loads.o, "s", clob.c_str())); - if ( dict != NULL ) + if ( dict != nullptr ) { dict.incref(); return dict.o; @@ -825,13 +818,13 @@ public: if ( PyDict_Check(dict) ) { newref_t json_module(PyImport_ImportModule("json")); - if ( json_module != NULL ) + if ( json_module != nullptr ) { borref_t json_globals(PyModule_GetDict(json_module.o)); - if ( json_globals != NULL ) + if ( json_globals != nullptr ) { borref_t json_dumps(PyDict_GetItemString(json_globals.o, "dumps")); - if ( json_dumps != NULL ) + if ( json_dumps != nullptr ) { newref_t str(PyObject_CallFunction(json_dumps.o, "O", dict)); qstring buf; @@ -866,7 +859,7 @@ struct UI_Hooks : public hooks_base_t bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenUI:methods @@ -885,7 +878,7 @@ private: static ssize_t handle_get_ea_hint_output(PyObject *o, qstring *buf, ea_t) { ssize_t rc = 0; - if ( o != NULL && IDAPyStr_Check(o) && IDAPyStr_AsUTF8(buf, o) ) + if ( o != nullptr && IDAPyStr_Check(o) && IDAPyStr_AsUTF8(buf, o) ) rc = 1; Py_XDECREF(o); return rc; @@ -893,17 +886,17 @@ private: static ssize_t handle_hint_output(PyObject *o, qstring *hint, int *important_lines) { - if ( o != NULL && PyTuple_Check(o) && PyTuple_Size(o) == 2 ) + if ( o != nullptr && PyTuple_Check(o) && PyTuple_Size(o) == 2 ) { borref_t el0(PyTuple_GetItem(o, 0)); qstring plug_hint; - if ( el0 != NULL + if ( el0 != nullptr && IDAPyStr_Check(el0.o) && IDAPyStr_AsUTF8(&plug_hint, el0.o) && !plug_hint.empty() ) { borref_t el1(PyTuple_GetItem(o, 1)); - if ( el1 != NULL && IDAPyInt_Check(el1.o) ) + if ( el1 != nullptr && IDAPyInt_Check(el1.o) ) { long lns = IDAPyInt_AsLong(el1.o); if ( lns > 0 ) @@ -938,9 +931,9 @@ private: { if ( o == Py_None ) return 0; - TWidget *widget = NULL; + TWidget *widget = nullptr; int cvt = SWIG_ConvertPtr(o, (void **) &widget, SWIGTYPE_p_TWidget, 0); - if ( !SWIG_IsOK(cvt) || widget == NULL ) + if ( !SWIG_IsOK(cvt) || widget == nullptr ) return 0; return ssize_t(widget); } @@ -958,10 +951,10 @@ bool py_register_action(action_desc_t *desc) bool ok = register_action(*desc); if ( ok ) { - // Let's set this to NULL, so when the wrapping Python action_desc_t + // Let's set this to nullptr, so when the wrapping Python action_desc_t // instance is deleted, it doesn't try to delete the handler (See // kernwin.i's action_desc_t::~action_desc_t()). - desc->handler = NULL; + desc->handler = nullptr; } return ok; } @@ -983,7 +976,7 @@ def py_attach_dynamic_action_to_popup( popup_handle, desc, popuppath = None, - flags = 0) + flags = 0): """ Create & insert an action into the widget's popup menu (::ui_attach_dynamic_action_to_popup). @@ -1007,7 +1000,7 @@ bool py_attach_dynamic_action_to_popup( TWidget *widget, TPopupMenu *popup_handle, action_desc_t *desc, - const char *popuppath = NULL, + const char *popuppath = nullptr, int flags = 0) { bool ok = attach_dynamic_action_to_popup( @@ -1017,7 +1010,7 @@ bool py_attach_dynamic_action_to_popup( // the popup is dismissed, // * fails: the action (and its handler) will be deleted right away // Therefore, we must always drop ownership. - desc->handler = NULL; + desc->handler = nullptr; return ok; } @@ -1025,13 +1018,13 @@ bool py_attach_dynamic_action_to_popup( // twinline_t has a dummy destructor, that performs no cleanup. struct disasm_line_t { - disasm_line_t() : at(NULL) {} + disasm_line_t() : at(nullptr) {} ~disasm_line_t() { qfree(at); } disasm_line_t(const disasm_line_t &other) { *this = other; } disasm_line_t &operator=(const disasm_line_t &other) { qfree(at); - at = other.at == NULL ? NULL : other.at->clone(); + at = other.at == nullptr ? nullptr : other.at->clone(); return *this; } place_t *at; @@ -1121,7 +1114,7 @@ PyObject *py_set_nav_colorizer(PyObject *new_py_colorizer) { PYW_GIL_GET; - if ( py_colorizer == NULL ) // Shouldn't happen. + if ( py_colorizer == nullptr ) // Shouldn't happen. return 0; newref_t pyres = PyObject_CallFunction( py_colorizer.o, "KK", @@ -1129,7 +1122,7 @@ PyObject *py_set_nav_colorizer(PyObject *new_py_colorizer) (unsigned long long) nbytes); PyW_ShowCbErr("nav_colorizer"); uint32 rc = 0; - bool ok = pyres.o != NULL && PyLong_Check(pyres.o); + bool ok = pyres.o != nullptr && PyLong_Check(pyres.o); if ( ok ) { int overflow = 0; @@ -1165,15 +1158,15 @@ PyObject *py_set_nav_colorizer(PyObject *new_py_colorizer) // Always perform the call to set_nav_colorizer(): that has side-effects // (e.g., updating the legend.) - bool first_install = py_colorizer == NULL; + bool first_install = py_colorizer == nullptr; py_colorizer = borref_t(new_py_colorizer); - nav_colorizer_t *was_fun = NULL; - void *was_ud = NULL; - set_nav_colorizer(&was_fun, &was_ud, lambda_t::call_py_colorizer, NULL); + nav_colorizer_t *was_fun = nullptr; + void *was_ud = nullptr; + set_nav_colorizer(&was_fun, &was_ud, lambda_t::call_py_colorizer, nullptr); if ( !first_install ) Py_RETURN_NONE; - PyObject *was_fun_ptr = PyCapsule_New((void *) was_fun, VALID_CAPSULE_NAME, NULL); - PyObject *was_ud_ptr = PyCapsule_New(was_ud, VALID_CAPSULE_NAME, NULL); + PyObject *was_fun_ptr = PyCapsule_New((void *) was_fun, VALID_CAPSULE_NAME, nullptr); + PyObject *was_ud_ptr = PyCapsule_New(was_ud, VALID_CAPSULE_NAME, nullptr); PyObject *dict = PyDict_New(); PyDict_SetItemString(dict, "fun", was_fun_ptr); PyDict_SetItemString(dict, "ud", was_ud_ptr); @@ -1200,7 +1193,7 @@ uint32 py_call_nav_colorizer( return 0; borref_t py_fun(PyDict_GetItemString(dict, "fun")); borref_t py_ud(PyDict_GetItemString(dict, "ud")); - if ( py_fun == NULL + if ( py_fun == nullptr || !PyCapsule_IsValid(py_fun.o, VALID_CAPSULE_NAME) || !PyCapsule_IsValid(py_ud.o, VALID_CAPSULE_NAME) ) { @@ -1208,7 +1201,7 @@ uint32 py_call_nav_colorizer( } nav_colorizer_t *fun = (nav_colorizer_t *) PyCapsule_GetPointer(py_fun.o, VALID_CAPSULE_NAME); void *ud = PyCapsule_GetPointer(py_ud.o, VALID_CAPSULE_NAME); - if ( fun == NULL ) + if ( fun == nullptr ) return 0; return fun(ea, nbytes, ud); } @@ -1320,7 +1313,7 @@ bool idaapi py_menu_item_callback(void *userdata) newref_t result(PyEval_CallObject(func, args)); // We cannot raise an exception in the callback, just print it. - if ( result == NULL ) + if ( result == nullptr ) { PyErr_Print(); return false; diff --git a/pywraps/py_kernwin.py b/pywraps/py_kernwin.py index 33adab2..effd89f 100644 --- a/pywraps/py_kernwin.py +++ b/pywraps/py_kernwin.py @@ -136,358 +136,3 @@ ida_ida.__wrap_hooks_callback( from ida_pro import str2user #</pycode(py_kernwin)> - -#<pycode_BC695(py_kernwin)> -AST_DISABLE_FOR_FORM=AST_DISABLE_FOR_WIDGET -AST_ENABLE_FOR_FORM=AST_ENABLE_FOR_WIDGET -CB_CLOSE_IDB=CB_INVISIBLE -chtype_generic2=chtype_generic -chtype_segreg=chtype_srcp -close_tform=close_widget -find_tform=find_widget -get_current_tform=get_current_widget -def get_highlighted_identifier(): - thing = get_highlight(get_current_viewer()) - if thing and thing[1]: - return thing[0] -get_tform_title=get_widget_title -get_tform_type=get_widget_type -is_chooser_tform=is_chooser_widget -open_tform=display_widget -pyscv_get_tcustom_control=pyscv_get_widget -pyscv_get_tform=pyscv_get_widget -__read_selection70 = read_selection -def read_selection(*args): - if len(args) == 0: - # bw-compat - t0, t1, view = twinpos_t(), twinpos_t(), get_current_viewer() - sel = __read_selection70(view, t0, t1) - import ida_idaapi - a0, a1 = ida_idaapi.BADADDR, ida_idaapi.BADADDR - if sel: - a0, a1 = t0.place(view).toea(), t1.place(view).toea() - return sel, a0, a1 - else: - return __read_selection70(*args) - -readsel2=read_selection -switchto_tform=activate_widget -umsg=msg - -def __wrap_uihooks_callback(name, do_call): - return ida_ida.__wrap_695_hooks_callback(UI_Hooks, name, name.replace("widget", "tform"), do_call) - - -__wrap_uihooks_callback("widget_visible", lambda cb, *args: cb(args[0], args[0])) -__wrap_uihooks_callback("widget_invisible", lambda cb, *args: cb(args[0], args[0])) -__wrap_uihooks_callback("populating_widget_popup", lambda cb, *args: cb(*args)) -__wrap_uihooks_callback("finish_populating_widget_popup", lambda cb, *args: cb(*args)) -__wrap_uihooks_callback("current_widget_changed", lambda cb, *args: cb(*args)) - -AskUsingForm=ask_form -HIST_ADDR=0 -HIST_NUM=0 -KERNEL_VERSION_MAGIC1=0 -KERNEL_VERSION_MAGIC2=0 -OpenForm=open_form -_askaddr=_ida_kernwin._ask_addr -_asklong=_ida_kernwin._ask_long -_askseg=_ida_kernwin._ask_seg -askaddr=ask_addr -askbuttons_c=ask_buttons -askfile_c=ask_file -def askfile2_c(forsave, defdir, filters, fmt): - if filters: - fmt = "FILTER %s\n%s" % (filters, fmt) - return ask_file(forsave, defdir, fmt) -askident=ask_ident -asklong=ask_long -def askqstr(defval, fmt): - return ask_str(defval, 0, fmt) -askseg=ask_seg -def askstr(hist, defval, fmt): - return ask_str(defval, hist, fmt) -asktext=ask_text -askyn_c=ask_yn -choose2_activate=choose_activate -choose2_close=choose_close -#choose2_create=choose_create -choose2_find=choose_find -#choose2_get_embedded=_choose_get_embedded_chobj_pointer -choose2_get_embedded_selection=lambda *args: None -choose2_refresh=choose_refresh -clearBreak=clr_cancelled -py_get_AskUsingForm=py_get_ask_form -py_get_OpenForm=py_get_open_form -setBreak=set_cancelled -wasBreak=user_cancelled -refresh_lists=refresh_choosers - - -# ------------------------------------------------------- -class Choose2(object): - """v.6.95 compatible chooser wrapper class.""" - - CH_MODAL = 0x01 - CH_MULTI = 0x04 - CH_MULTI_EDIT = 0x08 - """ - The OnEditLine() callback will be called for all - selected items using the START_SEL/END_SEL - protocol. - This bit implies #CH_MULTI. - """ - CH_NOBTNS = 0x10 - CH_ATTRS = 0x20 - CH_NOIDB = 0x40 - CH_BUILTIN_SHIFT = 19 - CH_BUILTIN_MASK = 0x1F << CH_BUILTIN_SHIFT - - # column flags (are specified in the widths array) - CHCOL_PLAIN = 0x00000000 - CHCOL_PATH = 0x00010000 - CHCOL_HEX = 0x00020000 - CHCOL_DEC = 0x00030000 - CHCOL_FORMAT = 0x00070000 - - # special values of the chooser index - NO_SELECTION = -1 - """there is no selected item""" - START_SEL = -2 - """before calling the first selected item""" - END_SEL = -3 - """after calling the last selected item""" - - - # the v.7.0 chooser object implementing the v.6.95 chooser - class ChooseWrapper(Choose): - - def __init__(self, v695_chooser): - self.link = v695_chooser - # check what non-base callbacks we have - forbidden_cb = 0 - for cb in [("OnInsertLine", Choose.CHOOSE_HAVE_INS ), - ("OnDeleteLine", Choose.CHOOSE_HAVE_DEL ), - ("OnEditLine", Choose.CHOOSE_HAVE_EDIT ), - ("OnSelectLine", Choose.CHOOSE_HAVE_ENTER ), - ("OnRefresh", Choose.CHOOSE_HAVE_REFRESH), - ("OnSelectionChange", Choose.CHOOSE_HAVE_SELECT)]: - if not hasattr(self.link, cb[0]) or \ - not callable(getattr(self.link, cb[0])): - forbidden_cb |= cb[1] - Choose.__init__( - self, self.link.title, self.link.cols, - forbidden_cb = forbidden_cb) - - # redirect base callbacks to the v.6.95 chooser - def __getattr__(self, attr): - if attr in ["OnGetSize", - "OnGetLine", - "OnGetIcon", - "OnGetLineAttr", - "OnClose"]: - return getattr(self.link, attr) - return getattr(self.link, attr) - - def Show(self, modal = False): - # set `flags` and `deflt` - self.flags = self.link.flags - if self.link.deflt == -1: - self.deflt = 0 - else: - self.deflt = self.link.deflt - 1 - self.flags |= Choose.CH_FORCE_DEFAULT - if (self.flags & Choose.CH_MULTI) != 0: - self.deflt = [self.deflt] - # copy simple attributes from v.6.95 - for attr in ["title", "cols", "popup_names", "icon", - "x1", "y1", "x2", "y2", - "embedded", "width", "height"]: - if hasattr(self.link, attr): - setattr(self, attr, getattr(self.link, attr)) - else: - delattr(self, attr) - return Choose.Show(self, modal) - - def OnInsertLine(self, n): - # assert: hasattr(self.link, "OnInsertLine") - self.link.OnInsertLine() - # we preserve the selection - return (Choose.ALL_CHANGED, n) - if (self.link.flags & Choose2.CH_MULTI) == 0: - return (Choose.ALL_CHANGED, n) - else: - return [Choose.ALL_CHANGED] + n - - def OnDeleteLine(self, n): - # assert: hasattr(self.link, "OnDeleteLine") - res = None - if (self.link.flags & Choose2.CH_MULTI) == 0: - res = self.link.OnDeleteLine(n) - else: - # assert: n is iterable and n - # call the callback multiple times - self.link.OnDeleteLine(Choose2.START_SEL) - res = None - for idx in n: - new_idx = self.link.OnDeleteLine(idx) - if res == None: - res = new_idx - self.link.OnDeleteLine(Choose2.END_SEL) - return [Choose.ALL_CHANGED] + self.adjust_last_item(res) - - def OnEditLine(self, n): - # assert: hasattr(self.link, "OnEditLine") - if (self.link.flags & Choose2.CH_MULTI) == 0: - self.link.OnEditLine(n) - return (Choose.ALL_CHANGED, n) # preserve the selection - # assert: n is iterable and n - if (self.link.flags & Choose2.CH_MULTI_EDIT) == 0: - self.link.OnEditLine(n[0]) - return [Choose.ALL_CHANGED] + n # preserve the selection - # call the callback multiple times - self.link.OnEditLine(Choose2.START_SEL) - for idx in n: - self.link.OnEditLine(idx) - self.link.OnEditLine(Choose2.END_SEL) - return [Choose.ALL_CHANGED] + n # preserve the selection - - def OnSelectLine(self, n): - # assert: hasattr(self.link, "OnSelectLine") - if (self.link.flags & Choose2.CH_MULTI) == 0: - self.link.OnSelectLine(n) - return (Choose.ALL_CHANGED, n) - # assert: n is iterable and n - self.link.OnSelectLine(n[0]) - return [Choose.ALL_CHANGED] + n # preserve the selection - - def OnRefresh(self, n): - # assert: hasattr(self.link, "OnRefresh") - if (self.link.flags & Choose2.CH_MULTI) != 0: - # ignore all but the first item - n = n[0] if n else Choose.NO_SELECTION - res = self.link.OnRefresh(n) - return (Choose.ALL_CHANGED, res) - - def OnSelectionChange(self, n): - # assert: hasattr(self.link, "OnSelectionChange") - if (self.link.flags & Choose2.CH_MULTI) == 0: - n = [n] if n != Choose.NO_SELECTION else [] - self.link.OnSelectionChange(n) - - def OnPopup(self, widget, popup_handle): - self.link._quick_commands.populate_popup(widget, popup_handle) - - - def __init__(self, title, cols, flags=0, popup_names=None, - icon=-1, x1=-1, y1=-1, x2=-1, y2=-1, deflt=-1, - embedded=False, width=None, height=None): - """ - Constructs a chooser window. - @param title: The chooser title - @param cols: a list of colums; each list item is a list of two items - example: [ ["Address", 10 | Choose2.CHCOL_HEX], - ["Name", 30 | Choose2.CHCOL_PLAIN] ] - @param flags: One of CH_XXXX constants - @param deflt: Default starting item (1-based). - 0 means that no item is selected, - -1 means that the first item selected for a new window and - that the selection is not updated for an existing window - @param popup_names: list of new captions to replace this list - ["Insert", "Delete", "Edit", "Refresh"] - @param icon: Icon index (the icon should exist in ida resources or - an index to a custom loaded icon) - @param x1, y1, x2, y2: The default location (for txt-version) - @param embedded: Create as embedded chooser - @param width: Embedded chooser width - @param height: Embedded chooser height - """ - # remember attributes - self.title = title - self.flags = flags - self.cols = cols - self.deflt = deflt - self.popup_names = popup_names - self.icon = icon - self.x1 = x1 - self.y1 = y1 - self.x2 = x2 - self.y2 = y2 - self.embedded = embedded - self.width = width - self.height = height - # construct the v.7.0 chooser object - self.chobj = Choose2.ChooseWrapper(self) - def _qccb(ctx, cmd_id): - for idx in ctx.chooser_selection: - self.OnCommand(idx, cmd_id) - self._quick_commands = quick_widget_commands_t(_qccb) - - - # redirect methods to the v.7.0 chooser - def __getattr__(self, attr): - if attr not in ["GetEmbSelection", - "Activate", - "Refresh", - "Close", - "GetWidget"]: - raise AttributeError(attr) - return getattr(self.chobj, attr) - - - def Embedded(self): - """ - Creates an embedded chooser (as opposed to Show()) - @return: Returns 1 on success - """ - return 1 if self.chobj.Embedded() == 0 else 0 - - - def Show(self, modal=False): - """ - Activates or creates a chooser window - @param modal: Display as modal dialog - @return: For modal choosers it will return the selected item index (0-based) - or -1 in the case of error, - For non-modal choosers it will return 0 - or -1 if the chooser was already open and is active now - """ - ret = self.chobj.Show(modal) - return -1 if ret < 0 else ret - - - def AddCommand(self, - caption, - flags = _ida_kernwin.CHOOSER_POPUP_MENU, - menu_index = -1, - icon = -1, - emb=None, - shortcut=None): - # Use the 'emb' as a sentinel. It will be passed the correct value - # from the EmbeddedChooserControl - if self.embedded and ((emb is None) or (emb != 2002)): - raise RuntimeError("Please add a command through " - "EmbeddedChooserControl.AddCommand()") - return self._quick_commands.add( - caption=caption, - flags=flags, - menu_index=menu_index, - icon=icon, - emb=emb, - shortcut=shortcut) - - # callbacks - # def OnGetSize(self): - # def OnGetLine(self, n): - # def OnGetIcon(self, n): - # def OnGetLineAttr(self, n): - # def OnInsertLine(self): - # def OnDeleteLine(self, n): - # def OnEditLine(self, n): - # def OnSelectLine(self, n): - # def OnRefresh(self, n): - # def OnSelectionChange(self, sel_list): - # def OnClose(self): - # def OnCommand(self, n, cmd_id): -#</pycode_BC695(py_kernwin)> - diff --git a/pywraps/py_kernwin_askform.hpp b/pywraps/py_kernwin_askform.hpp index 5c6ebf1..2a0188b 100644 --- a/pywraps/py_kernwin_askform.hpp +++ b/pywraps/py_kernwin_askform.hpp @@ -13,7 +13,7 @@ static bool textctrl_info_t_assign(PyObject *self, PyObject *other) { textctrl_info_t *lhs = textctrl_info_t_get_clink(self); textctrl_info_t *rhs = textctrl_info_t_get_clink(other); - if ( lhs == NULL || rhs == NULL ) + if ( lhs == nullptr || rhs == nullptr ) return false; *lhs = *rhs; @@ -24,7 +24,7 @@ static bool textctrl_info_t_assign(PyObject *self, PyObject *other) static bool textctrl_info_t_set_text(PyObject *self, const char *s) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->text = s; return true; @@ -34,14 +34,14 @@ static bool textctrl_info_t_set_text(PyObject *self, const char *s) static const char *textctrl_info_t_get_text(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? "" : ti->text.c_str(); + return ti == nullptr ? "" : ti->text.c_str(); } //------------------------------------------------------------------------- static bool textctrl_info_t_set_flags(PyObject *self, unsigned int flags) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->flags = flags; return true; @@ -51,14 +51,14 @@ static bool textctrl_info_t_set_flags(PyObject *self, unsigned int flags) static unsigned int textctrl_info_t_get_flags(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? 0 : ti->flags; + return ti == nullptr ? 0 : ti->flags; } //------------------------------------------------------------------------- static bool textctrl_info_t_set_tabsize(PyObject *self, unsigned int tabsize) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->tabsize = tabsize; return true; @@ -68,7 +68,7 @@ static bool textctrl_info_t_set_tabsize(PyObject *self, unsigned int tabsize) static unsigned int textctrl_info_t_get_tabsize(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? 0 : ti->tabsize; + return ti == nullptr ? 0 : ti->tabsize; } //--------------------------------------------------------------------------- @@ -286,7 +286,7 @@ static bool formchgcbfa_set_field_value( case 7: { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(py_val); - return ti != NULL && fa->set_text_value(fid, ti); + return ti != nullptr && fa->set_text_value(fid, ti); } // button - uint32 case 4: diff --git a/pywraps/py_kernwin_askform.py b/pywraps/py_kernwin_askform.py index ec33e50..565b9a5 100644 --- a/pywraps/py_kernwin_askform.py +++ b/pywraps/py_kernwin_askform.py @@ -473,22 +473,30 @@ class Form(object): Generic form input control. It could be numeric control, string control, directory/file browsing, etc... """ - def __init__(self, tp, width, swidth, hlp = None): + def __init__(self, + tp, + width, + swidth, + hlp=None, + is_relative_offset=False): """ - @param width: Display width - @param swidth: String width + @param width: The maximum possible number of characters that + can be entered into the input field + @param swidth: The width of visible part of the input field """ Form.Control.__init__(self) self.tp = tp self.width = width - self.switdh = swidth + self.swidth = swidth self.hlp = hlp + self.is_relative_offset = is_relative_offset def get_tag(self): - return "%s%d:%s:%s:%s" % ( + return "%s%d:%s%s:%s:%s" % ( self.tp, self.id, + "+" if self.is_relative_offset else "", self.width, - self.switdh, + self.swidth, ":" if self.hlp is None else self.hlp) def is_input_field(self): @@ -499,10 +507,17 @@ class Form(object): """ A composite class serving as a base numeric input control class """ - def __init__(self, tp=None, value=0, width=50, swidth=10, hlp=None): + def __init__(self, + tp=None, + value=0, + width=50, + swidth=10, + hlp=None, + is_relative_offset=False): if tp is None: tp = Form.FT_HEX - Form.InputControl.__init__(self, tp, width, swidth, hlp) + Form.InputControl.__init__(self, + tp, width, swidth, hlp, is_relative_offset) Form.NumericArgument.__init__(self, self.tp, value) diff --git a/pywraps/py_kernwin_choose.hpp b/pywraps/py_kernwin_choose.hpp index bf00f34..7e89ba2 100644 --- a/pywraps/py_kernwin_choose.hpp +++ b/pywraps/py_kernwin_choose.hpp @@ -8,7 +8,7 @@ template <class T> static void py_get_int(PyObject *self, T *prm, const char *name) { ref_t attr(PyW_TryGetAttrString(self, name)); - if ( attr != NULL && attr.o != Py_None ) + if ( attr != nullptr && attr.o != Py_None ) *prm = T(PyInt_AsLong(attr.o)); } @@ -151,7 +151,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Get flags out->flags = 0; ref_t flags_attr(PyW_TryGetAttrString(o, S_FLAGS)); - if ( flags_attr == NULL ) + if ( flags_attr == nullptr ) RETERR("Missing or invalid mandatory '%s' attribute", S_FLAGS); if ( IDAPyInt_Check(flags_attr.o) ) @@ -163,7 +163,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Get columns int ncols = -1; ref_t cols_attr(PyW_TryGetAttrString(o, "cols")); - if ( cols_attr != NULL ) + if ( cols_attr != nullptr ) ncols = int(PyList_Size(cols_attr.o)); if ( ncols < 1 ) RETERR("Missing or invalid mandatory '%s' attribute", S_COLS); @@ -179,7 +179,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( borref_t v(PyList_GetItem(list.o, 0)); // Extract string - if ( v != NULL ) + if ( v != nullptr ) IDAPyStr_AsUTF8(&out->header_strings[i], v.o); out->header[i] = out->header_strings[i].c_str(); @@ -187,7 +187,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( int width; borref_t v2(PyList_GetItem(list.o, 1)); // No width? Guess width from column title - if ( v2 == NULL ) + if ( v2 == nullptr ) width = ::qustrlen(out->header_strings[i].c_str()); else width = PyInt_AsLong(v2.o); @@ -197,7 +197,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Get popup names // An array of 4 strings: ("Insert", "Delete", "Edit", "Refresh") ref_t pn_attr(PyW_TryGetAttrString(o, S_POPUP_NAMES)); - if ( pn_attr != NULL && PyList_Check(pn_attr.o) ) + if ( pn_attr != nullptr && PyList_Check(pn_attr.o) ) { Py_ssize_t npopups = PyList_Size(pn_attr.o); if ( npopups > chooser_base_t::NSTDPOPUPS ) @@ -236,14 +236,14 @@ bool py_chooser_props_t::do_extract_from_pyobject( // we can forbid some callbacks explicitly uint32 forbidden_cb = 0; ref_t forbidden_cb_attr(PyW_TryGetAttrString(o, "forbidden_cb")); - if ( forbidden_cb_attr != NULL && IDAPyInt_Check(forbidden_cb_attr.o) ) + if ( forbidden_cb_attr != nullptr && IDAPyInt_Check(forbidden_cb_attr.o) ) forbidden_cb = uint32(IDAPyInt_AsLong(forbidden_cb_attr.o)); out->features = 0; for ( int i = 0; i < qnumber(callbacks); ++i ) { ref_t cb_attr(PyW_TryGetAttrString(o, callbacks[i].name)); - bool have_cb = cb_attr != NULL && PyCallable_Check(cb_attr.o); + bool have_cb = cb_attr != nullptr && PyCallable_Check(cb_attr.o); if ( have_cb && (forbidden_cb & callbacks[i].have) == 0 ) { out->features |= callbacks[i].have; @@ -259,7 +259,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Check if *embedded ref_t emb_attr(PyW_TryGetAttrString(o, S_EMBEDDED)); - if ( emb_attr != NULL && PyObject_IsTrue(emb_attr.o) == 1 ) + if ( emb_attr != nullptr && PyObject_IsTrue(emb_attr.o) == 1 ) out->features |= CFEAT_EMBEDDED; #undef RETERR @@ -284,9 +284,9 @@ struct py_chooser_mixin_t ~py_chooser_mixin_t() { PYW_GIL_GET; - self = newref_t(NULL); - dirspec = newref_t(NULL); - dirtree = newref_t(NULL); + self = newref_t(nullptr); + dirspec = newref_t(nullptr); + dirtree = newref_t(nullptr); _instances.del(this); } @@ -327,8 +327,8 @@ bool py_chooser_mixin_t::mixin_init(chooser_base_t *chobj) if ( !has_feature(CFEAT_INIT) ) return chobj->chooser_base_t::init(); PYW_GIL_GET; - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_INIT, NULL)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_INIT, nullptr)); + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return chobj->chooser_base_t::init(); return bool(PyInt_AsLong(pyres.result.o)); } @@ -337,8 +337,8 @@ bool py_chooser_mixin_t::mixin_init(chooser_base_t *chobj) size_t py_chooser_mixin_t::mixin_get_count() const { PYW_GIL_GET; - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_GET_SIZE, NULL)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_GET_SIZE, nullptr)); + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return 0; return size_t(PyInt_AsLong(pyres.result.o)); } @@ -359,9 +359,9 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_LINE, "i", int(n))); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; - if ( list.result != NULL ) + if ( list.result != nullptr ) { if ( PySequence_Check(list.result.o) ) { @@ -369,7 +369,7 @@ void py_chooser_mixin_t::mixin_get_row( for ( int i = chobj->columns - 1; i >= 0; --i ) { newref_t item(PySequence_GetItem(list.result.o, Py_ssize_t(i))); - if ( item != NULL ) + if ( item != nullptr ) { if ( !IDAPyStr_Check(item.o) ) { @@ -389,7 +389,7 @@ void py_chooser_mixin_t::mixin_get_row( "Expected 'list' for row %" FMT_Z, n); } } - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; *icon_ = chobj->icon; @@ -399,9 +399,9 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_ICON, "i", int(n))); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; - if ( pyres.result != NULL ) + if ( pyres.result != nullptr ) *icon_ = PyInt_AsLong(pyres.result.o); } @@ -411,14 +411,14 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_LINE_ATTR, "i", int(n))); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; - if ( pyres.result != NULL && PyList_Check(pyres.result.o) ) + if ( pyres.result != nullptr && PyList_Check(pyres.result.o) ) { PyObject *item; - if ( (item = PyList_GetItem(pyres.result.o, 0)) != NULL ) + if ( (item = PyList_GetItem(pyres.result.o, 0)) != nullptr ) attrs->color = PyInt_AsLong(item); - if ( (item = PyList_GetItem(pyres.result.o, 1)) != NULL ) + if ( (item = PyList_GetItem(pyres.result.o, 1)) != nullptr ) attrs->flags = PyInt_AsLong(item); } } @@ -430,7 +430,7 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) PYW_GIL_GET; if ( has_feature(CFEAT_ONCLOSE) ) { - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_CLOSE, NULL)); + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_CLOSE, nullptr)); } else { @@ -442,7 +442,7 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) newref_t tramp(PyObject_GetAttrString(self.o, "ui_hooks_trampoline")); if ( tramp.o != Py_None ) { - newref_t unhook_res(PyObject_CallMethod(tramp.o, "unhook", NULL)); + newref_t unhook_res(PyObject_CallMethod(tramp.o, "unhook", nullptr)); } } PyObject_DelAttrString(self.o, "ui_hooks_trampoline"); @@ -453,18 +453,18 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) dirtree_t *py_chooser_mixin_t::mixin_get_dirtree(const chooser_base_t * /*chobj*/) { if ( !has_feature(CFEAT_GETDIRTREE) ) - return NULL; + return nullptr; PYW_GIL_GET; - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_GET_DIRTREE, NULL)); - if ( pyres.result == NULL ) - return NULL; + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_GET_DIRTREE, nullptr)); + if ( pyres.result == nullptr ) + return nullptr; if ( !PyTuple_Check(pyres.result.o) || PyTuple_Size(pyres.result.o) != 2 ) { GET_DIRTREE_BAD_RESULT: PyErr_Format(PyExc_TypeError, "%s must return a tuple (dirspec_t, dirtree_t)", S_ON_GET_DIRTREE); - return NULL; + return nullptr; } { @@ -494,7 +494,7 @@ inode_t py_chooser_mixin_t::mixin_index_to_inode(size_t n) const { PYW_GIL_GET; pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_INDEX_TO_INODE, PY_BV_SZ, Py_ssize_t(n))); - if ( pyres.result != NULL ) + if ( pyres.result != nullptr ) { uint64 u64; if ( PyW_GetNumber(pyres.result.o, &u64) ) @@ -512,7 +512,7 @@ diffpos_t py_chooser_mixin_t::mixin_index_to_diffpos(size_t n) const { PYW_GIL_GET; pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_INDEX_TO_DIFFPOS, PY_BV_SZ, Py_ssize_t(n))); - if ( pyres.result != NULL ) + if ( pyres.result != nullptr ) { uint64 u64; if ( PyW_GetNumber(pyres.result.o, &u64) ) @@ -540,9 +540,9 @@ class py_chooser_t : public chooser_t, public py_chooser_mixin_t return false; PYW_GIL_GET; pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) name, "i", n)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return false; - if ( out != NULL ) + if ( out != nullptr ) { // [ changed, idx ] cbret_t ret; @@ -550,13 +550,13 @@ class py_chooser_t : public chooser_t, public py_chooser_mixin_t { { newref_t item(PySequence_GetItem(pyres.result.o, 0)); - if ( item.o != NULL && IDAPyInt_Check(item.o) ) + if ( item.o != nullptr && IDAPyInt_Check(item.o) ) ret.changed = cbres_t(IDAPyInt_AsLong(item.o)); } if ( ret.changed != NOTHING_CHANGED ) { newref_t item(PySequence_GetItem(pyres.result.o, 1)); - if ( item.o != NULL && IDAPyInt_Check(item.o) ) + if ( item.o != nullptr && IDAPyInt_Check(item.o) ) ret.idx = ssize_t(IDAPyInt_AsSsize_t(item.o)); } } @@ -612,7 +612,7 @@ public: virtual void idaapi select(ssize_t n) const override { - _call(NULL, CFEAT_SELECT, S_ON_SELECTION_CHANGE, int(n)); + _call(nullptr, CFEAT_SELECT, S_ON_SELECTION_CHANGE, int(n)); } }; @@ -627,7 +627,7 @@ class py_chooser_multi_t : public chooser_multi_t, public py_chooser_mixin_t PYW_GIL_GET; ref_t py_list(PyW_SizeVecToPyList(*sel)); pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) name, "O", py_list.o)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return false; // [ changed, idx, ... ] cbres_t res; @@ -643,7 +643,7 @@ class py_chooser_multi_t : public chooser_multi_t, public py_chooser_mixin_t res = cbres_t(sel->front()); sel->erase(sel->begin()); } - if ( out != NULL ) + if ( out != nullptr ) *out = res; return true; } @@ -696,7 +696,7 @@ public: virtual void idaapi select(const sizevec_t &_sel) const override { sizevec_t sel = _sel; - _call(NULL, CFEAT_SELECT, S_ON_SELECTION_CHANGE, &sel); + _call(nullptr, CFEAT_SELECT, S_ON_SELECTION_CHANGE, &sel); } }; @@ -705,7 +705,7 @@ chooser_base_t *py_chooser_mixin_t::create_concrete_instance( py_chooser_props_t &props, PyObject *o) { - chooser_base_t *chobj = NULL; + chooser_base_t *chobj = nullptr; if ( (props.flags & CH_MULTI) == 0 ) chobj = new py_chooser_t(o, props); else @@ -746,7 +746,7 @@ PyObject *choose_choose(PyObject *self) if ( !py_chooser_props_t::extract_from_pyobject(&props, self, &errbuf) ) { PyErr_SetString(PyExc_AttributeError, errbuf.c_str()); - return NULL; + return nullptr; } chooser_base_t *chobj = py_chooser_mixin_t::create_concrete_instance(props, self); @@ -763,7 +763,7 @@ PyObject *choose_choose(PyObject *self) // Get *deflt sizevec_t deflt; ref_t deflt_attr(PyW_TryGetAttrString(self, "deflt")); - if ( deflt_attr != NULL + if ( deflt_attr != nullptr && PyList_Check(deflt_attr.o) && PyW_PyListToSizeVec(&deflt, deflt_attr.o) < 0 ) { @@ -798,14 +798,14 @@ TWidget *choose_get_widget(PyObject *self) qstring title, errbuf; return py_chooser_props_t::get_title_from_pyobject(&title, self, &errbuf) ? find_widget(title.c_str()) - : NULL; + : nullptr; } //------------------------------------------------------------------------ void choose_activate(PyObject *self) { TWidget *w = choose_get_widget(self); - if ( w != NULL ) + if ( w != nullptr ) activate_widget(w, true); } @@ -825,7 +825,7 @@ PyObject *choose_create_embedded_chobj(PyObject *self) else { PyErr_SetString(PyExc_AttributeError, errbuf.c_str()); - return NULL; + return nullptr; } return PyLong_FromUnsignedLongLong(ptr); } diff --git a/pywraps/py_kernwin_cli.hpp b/pywraps/py_kernwin_cli.hpp index 8ef6210..084c580 100644 --- a/pywraps/py_kernwin_cli.hpp +++ b/pywraps/py_kernwin_cli.hpp @@ -80,7 +80,7 @@ private: "s", line)); PyW_ShowCbErr(S_ON_EXECUTE_LINE); - return result != NULL && PyObject_IsTrue(result.o); + return result != nullptr && PyObject_IsTrue(result.o); } //-------------------------------------------------------------------------- @@ -114,7 +114,7 @@ private: *vk_key, shift)); - bool ok = result != NULL && PyTuple_Check(result.o); + bool ok = result != nullptr && PyTuple_Check(result.o); PyW_ShowCbErr(S_ON_KEYDOWN); @@ -124,7 +124,7 @@ private: if ( sz > 0 ) { borref_t _r(PyTuple_GetItem(result.o, 0)); - if ( _r != NULL && IDAPyStr_Check(_r.o) ) + if ( _r != nullptr && IDAPyStr_Check(_r.o) ) IDAPyStr_AsUTF8(line, _r.o); } @@ -134,7 +134,7 @@ private: if ( sz > col ) \ { \ borref_t _r(PyTuple_GetItem(result.o, col)); \ - if ( _r != NULL && PyThingy##_Check(_r.o) ) \ + if ( _r != nullptr && PyThingy##_Check(_r.o) ) \ *out = PyThingy##_##AsThingy(_r.o); \ } \ } while ( false ) @@ -171,7 +171,7 @@ private: line, x)); - bool ok = result != NULL && IDAPyStr_Check(result.o); + bool ok = result != nullptr && IDAPyStr_Check(result.o); PyW_ShowCbErr(S_ON_COMPLETE_LINE); if ( ok ) IDAPyStr_AsUTF8(completion, result.o); @@ -197,7 +197,7 @@ private: line, x)); PyW_ShowCbErr(S_ON_FIND_COMPLETIONS); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return false; return idapython_convert_cli_completions( out_completions, out_match_start, out_match_end, py_res); @@ -218,10 +218,10 @@ public: // Find an empty slot for ( cli_idx = 0; cli_idx < MAX_PY_CLI; ++cli_idx ) { - if ( py_clis[cli_idx] == NULL ) + if ( py_clis[cli_idx] == nullptr ) break; } - py_cli_t *py_cli = NULL; + py_cli_t *py_cli = nullptr; do { // No free slots? @@ -237,7 +237,7 @@ public: // Store 'flags' { ref_t flags_attr(PyW_TryGetAttrString(py_obj, S_FLAGS)); - if ( flags_attr == NULL ) + if ( flags_attr == nullptr ) py_cli->cli.flags = 0; else py_cli->cli.flags = PyLong_AsLong(flags_attr.o); @@ -262,9 +262,9 @@ public: if ( !PyObject_HasAttrString(py_obj, S_ON_EXECUTE_LINE) ) break; py_cli->cli.execute_line = py_cli_cbs[cli_idx].execute_line; - py_cli->cli.unused = (void *) (PyObject_HasAttrString(py_obj, S_ON_COMPLETE_LINE) ? py_cli_cbs[cli_idx].complete_line : NULL); - py_cli->cli.keydown = PyObject_HasAttrString(py_obj, S_ON_KEYDOWN) ? py_cli_cbs[cli_idx].keydown : NULL; - py_cli->cli.find_completions = PyObject_HasAttrString(py_obj, S_ON_FIND_COMPLETIONS) ? py_cli_cbs[cli_idx].find_completions : NULL; + py_cli->cli.unused = (void *) (PyObject_HasAttrString(py_obj, S_ON_COMPLETE_LINE) ? py_cli_cbs[cli_idx].complete_line : nullptr); + py_cli->cli.keydown = PyObject_HasAttrString(py_obj, S_ON_KEYDOWN) ? py_cli_cbs[cli_idx].keydown : nullptr; + py_cli->cli.find_completions = PyObject_HasAttrString(py_obj, S_ON_FIND_COMPLETIONS) ? py_cli_cbs[cli_idx].find_completions : nullptr; // install CLI install_command_interpreter(&py_cli->cli); @@ -287,7 +287,7 @@ public: static void unbind(int cli_idx) { // Out of bounds or not set? - if ( cli_idx < 0 || cli_idx >= MAX_PY_CLI || py_clis[cli_idx] == NULL ) + if ( cli_idx < 0 || cli_idx >= MAX_PY_CLI || py_clis[cli_idx] == nullptr ) return; py_cli_t *py_cli = py_clis[cli_idx]; @@ -299,12 +299,12 @@ public: delete py_cli; } - py_clis[cli_idx] = NULL; + py_clis[cli_idx] = nullptr; return; } }; -py_cli_t *py_cli_t::py_clis[MAX_PY_CLI] = { NULL }; +py_cli_t *py_cli_t::py_clis[MAX_PY_CLI] = { nullptr }; #define DECL_PY_CLI_CB(CBN) { s_execute_line##CBN, s_complete_line##CBN, s_keydown##CBN } const py_cli_cbs_t py_cli_t::py_cli_cbs[MAX_PY_CLI] = { diff --git a/pywraps/py_kernwin_custview.hpp b/pywraps/py_kernwin_custview.hpp index 6eccfe9..fff0443 100644 --- a/pywraps/py_kernwin_custview.hpp +++ b/pywraps/py_kernwin_custview.hpp @@ -84,12 +84,12 @@ public: simpleline_t *get_line(size_t nline) { - return nline >= lines.size() ? NULL : &lines[nline]; + return nline >= lines.size() ? nullptr : &lines[nline]; } simpleline_t *get_line(place_t *pl) { - return pl == NULL ? NULL : get_line(((simpleline_place_t *)pl)->n); + return pl == nullptr ? nullptr : get_line(((simpleline_place_t *)pl)->n); } size_t count() const @@ -183,7 +183,7 @@ class py_simplecustview_t if ( _this->widget != viewer ) return 0; place_t *place = va_arg(va, place_t *); - if ( place == NULL ) + if ( place == nullptr ) return 0; int *important_lines = va_arg(va, int *); return _this->on_hint(place, important_lines, hint) ? 1 : 0; @@ -259,7 +259,7 @@ class py_simplecustview_t PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLICK, "i", shift)); PyW_ShowCbErr(S_ON_CLICK); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -269,7 +269,7 @@ class py_simplecustview_t PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_DBL_CLICK, "i", shift)); PyW_ShowCbErr(S_ON_DBL_CLICK); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -277,26 +277,26 @@ class py_simplecustview_t void on_curpos_changed() { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CURSOR_POS_CHANGED, NULL)); + newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CURSOR_POS_CHANGED, nullptr)); PyW_ShowCbErr(S_ON_CURSOR_POS_CHANGED); } //-------------------------------------------------------------------------- void on_close() { - if ( py_self != NULL ) + if ( py_self != nullptr ) { // Call the close method if it is there and the object is still bound if ( (features & HAVE_CLOSE) != 0 ) { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLOSE, NULL)); + newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLOSE, nullptr)); PyW_ShowCbErr(S_ON_CLOSE); } // Cleanup Py_DECREF(py_self); - py_self = NULL; + py_self = nullptr; } } @@ -313,7 +313,7 @@ class py_simplecustview_t shift)); PyW_ShowCbErr(S_ON_KEYDOWN); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -329,12 +329,12 @@ class py_simplecustview_t bvsz_t(ln))); PyW_ShowCbErr(S_ON_HINT); - bool ok = py_result != NULL + bool ok = py_result != nullptr && PyTuple_Check(py_result.o) && PyTuple_Size(py_result.o) == 2; if ( ok ) { - if ( important_lines != NULL ) + if ( important_lines != nullptr ) *important_lines = PyInt_AsLong(PyTuple_GetItem(py_result.o, 0)); IDAPyStr_AsUTF8(&hint, PyTuple_GetItem(py_result.o, 1)); } @@ -352,7 +352,7 @@ class py_simplecustview_t PY_BV_SZ, bvsz_t(menu_id))); PyW_ShowCbErr(S_ON_POPUP_MENU); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -365,7 +365,7 @@ class py_simplecustview_t public: py_simplecustview_t() { - py_this = py_self = py_last_link = NULL; + py_this = py_self = py_last_link = nullptr; init_vars(); } ~py_simplecustview_t() {} @@ -376,26 +376,26 @@ public: { data.clear(); features = 0; - widget = NULL; + widget = nullptr; } void close() { - if ( widget != NULL ) + if ( widget != nullptr ) close_widget(widget, WCLS_SAVE | WCLS_CLOSE_LATER); } bool set_range( - const place_t *minplace = NULL, - const place_t *maxplace = NULL) + const place_t *minplace = nullptr, + const place_t *maxplace = nullptr) { - if ( widget == NULL ) + if ( widget == nullptr ) return false; set_custom_viewer_range( widget, - minplace == NULL ? data.get_min() : minplace, - maxplace == NULL ? data.get_max() : maxplace); + minplace == nullptr ? data.get_min() : minplace, + maxplace == nullptr ? data.get_max() : maxplace); return true; } @@ -404,12 +404,12 @@ public: int *x = 0, int *y = 0) { - return widget == NULL ? NULL : get_custom_viewer_place(widget, mouse, x, y); + return widget == nullptr ? nullptr : get_custom_viewer_place(widget, mouse, x, y); } bool refresh() { - if ( widget == NULL ) + if ( widget == nullptr ) return false; refresh_custom_viewer(widget); @@ -420,14 +420,14 @@ public: { // query the cursor position int x, y; - if ( get_place(mouse, &x, &y) == NULL ) + if ( get_place(mouse, &x, &y) == nullptr ) return false; // query the line at the cursor qstring qline; get_current_line(&qline, mouse, true); const char *line = qline.begin(); - if ( line == NULL ) + if ( line == nullptr ) return false; if ( x >= (int)qstrlen(line) ) @@ -464,12 +464,12 @@ public: bool create(const char *_title, int _features) { // Already created? (in the instance) - if ( widget != NULL ) + if ( widget != nullptr ) return true; // Already created? (in IDA windows list) TWidget *found = find_widget(_title); - if ( found != NULL ) + if ( found != nullptr ) return false; title = _title; @@ -496,7 +496,7 @@ public: data.get_min(), data.get_max(), data.get_min(), - (const renderer_info_t *) NULL, + (const renderer_info_t *) nullptr, data.get_ud(), &handlers, this); @@ -558,7 +558,7 @@ public: int x, y; pl = get_place(mouse, &x, &y); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( pl == NULL ) + if ( pl == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(" PY_BV_SZ "ii)", bvsz_t(data.to_lineno(pl)), x, y); } @@ -568,7 +568,7 @@ public: { simpleline_t *r = data.get_line(nline); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( r == NULL ) + if ( r == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(sII)", r->line.c_str(), (unsigned int)r->color, (unsigned int)r->bgcolor); } @@ -596,7 +596,7 @@ public: bool init(PyObject *py_link, const char *title) { // Already created? - if ( widget != NULL ) + if ( widget != nullptr ) return true; // Probe callbacks @@ -628,15 +628,15 @@ public: Py_INCREF(py_self); // Return a reference to the C++ instance (only once) - if ( py_this == NULL ) - py_this = PyCapsule_New(this, VALID_CAPSULE_NAME, NULL); + if ( py_this == nullptr ) + py_this = PyCapsule_New(this, VALID_CAPSULE_NAME, nullptr); return true; } bool show() { - if ( widget == NULL && py_last_link != NULL ) + if ( widget == nullptr && py_last_link != nullptr ) { // Re-create the view (with same previous parameters) if ( !init(py_last_link, title.c_str()) ) @@ -644,7 +644,7 @@ public: } // Closed already? - if ( widget == NULL ) + if ( widget == nullptr ) return false; display_widget(widget, WOPN_DP_TAB|WOPN_RESTORE); @@ -653,20 +653,20 @@ public: bool get_selection(size_t *x1, size_t *y1, size_t *x2, size_t *y2) { - if ( widget == NULL ) + if ( widget == nullptr ) return false; twinpos_t p1, p2; if ( !::read_selection(widget, &p1, &p2) ) return false; - if ( y1 != NULL ) + if ( y1 != nullptr ) *y1 = data.to_lineno(p1.at); - if ( y2 != NULL ) + if ( y2 != nullptr ) *y2 = data.to_lineno(p2.at); - if ( x1 != NULL ) + if ( x1 != nullptr ) *x1 = size_t(p1.x); - if ( x2 != NULL ) + if ( x2 != nullptr ) *x2 = p2.x; return true; } @@ -687,7 +687,7 @@ public: PYW_GIL_CHECK_LOCKED_SCOPE(); return PyCapsule_IsValid(py_this, VALID_CAPSULE_NAME) ? (py_simplecustview_t *) PyCapsule_GetPointer(py_this, VALID_CAPSULE_NAME) - : NULL; + : nullptr; } PyObject *get_pythis() @@ -723,7 +723,7 @@ PyObject *pyscv_init(PyObject *py_link, const char *title) bool pyscv_refresh(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->refresh(); + return _this != nullptr && _this->refresh(); } //-------------------------------------------------------------------------- @@ -731,7 +731,7 @@ PyObject *pyscv_get_current_line(PyObject *py_this, bool mouse, bool notags) { DECL_THIS; PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( _this == NULL ) + if ( _this == nullptr ) Py_RETURN_NONE; qstring line; _this->get_current_line(&line, mouse, notags); @@ -744,39 +744,39 @@ PyObject *pyscv_get_current_line(PyObject *py_this, bool mouse, bool notags) bool pyscv_is_focused(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->is_focused(); + return _this != nullptr && _this->is_focused(); } size_t pyscv_count(PyObject *py_this) { DECL_THIS; - return _this == NULL ? 0 : _this->count(); + return _this == nullptr ? 0 : _this->count(); } bool pyscv_show(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->show(); + return _this != nullptr && _this->show(); } void pyscv_close(PyObject *py_this) { DECL_THIS; - if ( _this != NULL ) + if ( _this != nullptr ) _this->close(); } bool pyscv_jumpto(PyObject *py_this, size_t ln, int x, int y) { DECL_THIS; - return _this != NULL && _this->jumpto(ln, x, y); + return _this != nullptr && _this->jumpto(ln, x, y); } // Returns the line tuple PyObject *pyscv_get_line(PyObject *py_this, size_t nline) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -789,7 +789,7 @@ PyObject *pyscv_get_line(PyObject *py_this, size_t nline) PyObject *pyscv_get_pos(PyObject *py_this, bool mouse) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -801,7 +801,7 @@ PyObject *pyscv_get_pos(PyObject *py_this, bool mouse) PyObject *pyscv_clear_lines(PyObject *py_this) { DECL_THIS; - if ( _this != NULL ) + if ( _this != nullptr ) _this->clear(); PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -812,35 +812,35 @@ PyObject *pyscv_clear_lines(PyObject *py_this) bool pyscv_add_line(PyObject *py_this, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->add_line(py_sl); + return _this != nullptr && _this->add_line(py_sl); } //-------------------------------------------------------------------------- bool pyscv_insert_line(PyObject *py_this, size_t nline, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->insert_line(nline, py_sl); + return _this != nullptr && _this->insert_line(nline, py_sl); } //-------------------------------------------------------------------------- bool pyscv_patch_line(PyObject *py_this, size_t nline, size_t offs, int value) { DECL_THIS; - return _this != NULL && _this->patch_line(nline, offs, value); + return _this != nullptr && _this->patch_line(nline, offs, value); } //-------------------------------------------------------------------------- bool pyscv_del_line(PyObject *py_this, size_t nline) { DECL_THIS; - return _this != NULL && _this->del_line(nline); + return _this != nullptr && _this->del_line(nline); } //-------------------------------------------------------------------------- PyObject *pyscv_get_selection(PyObject *py_this) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -853,7 +853,7 @@ PyObject *pyscv_get_current_word(PyObject *py_this, bool mouse) { DECL_THIS; PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( _this != NULL ) + if ( _this != nullptr ) { qstring word; if ( _this->get_current_word(mouse, word) ) @@ -867,14 +867,14 @@ PyObject *pyscv_get_current_word(PyObject *py_this, bool mouse) bool pyscv_edit_line(PyObject *py_this, size_t nline, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->edit_line(nline, py_sl); + return _this != nullptr && _this->edit_line(nline, py_sl); } //------------------------------------------------------------------------- TWidget *pyscv_get_widget(PyObject *py_this) { DECL_THIS; - return _this == NULL ? NULL : _this->get_widget(); + return _this == nullptr ? nullptr : _this->get_widget(); } diff --git a/pywraps/py_kernwin_idaview.hpp b/pywraps/py_kernwin_idaview.hpp index 776f48f..4421fab 100644 --- a/pywraps/py_kernwin_idaview.hpp +++ b/pywraps/py_kernwin_idaview.hpp @@ -17,7 +17,7 @@ bool py_idaview_t::Bind(PyObject *self) { // Already a py_idaview_t associated to this object? py_idaview_t *_this = (py_idaview_t *) view_extract_this(self); - if ( _this != NULL ) + if ( _this != nullptr ) return false; qstring title; @@ -26,7 +26,7 @@ bool py_idaview_t::Bind(PyObject *self) // Get the IDAView associated to this TWidget TWidget *widget = find_widget(title.c_str()); - if ( widget == NULL ) + if ( widget == nullptr ) return false; // Get unique py_idaview_t associated to that TWidget @@ -55,7 +55,7 @@ bool py_idaview_t::Bind(PyObject *self) bool py_idaview_t::Unbind(PyObject *self) { py_idaview_t *_this = (py_idaview_t *) view_extract_this(self); - if ( _this == NULL ) + if ( _this == nullptr ) return false; _this->unbind(true); return true; diff --git a/pywraps/py_kernwin_plgform.hpp b/pywraps/py_kernwin_plgform.hpp index 6ffd480..4889c99 100644 --- a/pywraps/py_kernwin_plgform.hpp +++ b/pywraps/py_kernwin_plgform.hpp @@ -24,7 +24,7 @@ class plgform_t PyObject_CallMethod( _this->py_obj.o, (char *)S_ON_CLOSE, "O", - PyCapsule_New(widget, VALID_CAPSULE_NAME, NULL))); + PyCapsule_New(widget, VALID_CAPSULE_NAME, nullptr))); PyW_ShowCbErr(S_ON_CLOSE); } _this->unhook(); @@ -36,7 +36,7 @@ class plgform_t void unhook() { idapython_unhook_from_notification_point(HT_UI, s_callback, this); - widget = NULL; + widget = nullptr; // Call DECREF at last, since it may trigger __del__ PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -44,7 +44,7 @@ class plgform_t } public: - plgform_t() : widget(NULL) {} + plgform_t() : widget(nullptr) {} bool show( PyObject *obj, @@ -55,7 +55,7 @@ public: // Already displayed? TWidget *f = find_widget(caption); - if ( f != NULL ) + if ( f != nullptr ) { // Our form? if ( f == widget ) @@ -71,12 +71,12 @@ public: // Create a form widget = create_empty_widget(caption); - if ( widget == NULL ) + if ( widget == nullptr ) return false; if ( !idapython_hook_to_notification_point(HT_UI, s_callback, this, /*is_hooks_base=*/ false) ) { - widget = NULL; + widget = nullptr; return false; } @@ -92,7 +92,7 @@ public: PyObject_CallMethod( py_obj.o, (char *)S_ON_CREATE, "O", - PyCapsule_New(widget, VALID_CAPSULE_NAME, NULL))); + PyCapsule_New(widget, VALID_CAPSULE_NAME, nullptr))); PyW_ShowCbErr(S_ON_CREATE); if ( !create_only ) @@ -102,7 +102,7 @@ public: void close(int options = 0) { - if ( widget != NULL ) + if ( widget != nullptr ) close_widget(widget, options); } @@ -140,7 +140,7 @@ static bool plgform_show( int options = WOPN_DP_TAB|WOPN_RESTORE) { DECL_PLGFORM; - return plgform != NULL && plgform->show(py_obj, caption, options); + return plgform != nullptr && plgform->show(py_obj, caption, options); } static void plgform_close( @@ -148,7 +148,7 @@ static void plgform_close( int options) { DECL_PLGFORM; - if ( plgform != NULL ) + if ( plgform != nullptr ) plgform->close(options); } @@ -156,7 +156,7 @@ static TWidget *plgform_get_widget( PyObject *py_link) { DECL_PLGFORM; - return plgform != NULL ? plgform->get_widget() : NULL; + return plgform != nullptr ? plgform->get_widget() : nullptr; } #undef DECL_PLGFORM diff --git a/pywraps/py_kernwin_plgform.py b/pywraps/py_kernwin_plgform.py index 9e8b163..5bc1f14 100644 --- a/pywraps/py_kernwin_plgform.py +++ b/pywraps/py_kernwin_plgform.py @@ -200,20 +200,3 @@ class PluginForm(object): WCLS_CLOSE_LATER = WCLS_DELETE_LATER #</pycode(py_kernwin_plgform)> - -plg = PluginForm() -plg.Show("This is it") - -#<pycode_BC695(py_kernwin_plgform)> -PluginForm.FORM_MDI = PluginForm.WOPN_MDI -PluginForm.FORM_TAB = PluginForm.WOPN_TAB -PluginForm.FORM_RESTORE = PluginForm.WOPN_RESTORE -PluginForm.FORM_ONTOP = PluginForm.WOPN_ONTOP -PluginForm.FORM_MENU = PluginForm.WOPN_MENU -PluginForm.FORM_CENTERED = PluginForm.WOPN_CENTERED -PluginForm.FORM_PERSIST = PluginForm.WOPN_PERSIST -PluginForm.FORM_SAVE = PluginForm.WCLS_SAVE -PluginForm.FORM_NO_CONTEXT = PluginForm.WCLS_NO_CONTEXT -PluginForm.FORM_DONT_SAVE_SIZE = PluginForm.WCLS_DONT_SAVE_SIZE -PluginForm.FORM_CLOSE_LATER = PluginForm.WCLS_CLOSE_LATER -#</pycode_BC695(py_kernwin_plgform)> diff --git a/pywraps/py_kernwin_viewhooks.hpp b/pywraps/py_kernwin_viewhooks.hpp index 6337eb4..2087e36 100644 --- a/pywraps/py_kernwin_viewhooks.hpp +++ b/pywraps/py_kernwin_viewhooks.hpp @@ -15,7 +15,7 @@ struct View_Hooks : public hooks_base_t bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenVIEW:methods diff --git a/pywraps/py_lines.hpp b/pywraps/py_lines.hpp index 768caa2..1c71a02 100644 --- a/pywraps/py_lines.hpp +++ b/pywraps/py_lines.hpp @@ -3,7 +3,7 @@ //<code(py_lines)> //------------------------------------------------------------------------ -static PyObject *py_get_user_defined_prefix = NULL; +static PyObject *py_get_user_defined_prefix = nullptr; static void idaapi s_py_get_user_defined_prefix( qstring *buf, ea_t ea, @@ -48,10 +48,10 @@ static PyObject *py_set_user_defined_prefix(size_t width, PyObject *pycb) Py_XDECREF(py_get_user_defined_prefix); // ...and clear it - py_get_user_defined_prefix = NULL; + py_get_user_defined_prefix = nullptr; // Uninstall user defind prefix - set_user_defined_prefix(0, NULL); + set_user_defined_prefix(0, nullptr); } else if ( PyCallable_Check(pycb) ) { @@ -119,8 +119,8 @@ def generate_disassembly(ea, max_lines, as_stack, notags): @param as_stack: Display undefined items as 2/4/8 bytes @return: - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines """ pass #</pydoc> @@ -140,7 +140,7 @@ PyObject *py_generate_disassembly( int lnnum; int nlines = generate_disassembly(&lines, &lnnum, ea, max_lines, as_stack); - newref_t py_tuple(PyTuple_New(nlines)); + newref_t py_list(PyList_New(nlines)); for ( int i=0; i < nlines; i++ ) { const qstring &l = lines[i]; @@ -150,9 +150,9 @@ PyObject *py_generate_disassembly( tag_remove(&qbuf, l); s = qbuf.c_str(); } - PyTuple_SetItem(py_tuple.o, i, IDAPyStr_FromUTF8(s)); + PyList_SetItem(py_list.o, i, IDAPyStr_FromUTF8(s)); } - return Py_BuildValue("(iO)", lnnum, py_tuple.o); + return Py_BuildValue("(iO)", lnnum, py_list.o); } //</inline(py_lines)> #endif diff --git a/pywraps/py_lines.py b/pywraps/py_lines.py index e37ddd2..ba0bf7f 100644 --- a/pywraps/py_lines.py +++ b/pywraps/py_lines.py @@ -35,9 +35,3 @@ def COLSTR(str, tag): return SCOLOR_ON + tag + str + SCOLOR_OFF + tag #</pycode(py_lines)> - -#<pycode_BC695(py_lines)> -COLOR_UTF8=cvar.COLOR_ADDR+10 # old value of COLOR_UTF8; shouldn't trigger anything -add_long_cmt=add_extra_cmt -describe=add_extra_line -#</pycode_BC695(py_lines)> diff --git a/pywraps/py_loader.hpp b/pywraps/py_loader.hpp index 65d3d7b..6eddeac 100644 --- a/pywraps/py_loader.hpp +++ b/pywraps/py_loader.hpp @@ -53,11 +53,11 @@ static PyObject *py_load_plugin(const char *name) prepare_programmatic_plugin_load(name); plugin_t *r = load_plugin(name); PYW_GIL_CHECK_LOCKED_SCOPE(); - prepare_programmatic_plugin_load(NULL); - if ( r == NULL ) + prepare_programmatic_plugin_load(nullptr); + if ( r == nullptr ) Py_RETURN_NONE; else - return PyCapsule_New(r, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(r, VALID_CAPSULE_NAME, nullptr); } //------------------------------------------------------------------------ @@ -72,7 +72,7 @@ def run_plugin(plg): pass #</pydoc> */ -static bool py_run_plugin(PyObject *plg, int arg) +static bool py_run_plugin(PyObject *plg, size_t arg) { PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyCapsule_IsValid(plg, VALID_CAPSULE_NAME) ) @@ -96,14 +96,14 @@ static bool py_load_and_run_plugin(const char *name, size_t arg) if ( qfileexist(name) ) prepare_programmatic_plugin_load(name); bool rc = load_and_run_plugin(name, arg); - prepare_programmatic_plugin_load(NULL); + prepare_programmatic_plugin_load(nullptr); return rc; } //------------------------------------------------------------------------- static PyObject *py_extract_module_from_archive(const char *fname, bool is_remote=false) { - char *temp_file_ptr = NULL; + char *temp_file_ptr = nullptr; char fname_buf[QMAXPATH]; qstrncpy(fname_buf, fname, sizeof(fname_buf)); bool ok = extract_module_from_archive( @@ -111,7 +111,7 @@ static PyObject *py_extract_module_from_archive(const char *fname, bool is_remot sizeof(fname_buf), &temp_file_ptr, is_remote); - return Py_BuildValue("(ss)", ok ? fname_buf : NULL, ok ? temp_file_ptr : NULL); + return Py_BuildValue("(ss)", ok ? fname_buf : nullptr, ok ? temp_file_ptr : nullptr); } //</inline(py_loader)> diff --git a/pywraps/py_loader.py b/pywraps/py_loader.py deleted file mode 100644 index fa09b55..0000000 --- a/pywraps/py_loader.py +++ /dev/null @@ -1,11 +0,0 @@ - -#<pycode_BC695(py_loader)> -NEF_TIGHT=0 -@bc695redef -def save_database(outfile, flags=0): - if isinstance(flags, bool): - flags = DBFL_KILL if flags else 0 - return _ida_loader.save_database(outfile, flags) -save_database_ex=save_database -MAX_FILE_FORMAT_NAME=64 -#</pycode_BC695(py_loader)> diff --git a/pywraps/py_lumina.hpp b/pywraps/py_lumina.hpp index 7d82160..02a90d8 100644 --- a/pywraps/py_lumina.hpp +++ b/pywraps/py_lumina.hpp @@ -10,7 +10,7 @@ bool py_extract_type_from_metadata(tinfo_t *out, const bytevec_t &in) const uchar *ptr = in.begin(); const uchar *end = in.end(); extract_type_from_metadata(&tp, ptr, end); - out->deserialize(NULL, &tp.type, &tp.fields); + out->deserialize(nullptr, &tp.type, &tp.fields); } return tp.userti; } diff --git a/pywraps/py_nalt.hpp b/pywraps/py_nalt.hpp index 2a3a5e9..7f095b6 100644 --- a/pywraps/py_nalt.hpp +++ b/pywraps/py_nalt.hpp @@ -6,7 +6,7 @@ //------------------------------------------------------------------------- // callback for enumerating imports // ea: import address -// name: import name (NULL if imported by ordinal) +// name: import name (nullptr if imported by ordinal) // ord: import ordinal (0 for imports by name) // param: user parameter passed to enum_import_names() // return: 1-ok, 0-stop enumeration @@ -18,12 +18,12 @@ static int idaapi py_import_enum_cb( { // If no name, try to get the name associated with the 'ea'. It may be coming from IDS qstring name_buf; - if ( name == NULL && get_name(&name_buf, ea) > 0 ) + if ( name == nullptr && get_name(&name_buf, ea) > 0 ) name = name_buf.begin(); PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_name; - if ( name == NULL ) + if ( name == nullptr ) py_name = borref_t(Py_None); else py_name = newref_t(IDAPyStr_FromUTF8(name)); @@ -36,8 +36,8 @@ static int idaapi py_import_enum_cb( py_ea.o, py_name.o, py_ord.o, - NULL)); - return py_result != NULL && PyObject_IsTrue(py_result.o) ? 1 : 0; + nullptr)); + return py_result != nullptr && PyObject_IsTrue(py_result.o) ? 1 : 0; } //</code(py_nalt)> diff --git a/pywraps/py_nalt.py b/pywraps/py_nalt.py index 68540e1..72d018d 100644 --- a/pywraps/py_nalt.py +++ b/pywraps/py_nalt.py @@ -9,113 +9,6 @@ def get_switch_info(*args): def get_abi_name(): import ida_typeinf return ida_typeinf.get_abi_name() +# for backward compatibility +get_initial_version = get_initial_idb_version #</pycode(py_nalt)> - -#<pycode_BC695(py_nalt)> -ASCSTR_LAST=7 -ASCSTR_LEN2=STRTYPE_LEN2 -ASCSTR_LEN4=STRTYPE_LEN4 -ASCSTR_PASCAL=STRTYPE_PASCAL -ASCSTR_TERMCHR=STRTYPE_TERMCHR -ASCSTR_ULEN2=STRTYPE_LEN2_16 -ASCSTR_ULEN4=STRTYPE_LEN4_16 -ASCSTR_UNICODE=STRTYPE_C_16 -ASCSTR_UTF16=STRTYPE_C_16 -ASCSTR_UTF32=STRTYPE_C_32 -REF_VHIGH=V695_REF_VHIGH -REF_VLOW=V695_REF_VLOW -SWI_END_IN_TBL=SWI_DEF_IN_TBL -SWI_BC695_EXTENDED=0x8000 -SWI2_INDIRECT=SWI_INDIRECT >> 16 -SWI2_SUBTRACT=SWI_SUBTRACT >> 16 -import ida_netnode -RIDX_AUTO_PLUGINS=ida_netnode.BADNODE -change_encoding_name=rename_encoding -def del_tinfo2(ea, n=None): - if n is not None: - return del_op_tinfo(ea, n) - else: - return del_tinfo(ea) -get_encodings_count=get_encoding_qty -def get_op_tinfo(*args): - import ida_typeinf - if isinstance(args[2], ida_typeinf.tinfo_t): # 6.95: ea, n, tinfo_t - ea, n, tif = args - else: # 7.00: tinfo_t, ea, n - tif, ea, n = args - return _ida_nalt.get_op_tinfo(tif, ea, n) -get_op_tinfo2=get_op_tinfo -def is_unicode(strtype): - return (strtype & STRWIDTH_MASK) > 0 -set_op_tinfo2=set_op_tinfo -set_tinfo2=set_tinfo -def make_switch_info_t__init__(real_init): - def wrapper(self): - real_init(self) - self.bc695_api = False - return wrapper -switch_info_t.__init__ = make_switch_info_t__init__(switch_info_t.__init__) -switch_info_t.regdtyp = switch_info_t.regdtype -def get_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: ea, tinfo_t - ea, tif = args - else: # 7.00: tinfo_t, ea - tif, ea = args - return _ida_nalt.get_tinfo(tif, ea) -get_tinfo2=get_tinfo -def get_refinfo(*args): - if isinstance(args[2], refinfo_t): # 6.95: ea, n, refinfo_t - ea, n, ri = args - else: # 7.00: refinfo_t, ea, n - ri, ea, n = args - return _ida_nalt.get_refinfo(ri, ea, n) - -get_switch_info_ex=get_switch_info -set_switch_info_ex=set_switch_info -del_switch_info_ex=del_switch_info -switch_info_ex_t_assign=_ida_nalt.switch_info_t_assign -switch_info_ex_t_get_custom=_ida_nalt.switch_info_t_custom_get -switch_info_ex_t_get_defjump=_ida_nalt.switch_info_t_defjump_get -switch_info_ex_t_get_elbase=_ida_nalt.switch_info_t_elbase_get -switch_info_ex_t_get_flags=_ida_nalt.switch_info_t_flags_get -switch_info_ex_t_get_ind_lowcase=_ida_nalt.switch_info_t_ind_lowcase_get -switch_info_ex_t_get_jcases=_ida_nalt.switch_info_t_jcases_get -switch_info_ex_t_get_jumps=_ida_nalt.switch_info_t_jumps_get -switch_info_ex_t_get_ncases=_ida_nalt.switch_info_t_ncases_get -switch_info_ex_t_get_regdtyp=_ida_nalt.switch_info_t_regdtype_get -switch_info_ex_t_get_regnum=_ida_nalt.switch_info_t_regnum_get -switch_info_ex_t_get_startea=_ida_nalt.switch_info_t_startea_get -switch_info_ex_t_get_values_lowcase=_ida_nalt.switch_info_t__get_values_lowcase -switch_info_ex_t_set_custom=_ida_nalt.switch_info_t_custom_set -switch_info_ex_t_set_defjump=_ida_nalt.switch_info_t_defjump_set -switch_info_ex_t_set_elbase=_ida_nalt.switch_info_t_elbase_set -switch_info_ex_t_set_flags=_ida_nalt.switch_info_t_flags_set -switch_info_ex_t_set_ind_lowcase=_ida_nalt.switch_info_t_ind_lowcase_set -switch_info_ex_t_set_jcases=_ida_nalt.switch_info_t_jcases_set -switch_info_ex_t_set_jumps=_ida_nalt.switch_info_t_jumps_set -switch_info_ex_t_set_ncases=_ida_nalt.switch_info_t_ncases_set -switch_info_ex_t_set_regdtyp=_ida_nalt.switch_info_t_regdtype_set -switch_info_ex_t_set_regnum=_ida_nalt.switch_info_t_regnum_set -switch_info_ex_t_set_startea=_ida_nalt.switch_info_t_startea_set -switch_info_ex_t_set_values_lowcase=_ida_nalt.switch_info_t__set_values_lowcase - -def __switch_info_t_get_flags__(instance): - return _ida_nalt.switch_info_t_flags_get(instance) | SWI_BC695_EXTENDED -def __switch_info_t_set_flags__(instance, v): - if instance.bc695_api: - v |= (_ida_nalt.switch_info_t_flags_get(instance) & 0xFFFF0000) - _ida_nalt.switch_info_t_flags_set(instance, v) -switch_info_t.flags = property(__switch_info_t_get_flags__, __switch_info_t_set_flags__) - -def __switch_info_t_get_flags2__(instance): - instance.bc695_api = True - return _ida_nalt.switch_info_t_flags_get(instance) >> 16 -def __switch_info_t_set_flags2__(instance, v): - instance.bc695_api = True - flags = _ida_nalt.switch_info_t_flags_get(instance) - instance.flags = (flags & 0xFFFF) | (v << 16) -switch_info_t.flags2 = property(__switch_info_t_get_flags2__, __switch_info_t_set_flags2__) - -switch_info_ex_t=switch_info_t -#</pycode_BC695(py_nalt)> diff --git a/pywraps/py_name.hpp b/pywraps/py_name.hpp index 076e9c2..3ea4002 100644 --- a/pywraps/py_name.hpp +++ b/pywraps/py_name.hpp @@ -14,10 +14,10 @@ PyObject *get_debug_names(ea_t ea1, ea_t ea2, bool return_list=false) get_debug_names(&names, ea1, ea2); Py_END_ALLOW_THREADS; PyObject *dict = Py_BuildValue("{}"); - if ( dict != NULL ) + if ( dict != nullptr ) { ea_t last_ea = BADADDR; - PyObject *list = NULL; + PyObject *list = nullptr; for ( ea_name_vec_t::iterator it = names.begin(); it != names.end(); ++it ) { PyObject *name_obj = IDAPyStr_FromUTF8(it->name.c_str()); diff --git a/pywraps/py_name.py b/pywraps/py_name.py index d180183..e164dd2 100644 --- a/pywraps/py_name.py +++ b/pywraps/py_name.py @@ -70,42 +70,3 @@ def calc_gtn_flags(fromaddr, ea): return gtn_flags #</pycode(py_name)> - -#<pycode_BC695(py_name)> -GN_INSNLOC=0 -@bc695redef -def demangle_name(name, mask, demreq=DQT_FULL): # make flag optional, so demangle_name & demangle_name2 can use it - return _ida_name.demangle_name(name, mask, demreq) -demangle_name2=demangle_name -def do_name_anyway(ea, name, maxlen=0): - return force_name(ea, name) -extract_name2=extract_name -get_debug_name2=get_debug_name -def get_true_name(ea0, ea1=None): - if ea1 is None: - ea = ea0 - else: - ea = ea1 - return get_name(ea) -is_ident_char=is_ident_cp -is_visible_char=is_visible_cp -def make_visible_name(name, sz=0): - if sz > 0: - name = name[0:sz] - return _ida_name.validate_name(name, VNT_VISIBLE) -def validate_name2(name, sz=0): - if sz > 0: - name = name[0:sz] - return _ida_name.validate_name(name, VNT_IDENT) -def validate_name3(name): - return _ida_name.validate_name(name, VNT_IDENT) -isident=is_ident -@bc695redef -def get_name(*args): - if len(args) == 2: - if args[0] != _ida_idaapi.BADADDR: - print("Compatibility get_name(from, ea) was called with non-BADADDR first argument (0x%08x). There is no equivalent in the new API, and the results might be erroneous." % args[0]); - return _ida_name.get_name(args[1]) - else: - return _ida_name.get_name(*args) -#</pycode_BC695(py_name)> diff --git a/pywraps/py_netnode.py b/pywraps/py_netnode.py deleted file mode 100644 index 670d925..0000000 --- a/pywraps/py_netnode.py +++ /dev/null @@ -1,14 +0,0 @@ - -#<pycode_BC695(py_netnode)> -netnode.alt1st = netnode.altfirst -netnode.alt1st_idx8 = netnode.altfirst_idx8 -netnode.altnxt = netnode.altnext -netnode.char1st = netnode.charfirst -netnode.char1st_idx8 = netnode.charfirst_idx8 -netnode.charnxt = netnode.charnext -netnode.hash1st = netnode.hashfirst -netnode.hashnxt = netnode.hashnext -netnode.sup1st = netnode.supfirst -netnode.sup1st_idx8 = netnode.supfirst_idx8 -netnode.supnxt = netnode.supnext -#</pycode_BC695(py_netnode)> diff --git a/pywraps/py_offset.py b/pywraps/py_offset.py deleted file mode 100644 index 93a5903..0000000 --- a/pywraps/py_offset.py +++ /dev/null @@ -1,9 +0,0 @@ - -#<pycode_BC695(py_offset)> -calc_reference_basevalue=calc_basevalue -calc_reference_target=calc_target -def set_offset(ea, n, base): - import ida_idaapi - otype = get_default_reftype(ea) - return op_offset(ea, n, otype, ida_idaapi.BADADDR, base) > 0 -#</pycode_BC695(py_offset)> diff --git a/pywraps/py_pro.hpp b/pywraps/py_pro.hpp index c7720a1..c6bc6c5 100644 --- a/pywraps/py_pro.hpp +++ b/pywraps/py_pro.hpp @@ -6,7 +6,7 @@ static bool qstrvec_t_assign(PyObject *self, PyObject *other) { qstrvec_t *lhs = qstrvec_t_get_clink(self); qstrvec_t *rhs = qstrvec_t_get_clink(other); - if ( lhs == NULL || rhs == NULL ) + if ( lhs == nullptr || rhs == nullptr ) return false; *lhs = *rhs; return true; @@ -16,7 +16,7 @@ static PyObject *qstrvec_t_addressof(PyObject *self, size_t idx) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) Py_RETURN_NONE; else return PyLong_FromUnsignedLongLong(size_t(&sv->at(idx))); @@ -29,7 +29,7 @@ static bool qstrvec_t_set( const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; (*sv)[idx] = s; return true; @@ -41,7 +41,7 @@ static bool qstrvec_t_from_list( { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - return (sv == NULL || !PySequence_Check(py_list)) + return (sv == nullptr || !PySequence_Check(py_list)) ? false : (PyW_PyListToStrVec(sv, py_list) >= 0); } @@ -49,14 +49,14 @@ static bool qstrvec_t_from_list( static size_t qstrvec_t_size(PyObject *self) { qstrvec_t *sv = qstrvec_t_get_clink(self); - return sv == NULL ? 0 : sv->size(); + return sv == nullptr ? 0 : sv->size(); } static PyObject *qstrvec_t_get(PyObject *self, size_t idx) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) Py_RETURN_NONE; return IDAPyStr_FromUTF8(sv->at(idx).c_str()); } @@ -64,7 +64,7 @@ static PyObject *qstrvec_t_get(PyObject *self, size_t idx) static bool qstrvec_t_add(PyObject *self, const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL ) + if ( sv == nullptr ) return false; sv->push_back(s); return true; @@ -73,7 +73,7 @@ static bool qstrvec_t_add(PyObject *self, const char *s) static bool qstrvec_t_clear(PyObject *self, bool qclear) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL ) + if ( sv == nullptr ) return false; if ( qclear ) @@ -90,7 +90,7 @@ static bool qstrvec_t_insert( const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; sv->insert(sv->begin() + idx, s); return true; @@ -99,7 +99,7 @@ static bool qstrvec_t_insert( static bool qstrvec_t_remove(PyObject *self, size_t idx) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; sv->erase(sv->begin()+idx); diff --git a/pywraps/py_pro.py b/pywraps/py_pro.py index 59a6b9e..1c68349 100644 --- a/pywraps/py_pro.py +++ b/pywraps/py_pro.py @@ -97,10 +97,3 @@ class _qstrvec_t(ida_idaapi.py_clinked_object_t): return _ida_pro.qstrvec_t_remove(self, idx) #</pycode(py_pro)> - -#<pycode_BC695(py_pro)> -def strlwr(s): - return str(s).lower() -def strupr(s): - return str(s).upper() -#</pycode_BC695(py_pro)> diff --git a/pywraps/py_problems.py b/pywraps/py_problems.py deleted file mode 100644 index 2e3225c..0000000 --- a/pywraps/py_problems.py +++ /dev/null @@ -1,30 +0,0 @@ -#<pycode_BC695(py_problems)> -import sys -sys.modules["ida_queue"] = sys.modules["ida_problems"] -Q_Qnum=_ida_problems.cvar.PR_END -Q_att=_ida_problems.cvar.PR_ATTN -Q_badstack=_ida_problems.cvar.PR_BADSTACK -Q_collsn=_ida_problems.cvar.PR_COLLISION -Q_decimp=_ida_problems.cvar.PR_DECIMP -Q_disasm=_ida_problems.cvar.PR_DISASM -Q_final=_ida_problems.cvar.PR_FINAL -Q_head=_ida_problems.cvar.PR_HEAD -Q_jumps=_ida_problems.cvar.PR_JUMP -Q_lines=_ida_problems.cvar.PR_MANYLINES -Q_noBase=_ida_problems.cvar.PR_NOBASE -Q_noComm=_ida_problems.cvar.PR_NOCMT -Q_noFop=_ida_problems.cvar.PR_NOFOP -Q_noName=_ida_problems.cvar.PR_NONAME -Q_noRef=_ida_problems.cvar.PR_NOXREFS -Q_noValid=_ida_problems.cvar.PR_ILLADDR -Q_rolled=_ida_problems.cvar.PR_ROLLED -QueueDel=forget_problem -QueueGetMessage=get_problem_desc -QueueGetType=get_problem -QueueIsPresent=is_problem_present -QueueSet=remember_problem -def get_long_queue_name(t): - return get_problem_name(t, True) -def get_short_queue_name(t): - return get_problem_name(t, False) -#</pycode_BC695(py_problems)> diff --git a/pywraps/py_range.py b/pywraps/py_range.py index 4de1722..eb0da33 100644 --- a/pywraps/py_range.py +++ b/pywraps/py_range.py @@ -2,16 +2,3 @@ #<pycode(py_range)> import ida_idaapi #</pycode(py_range)> - -#<pycode_BC695(py_range)> -import sys -sys.modules["ida_area"] = sys.modules["ida_range"] -area_t = range_t -areaset_t = rangeset_t -def __set_startEA(inst, v): - inst.start_ea = v -range_t.startEA = property(lambda self: self.start_ea, __set_startEA) -def __set_endEA(inst, v): - inst.end_ea = v -range_t.endEA = property(lambda self: self.end_ea, __set_endEA) -#</pycode_BC695(py_range)> diff --git a/pywraps/py_registry.hpp b/pywraps/py_registry.hpp index 4ca372b..5f71f86 100644 --- a/pywraps/py_registry.hpp +++ b/pywraps/py_registry.hpp @@ -7,18 +7,18 @@ static PyObject *_py_reg_subkey_children(const char *name, bool subkeys) { PYW_GIL_CHECK_LOCKED_SCOPE(); - PyObject *result = NULL; + PyObject *result = nullptr; qstrvec_t children; Py_BEGIN_ALLOW_THREADS; if ( reg_subkey_children(&children, name, subkeys) ) { result = PyList_New(children.size()); - if ( result != NULL ) + if ( result != nullptr ) for ( size_t i = 0, n = children.size(); i < n; ++i ) PyList_SET_ITEM(result, i, IDAPyStr_FromUTF8(children[i].c_str())); } Py_END_ALLOW_THREADS; - if ( result == NULL ) + if ( result == nullptr ) Py_RETURN_NONE; else return result; @@ -28,19 +28,19 @@ static PyObject *_py_reg_subkey_children(const char *name, bool subkeys) //<inline(py_registry)> //------------------------------------------------------------------------- -PyObject *py_reg_read_string(const char *name, const char *subkey = NULL, const char *def = NULL) +PyObject *py_reg_read_string(const char *name, const char *subkey = nullptr, const char *def = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstring utf8; Py_BEGIN_ALLOW_THREADS; - if ( !reg_read_string(&utf8, name, subkey) && def != NULL ) + if ( !reg_read_string(&utf8, name, subkey) && def != nullptr ) utf8 = def; Py_END_ALLOW_THREADS; return IDAPyStr_FromUTF8(utf8.c_str()); } //------------------------------------------------------------------------- -regval_type_t py_reg_data_type(const char *name, const char *subkey = NULL) +regval_type_t py_reg_data_type(const char *name, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); regval_type_t rt = reg_unknown; @@ -51,7 +51,7 @@ regval_type_t py_reg_data_type(const char *name, const char *subkey = NULL) } //------------------------------------------------------------------------- -PyObject *py_reg_read_binary(const char *name, const char *subkey = NULL) +PyObject *py_reg_read_binary(const char *name, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); bytevec_t bytes; @@ -66,12 +66,12 @@ PyObject *py_reg_read_binary(const char *name, const char *subkey = NULL) } //------------------------------------------------------------------------- -PyObject *py_reg_write_binary(const char *name, PyObject *py_bytes, const char *subkey = NULL) +PyObject *py_reg_write_binary(const char *name, PyObject *py_bytes, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); if ( IDAPyBytes_Check(py_bytes) ) { - char *py_bytes_raw = NULL; + char *py_bytes_raw = nullptr; Py_ssize_t py_size = 0; IDAPyBytes_AsMemAndSize(py_bytes, &py_bytes_raw, &py_size); bytevec_t bytes; @@ -84,7 +84,7 @@ PyObject *py_reg_write_binary(const char *name, PyObject *py_bytes, const char * else { PyErr_SetString(PyExc_ValueError, "Bytes string expected!"); - return NULL; + return nullptr; } } diff --git a/pywraps/py_search.py b/pywraps/py_search.py index 8624977..dce9f06 100644 --- a/pywraps/py_search.py +++ b/pywraps/py_search.py @@ -2,7 +2,3 @@ #<pycode(py_search)> SEARCH_UNICODE = 0x40 # Deprecated. For find_binary() #</pycode(py_search)> - -#<pycode_BC695(py_search)> -find_void=find_suspop -#</pycode_BC695(py_search)> diff --git a/pywraps/py_segment.py b/pywraps/py_segment.py deleted file mode 100644 index f0c5180..0000000 --- a/pywraps/py_segment.py +++ /dev/null @@ -1,17 +0,0 @@ - -#<pycode_BC695(py_segment)> -CSS_NOAREA=CSS_NORANGE -SEGDEL_KEEP=SEGMOD_KEEP -SEGDEL_KEEP0=SEGMOD_KEEP0 -SEGDEL_PERM=SEGMOD_KILL -SEGDEL_SILENT=SEGMOD_SILENT -def del_segment_cmt(s, rpt): - set_segment_cmt(s, "", rpt) -ask_selector=sel2para -# In 7.0, those were renamed -# - get_true_segm_name -> get_segm_name -# - get_segm_name -> get_visible_segm_name -# alas, since they have the same prototypes, we cannot do much, -# but redirect all to get_segm_name and hope for the best -get_true_segm_name=get_segm_name -#</pycode_BC695(py_segment)> diff --git a/pywraps/py_segregs.py b/pywraps/py_segregs.py deleted file mode 100644 index f53f274..0000000 --- a/pywraps/py_segregs.py +++ /dev/null @@ -1,42 +0,0 @@ - -#<pycode_BC695(py_segregs)> -import sys -import ida_idaapi -sys.modules["ida_srarea"] = sys.modules["ida_segregs"] -SetDefaultRegisterValue=set_default_sreg_value -copy_srareas=copy_sreg_ranges -def ___looks_like_ea_not_segreg(thing): - # yay heuristics. Not sure how best to do this... - if thing > 0x200: - return True - return sys.version_info.major < 3 and (type(thing) == long) -def del_sreg_range(*args): - if ___looks_like_ea_not_segreg(args[1]): # 6.95: rg, ea - ea, rg = args[1], args[0] - else: # 7.00: ea, rg - ea, rg = args - return _ida_segregs.del_sreg_range(ea, rg) -del_srarea=del_sreg_range -getSR=get_sreg -get_prev_srarea=get_prev_sreg_range -get_srarea2=get_sreg_range -def get_sreg_range_num(*args): - if ___looks_like_ea_not_segreg(args[1]): # 6.95: rg, ea - ea, rg = args[1], args[0] - else: # 7.00: ea, rg - ea, rg = args - return _ida_segregs.get_sreg_range_num(ea, rg) -get_srarea_num=get_sreg_range_num -get_srareas_qty2=get_sreg_ranges_qty -getn_srarea2=getn_sreg_range -is_segreg_locked=ida_idaapi._BC695.false_p -class lock_segreg: - def __init__(): - pass -segreg_area_t=sreg_range_t -splitSRarea1=split_sreg_range -split_srarea=split_sreg_range -get_segreg=get_sreg -set_default_segreg_value=set_default_sreg_value - -#</pycode_BC695(py_segregs)> diff --git a/pywraps/py_strlist.py b/pywraps/py_strlist.py deleted file mode 100644 index 8f6adc1..0000000 --- a/pywraps/py_strlist.py +++ /dev/null @@ -1,4 +0,0 @@ -#<pycode_BC695(py_strlist)> -def refresh_strlist(*args): - build_strlist() -#</pycode_BC695(py_strlist)> diff --git a/pywraps/py_struct.py b/pywraps/py_struct.py deleted file mode 100644 index 1233d93..0000000 --- a/pywraps/py_struct.py +++ /dev/null @@ -1,28 +0,0 @@ -#<pycode_BC695(py_struct)> -get_member_name2=get_member_name - -def get_member_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: mptr, tinfo_t - mptr, tif = args - else: # 7.00: tinfo_t, mptr - tif, mptr = args - return _ida_struct.get_member_tinfo(tif, mptr); - -def get_or_guess_member_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: mptr, tinfo_t - mptr, tif = args - else: # 7.00: tinfo_t, mptr - tif, mptr = args - return _ida_struct.get_or_guess_member_tinfo(tif, mptr); - -# note: if needed we might have to re-implement get_member_tinfo() -# and look whether there is a 2nd, 'tinfo_t' parameter (since the -# original get_member_tinfo function has a different signature) -get_member_tinfo2=get_member_tinfo -# same here -get_or_guess_member_tinfo2=get_or_guess_member_tinfo -save_struc2=save_struc -set_member_tinfo2=set_member_tinfo -#</pycode_BC695(py_struct)> diff --git a/pywraps/py_typeinf.hpp b/pywraps/py_typeinf.hpp index 277dff6..7300148 100644 --- a/pywraps/py_typeinf.hpp +++ b/pywraps/py_typeinf.hpp @@ -10,7 +10,7 @@ PyObject *idc_parse_decl(til_t *ti, const char *decl, int flags) qtype fields, type; bool ok = parse_decl(&tif, &name, ti, decl, flags); if ( ok ) - ok = tif.serialize(&type, &fields, NULL, SUDT_FAST); + ok = tif.serialize(&type, &fields, nullptr, SUDT_FAST); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) @@ -47,7 +47,7 @@ PyObject *py_calc_type_size(const til_t *ti, PyObject *tp) size_t sz; Py_BEGIN_ALLOW_THREADS; tinfo_t tif; - tif.deserialize(ti, &data, NULL, NULL); + tif.deserialize(ti, &data, nullptr, nullptr); sz = tif.get_size(); Py_END_ALLOW_THREADS; if ( sz != BADSIZE ) @@ -57,14 +57,14 @@ PyObject *py_calc_type_size(const til_t *ti, PyObject *tp) else { PyErr_SetString(PyExc_ValueError, "String expected!"); - return NULL; + return nullptr; } } //------------------------------------------------------------------------- /* #<pydoc> -def apply_type(ti, ea, tp_name, py_type, py_fields, flags) +def apply_type(ti, ea, tp_name, py_type, py_fields, flags): """ Apply the specified type to the address @param ti: Type info library. 'None' can be used. @@ -89,9 +89,9 @@ static bool py_apply_type( Py_BEGIN_ALLOW_THREADS; struc_t *sptr; member_t *mptr = get_member_by_id(ea, &sptr); - if ( type == NULL || type[0] == '\0' ) + if ( type == nullptr || type[0] == '\0' ) { - if ( mptr != NULL ) + if ( mptr != nullptr ) { rc = mptr->has_ti(); if ( rc ) @@ -107,10 +107,10 @@ static bool py_apply_type( else { tinfo_t tif; - rc = tif.deserialize(ti, &type, &fields, NULL); + rc = tif.deserialize(ti, &type, &fields, nullptr); if ( rc ) { - if ( mptr != NULL ) + if ( mptr != nullptr ) rc = set_member_tinfo(sptr, mptr, 0, tif, 0) > SMT_FAILED; else rc = apply_tinfo(ea, tif, flags); @@ -174,7 +174,7 @@ PyObject *py_unpack_object_from_idb( &idc_obj, tif, ea, - NULL, + nullptr, pio_flags); Py_END_ALLOW_THREADS; @@ -277,7 +277,7 @@ PyObject *py_pack_object_to_idb( idc_value_t idc_obj; borref_t py_obj_ref(py_obj); if ( !pyvar_to_idcvar_or_error(py_obj_ref, &idc_obj) ) - return NULL; + return nullptr; // Pack // error_t err; @@ -323,7 +323,7 @@ PyObject *py_pack_object_to_bv( idc_value_t idc_obj; borref_t py_obj_ref(py_obj); if ( !pyvar_to_idcvar_or_error(py_obj_ref, &idc_obj) ) - return NULL; + return nullptr; // Pack relobj_t bytes; @@ -335,13 +335,13 @@ PyObject *py_pack_object_to_bv( &idc_obj, tif, &bytes, - NULL, + nullptr, pio_flags); if ( err == eOk && !bytes.relocate(base_ea, inf_is_be()) ) err = -1; Py_END_ALLOW_THREADS; if ( err == eOk ) - return Py_BuildValue("(i" PY_BV_BYTES "#)", 1, bytes.begin(), bytes.size()); + return Py_BuildValue("(i" PY_BV_BYTES "#)", 1, bytes.begin(), (Py_ssize_t) bytes.size()); else return Py_BuildValue("(ii)", 0, err); } @@ -359,7 +359,7 @@ int idc_parse_types(const char *input, int flags) flags &= ~PT_FILE; } - return parse_decls(NULL, input, (flags & PT_SIL) == 0 ? msg : NULL, hti); + return parse_decls(nullptr, input, (flags & PT_SIL) == 0 ? msg : nullptr, hti); } //------------------------------------------------------------------------- @@ -369,7 +369,7 @@ PyObject *py_idc_get_type_raw(ea_t ea) qtype type, fields; bool ok = get_tinfo(&tif, ea); if ( ok ) - ok = tif.serialize(&type, &fields, NULL, SUDT_FAST); + ok = tif.serialize(&type, &fields, nullptr, SUDT_FAST); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) return Py_BuildValue("(" PY_BV_TYPE PY_BV_FIELDS ")", (char *)type.c_str(), (char *)fields.c_str()); @@ -382,7 +382,7 @@ PyObject *py_idc_get_local_type_raw(int ordinal) { const type_t *type; const p_list *fields; - bool ok = get_numbered_type(NULL, ordinal, &type, &fields); + bool ok = get_numbered_type(nullptr, ordinal, &type, &fields); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) return Py_BuildValue("(" PY_BV_TYPE PY_BV_FIELDS ")", (char *)type, (char *)fields); @@ -399,7 +399,7 @@ char *idc_guess_type(ea_t ea, char *buf, size_t bufsize) if ( tif.print(&out) ) return qstrncpy(buf, out.begin(), bufsize); } - return NULL; + return nullptr; } //------------------------------------------------------------------------- @@ -415,34 +415,34 @@ char *idc_get_type(ea_t ea, char *buf, size_t bufsize) return buf; } } - return NULL; + return nullptr; } //------------------------------------------------------------------------- int idc_set_local_type(int ordinal, const char *dcl, int flags) { - if ( dcl == NULL || dcl[0] == '\0' ) + if ( dcl == nullptr || dcl[0] == '\0' ) { - if ( !del_numbered_type(NULL, ordinal) ) + if ( !del_numbered_type(nullptr, ordinal) ) return 0; } else { tinfo_t tif; qstring name; - if ( !parse_decl(&tif, &name, NULL, dcl, flags) ) + if ( !parse_decl(&tif, &name, nullptr, dcl, flags) ) return 0; if ( ordinal <= 0 ) { if ( !name.empty() ) - ordinal = get_type_ordinal(NULL, name.begin()); + ordinal = get_type_ordinal(nullptr, name.begin()); if ( ordinal <= 0 ) - ordinal = alloc_type_ordinal(NULL); + ordinal = alloc_type_ordinal(nullptr); } - if ( tif.set_numbered_type(NULL, ordinal, 0, name.c_str()) != TERR_OK ) + if ( tif.set_numbered_type(nullptr, ordinal, 0, name.c_str()) != TERR_OK ) return 0; } return ordinal; @@ -452,14 +452,14 @@ int idc_set_local_type(int ordinal, const char *dcl, int flags) int idc_get_local_type(int ordinal, int flags, char *buf, size_t maxsize) { tinfo_t tif; - if ( !tif.get_numbered_type(NULL, ordinal) ) + if ( !tif.get_numbered_type(nullptr, ordinal) ) { buf[0] = 0; return false; } qstring res; - const char *name = get_numbered_type_name(NULL, ordinal); + const char *name = get_numbered_type_name(nullptr, ordinal); if ( !tif.print(&res, name, flags, 2, 40) ) { buf[0] = 0; @@ -482,7 +482,7 @@ PyObject *idc_print_type( bool ok; Py_BEGIN_ALLOW_THREADS; tinfo_t tif; - ok = tif.deserialize(NULL, &type, &fields, NULL) + ok = tif.deserialize(nullptr, &type, &fields, nullptr) && tif.print(&res, name, flags, 2, 40); Py_END_ALLOW_THREADS; if ( ok ) @@ -494,8 +494,8 @@ PyObject *idc_print_type( //------------------------------------------------------------------------- char idc_get_local_type_name(int ordinal, char *buf, size_t bufsize) { - const char *name = get_numbered_type_name(NULL, ordinal); - if ( name == NULL ) + const char *name = get_numbered_type_name(nullptr, ordinal); + if ( name == nullptr ) return false; qstrncpy(buf, name, bufsize); @@ -520,9 +520,9 @@ def get_named_type(til, name, ntf_flags): */ PyObject *py_get_named_type(const til_t *til, const char *name, int ntf_flags) { - const type_t *type = NULL; - const p_list *fields = NULL, *field_cmts = NULL; - const char *cmt = NULL; + const type_t *type = nullptr; + const p_list *fields = nullptr, *field_cmts = nullptr; + const char *cmt = nullptr; sclass_t sclass = sc_unk; uint64 value = 0; int code = get_named_type(til, name, ntf_flags, &type, &fields, &cmt, &field_cmts, &sclass, (uint32 *) &value); @@ -547,9 +547,9 @@ PyObject *py_get_named_type(const til_t *til, const char *name, int ntf_flags) ADD(PyInt_FromLong(long(code))); ADD(IDAPyBytes_FromMem((const char *) type)); - ADD_OR_NONE(fields != NULL, IDAPyBytes_FromMem((const char *) fields)); - ADD_OR_NONE(cmt != NULL, IDAPyStr_FromUTF8(cmt)); - ADD_OR_NONE(field_cmts != NULL, IDAPyStr_FromUTF8((const char *) field_cmts)); + ADD_OR_NONE(fields != nullptr, IDAPyBytes_FromMem((const char *) fields)); + ADD_OR_NONE(cmt != nullptr, IDAPyStr_FromUTF8(cmt)); + ADD_OR_NONE(field_cmts != nullptr, IDAPyStr_FromUTF8((const char *) field_cmts)); ADD(PyInt_FromLong(long(sclass))); if ( (ntf_flags & NTF_64BIT) != 0 ) ADD(PyLong_FromUnsignedLongLong(value)); @@ -572,7 +572,7 @@ PyObject *py_print_decls(text_sink_t &printer, til_t *til, PyObject *py_ordinals if ( !PyList_Check(py_ordinals) ) { PyErr_SetString(PyExc_ValueError, "'ordinals' must be a list"); - return NULL; + return nullptr; } Py_ssize_t nords = PyList_Size(py_ordinals); @@ -581,31 +581,25 @@ PyObject *py_print_decls(text_sink_t &printer, til_t *til, PyObject *py_ordinals for ( Py_ssize_t i = 0; i < nords; ++i ) { borref_t item(PyList_GetItem(py_ordinals, i)); - if ( item == NULL || !IDAPyIntOrLong_Check(item.o) ) + if ( item == nullptr || !IDAPyIntOrLong_Check(item.o) ) { qstring msg; msg.sprnt("ordinals[%d] is not a valid value", int(i)); PyErr_SetString(PyExc_ValueError, msg.begin()); - return NULL; + return nullptr; } uint32 ord = IDAPyIntOrLong_AsLong(item.o); ordinals.push_back(ord); } - return IDAPyInt_FromLong(print_decls(printer, til, ordinals.empty() ? NULL : &ordinals, flags)); + return IDAPyInt_FromLong(print_decls(printer, til, ordinals.empty() ? nullptr : &ordinals, flags)); } -#ifdef BC695 -// dummy idati, to generate the cvar. We'll patch the code so -// it does retrieve the real idati through get_idati() -til_t *idati = NULL; -#endif - //------------------------------------------------------------------------- PyObject *py_remove_tinfo_pointer(tinfo_t *tif, const char *name, const til_t *til) { - const char **pname = name == NULL ? NULL : &name; + const char **pname = name == nullptr ? nullptr : &name; bool rc = remove_tinfo_pointer(tif, pname, til); - return Py_BuildValue("(Os)", PyBool_FromLong(rc), pname != NULL ? *pname : NULL); + return Py_BuildValue("(Os)", PyBool_FromLong(rc), pname != nullptr ? *pname : nullptr); } //------------------------------------------------------------------------- diff --git a/pywraps/py_typeinf.py b/pywraps/py_typeinf.py index 0fc85ac..39950cd 100644 --- a/pywraps/py_typeinf.py +++ b/pywraps/py_typeinf.py @@ -4,117 +4,23 @@ import ida_idaapi ida_idaapi._listify_types( reginfovec_t) -#</pycode(py_typeinf)> +# +# When turning off BC695, 'idati' would still remain available +# +_real_cvar = cvar +_notify_idati = ida_idaapi._make_one_time_warning_message("idati", "get_idati()") -#<pycode_BC695(py_typeinf)> -BFI_NOCONST=0 -BFI_NOLOCS=0 -NTF_NOIDB=0 -PRVLOC_STKOFF=PRALOC_VERIFY -PRVLOC_VERIFY=PRALOC_STKOFF -TERR_TOOLONGNAME=TERR_WRONGNAME -@bc695redef -def add_til(name, flags=0): - return _ida_typeinf.add_til(name, flags) -add_til2=add_til -def apply_decl(arg0, arg1, arg2=None, arg3=0): - if type(arg0) in ida_idaapi.integer_types: # old apply_cdecl() - return _ida_typeinf.apply_cdecl(cvar.idati, arg0, arg1, 0) - else: - assert(arg2 is not None) - return _ida_typeinf.apply_cdecl(arg0, arg1, arg2, arg3) -apply_cdecl2=apply_decl -apply_tinfo2=apply_tinfo -calc_c_cpp_name4=calc_c_cpp_name -import ida_idaapi -callregs_init_regs=ida_idaapi._BC695.dummy -choose_local_type=choose_local_tinfo -def choose_named_type2(root_til, title, ntf_flags, func, out_sym): - class func_pred_t(predicate_t): - def __init__(self, func): - predicate_t.__init__(self) - self.func = func - def should_display(self, til, name, tp, flds): - return self.func(name, tp, flds) - fp = func_pred_t(func) - return choose_named_type(out_sym, root_til, title, ntf_flags, fp) -deref_ptr2=deref_ptr -extract_varloc=extract_argloc -const_vloc_visitor_t=const_aloc_visitor_t -for_all_const_varlocs=for_all_const_arglocs -for_all_varlocs=for_all_arglocs -def gen_decorate_name3(name, mangle, cc): - return gen_decorate_name(name, mangle, cc, None) # ATM gen_decorate_name doesn't use its tinfo_t -get_enum_member_expr2=get_enum_member_expr -get_idainfo_by_type3=get_idainfo_by_type -def guess_func_tinfo2(pfn, tif): - return guess_tinfo(pfn.start_ea, tif) -@bc695redef -def load_til(name, tildir=None, *args): - # 6.95 C++ prototypes - # idaman til_t *ida_export load_til(const char *tildir, const char *name, char *errbuf, size_t bufsize); - # idaman til_t *ida_export load_til2( const char *name, char *errbuf, size_t bufsize); - # - # 6.95 Python prototypes - # load_til(tildir, name) - # load_til(tildir, name, errbuf, bufsize) - # load_til2(name, errbuf, bufsize=0) - # - # -> it's virtually impossible to tell whether it's load_til2(), - # or load_til() that's called since they both take 2 first string - # arguments. We'll rely the contents of those strings... - if name is None or name == "": # load_til(), with an empty tildir - name = tildir - tildir = "" - return _ida_typeinf.load_til(name, tildir) - else: - return _ida_typeinf.load_til(name, tildir) -load_til2=load_til -lower_type2=lower_type -optimize_varloc=optimize_argloc -def parse_decl2(til, decl, tif, flags): - return _ida_typeinf.parse_decl(tif, til, decl, flags) -@bc695redef -def print_type(ea, flags): - if isinstance(flags, bool): - flags = PRTYPE_1LINE if flags else 0 - return _ida_typeinf.print_type(ea, flags) -def print_type2(ea, flags): - return _ida_typeinf.print_type(ea, flags) -print_type3=_ida_typeinf.print_type -print_varloc=print_argloc -def resolve_typedef2(til, p, *args): - return _ida_typeinf.resolve_typedef(til, p) -scattered_vloc_t=scattered_aloc_t -set_compiler2=set_compiler -varloc_t=argloc_t -varpart_t=argpart_t -verify_varloc=verify_argloc -vloc_visitor_t=aloc_visitor_t -def guess_tinfo(*args): - if isinstance(args[1], tinfo_t): # 6.95: id, tinfo_t - tid, tif = args - else: # 7.00: tinfo_t, id - tif, tid = args - return _ida_typeinf.guess_tinfo(tif, tid) -guess_tinfo2=guess_tinfo -def find_tinfo_udt_member(*args): - if isinstance(args[2], udt_member_t): # 6.95: typid, strmem_flags, udm - typid, strmem_flags, udm = args - else: # 7.00: udm, typid, strmem_flags - udm, typid, strmem_flags = args - return _ida_typeinf.find_tinfo_udt_member(udm, typid, strmem_flags) -def __tinfo_t_find_udt_member(self, *args): - if isinstance(args[1], udt_member_t): # 6.95: strmem_flags, udm - strmem_flags, udm = args - else: # 7.00: udm, strmem_flags - udm, strmem_flags = args - return _ida_typeinf.tinfo_t_find_udt_member(self, udm, strmem_flags) -tinfo_t.find_udt_member=__tinfo_t_find_udt_member -def save_tinfo(*args): - if isinstance(args[4], tinfo_t): # 6.95: til_t, size_t, name, int, tinfo_t - til, _ord, name, ntf_flags, tif = args - else: # 7.00: tinfo_t, til_t, size_t, name, int - tif, til, _ord, name, ntf_flags = args - return _ida_typeinf.save_tinfo(tif, til, _ord, name, ntf_flags) -#</pycode_BC695(py_typeinf)> +class _wrap_cvar(object): + def __getattr__(self, attr): + if attr == "idati": + _notify_idati() + return get_idati() + return getattr(_real_cvar, attr) + + def __setattr__(self, attr, value): + if attr != "idati": + setattr(_real_cvar, attr, value) + +cvar = _wrap_cvar() + +#</pycode(py_typeinf)> diff --git a/pywraps/py_ua.hpp b/pywraps/py_ua.hpp index 16fb92f..1b50bfb 100644 --- a/pywraps/py_ua.hpp +++ b/pywraps/py_ua.hpp @@ -54,10 +54,10 @@ bool py_construct_macro(insn_t &insn, bool enable, PyObject *build_macro) PyObject *py_builder = macro_builders.top().o; ref_t py_res; ref_t py_mod(PyW_TryImportModule(SWIG_name)); - if ( py_mod != NULL ) + if ( py_mod != nullptr ) { ref_t py_insn = try_create_swig_wrapper(py_mod, "insn_t", &insn); - if ( py_insn != NULL ) + if ( py_insn != nullptr ) { py_res = newref_t( PyObject_CallFunction( diff --git a/pywraps/py_ua.py b/pywraps/py_ua.py index c02e8bd..f8bb8ee 100644 --- a/pywraps/py_ua.py +++ b/pywraps/py_ua.py @@ -1,78 +1,3 @@ #<pycode(py_ua)> ua_mnem = print_insn_mnem #</pycode(py_ua)> - -#<pycode_BC695(py_ua)> -import ida_idaapi -def codeSeg(ea, opnum): - insn = insn_t() - if decode_insn(insn, ea): - return _ida_ua.map_code_ea(insn, insn.ops[opnum]) - else: - return ida_idaapi.BADADDR -get_dtyp_by_size=get_dtype_by_size -get_dtyp_flag=get_dtype_flag -get_dtyp_size=get_dtype_size -get_operand_immvals=get_immvals -op_t.dtyp = op_t.dtype -cmd = insn_t() -@bc695redef -def decode_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_insn(*args) -@bc695redef -def create_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.create_insn(args[0], tmp) - cmd.assign(tmp) - return rc - else: - return _ida_ua.create_insn(*args) -@bc695redef -def decode_prev_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_prev_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_prev_insn(*args) -@bc695redef -def decode_preceding_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_preceding_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_preceding_insn(*args) -import ida_ida -UA_MAXOP=ida_ida.UA_MAXOP -dt_3byte=dt_byte -tbo_123=0 -tbo_132=0 -tbo_213=0 -tbo_231=0 -tbo_312=0 -tbo_321=0 -def ua_add_cref(opoff, to, rtype): - return cmd.add_cref(to, opoff, rtype) -def ua_add_dref(opoff, to, rtype): - return cmd.add_dref(to, opoff, rtype) -def ua_add_off_drefs(x, rtype): - return cmd.add_off_drefs(x, rtype, 0) -def ua_add_off_drefs2(x, rtype, outf): - return cmd.add_off_drefs(x, rtype, outf) -def ua_dodata(ea, dtype): - return cmd.create_op_data(ea, 0, dtype) -def ua_dodata2(opoff, ea, dtype): - return cmd.create_op_data(ea, opoff, dtype) -def ua_stkvar2(x, v, flags): - return cmd.create_stkvar(x, v, flags) -#</pycode_BC695(py_ua)> diff --git a/pywraps/py_xref.hpp b/pywraps/py_xref.hpp index 07f4a8d..5622df1 100644 --- a/pywraps/py_xref.hpp +++ b/pywraps/py_xref.hpp @@ -71,7 +71,7 @@ cases_and_targets_t *py_calc_switch_cases( if ( !calc_switch_cases(&ct->cases, &ct->targets, ea, si) ) { delete ct; - return NULL; + return nullptr; } return ct; } diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6e578ef --- /dev/null +++ b/readme.md @@ -0,0 +1,102 @@ +# IDAPython +## Python plugin for Interactive Disassembler + +IDAPython is an IDA plugin which makes it possible to write scripts +for IDA in the Python programming language. IDAPython provides full +access to both the IDA API and any installed Python module. + +Check the scripts in the examples directory to get an quick glimpse. + +## Availability + +Latest stable versions of IDAPython are available from + https://github.com/idapython/src + +## Resources + +The full function cross-reference is readable online at + http://www.hex-rays.com/idapro/idapython_docs/ + +Mailing list for the project is hosted by Google Groups at + http://groups.google.com/group/idapython + +## Installation from binaries + +1. Install 2.6 or 2.7 from http://www.python.org/ +2. Copy the whole "python" directory to `%IDADIR%` +3. Copy the contents of the "plugins" directory to the `%IDADIR%\plugins\` +4. Copy "python.cfg" to `%IDADIR%\cfg` + +## Usage + + - Run script: File / Script file (Alt-F7) + - Execute Python statement(s) (Ctrl-F3) + - Run previously executed script again: View / Recent Scripts (Alt+F9) + +### Batch mode execution: + +Start IDA with the following command line options: +``` + -A -OIDAPython:yourscript.py file_to_work_on + ``` +or +``` +-Syourscript.py +``` +or +``` +-S"yourscript.py arg1 arg2 arg3" +``` + +(Please see http://www.hexblog.com/?p=128) + +If you want fully unattended execution mode, make sure your script +exits with a `qexit()` call. + +By default scripts run after the database is opened. Extended option +format is: +``` + -OIDAPython:[N;]script.py +``` +Where N can be: + 0: run script after opening database (default) + 1: run script when UI is ready + 2: run script immediately on plugin load (shortly after IDA starts and before processor modules and loaders) + +### User init file + +You can place your custom settings to a file called 'idapythonrc.py' +that should be placed to +```sh +${HOME}/.idapro/ +``` +or +```cmd +%AppData%\Hex-Rays\IDA Pro +``` +The user init file is read and executed at the end of the init process. + +Please note that IDAPython can be configured with "python.cfg" file. + +### Invoking Python from IDC + +The IDAPython plugin exposes a new IDC function `RunPythonStatement(string idc_code)` that allows execution +of Python code from IDC + +### Invoking IDC from Python + +It is possible to use the `idc.eval()` to evaluate IDC expressions from Python + +### Making Python the default language + +By default, IDA will use IDC to evaluate expressions. It is possible to change the default language to use +Python instead of IDC. + +In order to do that, please use the following IDC code: +```c +load_and_run_plugin("python", 3) +``` +To disable Python language and revert back to IDC: +```c +load_and_run_plugin("python", 4) +``` diff --git a/release_api_contents2.txt b/release_api_contents2.txt index c70f6fc..91e8c7d 100644 --- a/release_api_contents2.txt +++ b/release_api_contents2.txt @@ -101,9 +101,12 @@ 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', @@ -226,7 +229,7 @@ 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -269,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -276,7 +280,6 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', @@ -399,9 +402,6 @@ 'action_ctx_base_source_t_chooser_get', 'action_ctx_base_source_t_chooser_set', 'action_ctx_base_source_t_reset', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -564,6 +564,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -590,8 +592,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -869,6 +869,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -940,6 +942,7 @@ 'begin_type_updating', 'bin_flag', 'bin_search', + 'bin_search3', 'bin_search__SWIG_0', 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', @@ -1177,6 +1180,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1262,6 +1267,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1891,6 +1898,7 @@ 'chooser_base_t_header_get', 'chooser_base_t_height_get', 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', 'chooser_base_t_is_force_default', 'chooser_base_t_is_modal', 'chooser_base_t_is_multi', @@ -1929,6 +1937,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -2315,11 +2361,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2360,6 +2416,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2395,6 +2452,7 @@ 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', @@ -2605,6 +2663,7 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', 'delete_call_stack_info_vec_t', 'delete_call_stack_t', @@ -2636,6 +2695,8 @@ 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2671,6 +2732,7 @@ 'delete_dirtree_iterator_t', 'delete_dirtree_selection_t', 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', 'delete_dyn_ea_array', @@ -2738,6 +2800,10 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_insn_t', 'delete_instant_dbgopts_t', 'delete_int_pointer', @@ -2804,6 +2870,7 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', 'delete_op_parent_info_t', 'delete_op_t', @@ -2812,6 +2879,7 @@ 'delete_opinfo_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_place_t', 'delete_plugin_info_t', 'delete_point_t', @@ -2825,8 +2893,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2880,6 +2946,7 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2929,6 +2996,7 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', @@ -3035,8 +3103,8 @@ 'dirspec_t_get_attrs', 'dirspec_t_get_inode', 'dirspec_t_get_name', - 'dirspec_t_nodename_get', - 'dirspec_t_nodename_set', + 'dirspec_t_id_get', + 'dirspec_t_id_set', 'dirspec_t_rename_inode', 'dirspec_t_unlink_inode', 'dirtree_cursor_t___eq__', @@ -3101,6 +3169,7 @@ 'dirtree_t_change_rank', 'dirtree_t_chdir', 'dirtree_t_errstr', + 'dirtree_t_find_entry', 'dirtree_t_findfirst', 'dirtree_t_findnext', 'dirtree_t_get_abspath', @@ -3109,7 +3178,7 @@ 'dirtree_t_get_dir_size', 'dirtree_t_get_entry_attrs', 'dirtree_t_get_entry_name', - 'dirtree_t_get_nodename', + 'dirtree_t_get_id', 'dirtree_t_get_parent_cursor', 'dirtree_t_get_rank', 'dirtree_t_getcwd', @@ -3130,10 +3199,12 @@ 'dirtree_t_resolve_path', 'dirtree_t_rmdir', 'dirtree_t_save', - 'dirtree_t_set_nodename', + 'dirtree_t_set_id', + 'dirtree_t_traverse', 'dirtree_t_unlink', 'dirtree_t_unlink__SWIG_0', 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -3202,6 +3273,7 @@ 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', 'disown_file_enumerator_t', 'disown_gdl_graph_t', @@ -3380,6 +3452,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3757,6 +3830,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_parent_iterator_set', 'func_parent_iterator_t___next__', 'func_parent_iterator_t_first', @@ -3829,11 +3904,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3905,8 +3985,12 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', 'gdl_graph_t_begin', 'gdl_graph_t_edge', 'gdl_graph_t_empty', @@ -4025,6 +4109,7 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', @@ -4055,6 +4140,7 @@ 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -4182,8 +4268,7 @@ 'get_ind_purged', 'get_inf_structure', 'get_initial_ida_version', - 'get_initial_ida_version__SWIG_0', - 'get_initial_ida_version__SWIG_1', + 'get_initial_idb_version', 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', @@ -4431,6 +4516,7 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', 'get_vftable_ea', 'get_vftable_ordinal', @@ -4652,8 +4738,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4663,9 +4749,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4716,8 +4799,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4865,6 +4946,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4912,8 +4996,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -5002,6 +5086,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -5045,10 +5132,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -5215,6 +5302,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'insn_add_cref', 'insn_add_dref', 'insn_add_off_drefs', @@ -5228,6 +5345,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5428,6 +5551,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -6137,6 +6261,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -6586,6 +6711,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -7059,7 +7185,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -7328,6 +7453,7 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', 'new_call_stack_info_vec_t', 'new_call_stack_info_vec_t__SWIG_0', @@ -7384,6 +7510,10 @@ 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7397,8 +7527,6 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', @@ -7441,6 +7569,7 @@ 'new_dirtree_iterator_t', 'new_dirtree_selection_t', 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', @@ -7548,6 +7677,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_insn_t', 'new_instant_dbgopts_t', 'new_int_pointer', @@ -7656,6 +7789,7 @@ 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', 'new_op_parent_info_t', 'new_op_t', @@ -7664,6 +7798,7 @@ 'new_opinfo_t', 'new_optblock_t', 'new_optinsn_t', + 'new_params_t', 'new_plugin_info_t', 'new_point_t', 'new_point_t__SWIG_0', @@ -7686,10 +7821,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -7749,6 +7880,8 @@ 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7794,13 +7927,12 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7870,8 +8002,9 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', @@ -8015,6 +8148,10 @@ 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', @@ -8073,6 +8210,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -8087,6 +8226,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -8097,8 +8240,12 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', @@ -8272,11 +8419,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -8608,49 +8761,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -9021,6 +9131,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -9651,6 +9763,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -9756,6 +9870,8 @@ 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', @@ -9782,6 +9898,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -9812,6 +9929,7 @@ 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -9950,6 +10068,14 @@ 'step_into', 'step_over', 'step_until_ret', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -10020,15 +10146,22 @@ 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -10039,6 +10172,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -10132,6 +10266,8 @@ 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -10149,6 +10285,8 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', @@ -10420,6 +10558,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -10552,6 +10691,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -10701,6 +10841,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -10712,6 +10856,7 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', 'udc_filter_t_install', 'udc_filter_t_match', @@ -10740,6 +10885,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -10749,6 +10895,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -10762,6 +10909,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -10771,6 +10919,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -10802,46 +10951,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', diff --git a/release_api_contents3.txt b/release_api_contents3.txt index f01ec93..c676c77 100644 --- a/release_api_contents3.txt +++ b/release_api_contents3.txt @@ -101,9 +101,12 @@ 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', @@ -226,7 +229,7 @@ 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -269,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -276,7 +280,6 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', @@ -399,9 +402,6 @@ 'action_ctx_base_source_t_chooser_get', 'action_ctx_base_source_t_chooser_set', 'action_ctx_base_source_t_reset', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -564,6 +564,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -590,8 +592,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -869,6 +869,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -940,6 +942,7 @@ 'begin_type_updating', 'bin_flag', 'bin_search', + 'bin_search3', 'bin_search__SWIG_0', 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', @@ -1177,6 +1180,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1262,6 +1267,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1891,6 +1898,7 @@ 'chooser_base_t_header_get', 'chooser_base_t_height_get', 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', 'chooser_base_t_is_force_default', 'chooser_base_t_is_modal', 'chooser_base_t_is_multi', @@ -1929,6 +1937,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -2315,11 +2361,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2360,6 +2416,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2395,6 +2452,7 @@ 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', @@ -2605,6 +2663,7 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', 'delete_call_stack_info_vec_t', 'delete_call_stack_t', @@ -2636,6 +2695,8 @@ 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2671,6 +2732,7 @@ 'delete_dirtree_iterator_t', 'delete_dirtree_selection_t', 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', 'delete_dyn_ea_array', @@ -2738,6 +2800,10 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_insn_t', 'delete_instant_dbgopts_t', 'delete_int_pointer', @@ -2804,6 +2870,7 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', 'delete_op_parent_info_t', 'delete_op_t', @@ -2812,6 +2879,7 @@ 'delete_opinfo_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_place_t', 'delete_plugin_info_t', 'delete_point_t', @@ -2825,8 +2893,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2880,6 +2946,7 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2929,6 +2996,7 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', @@ -3035,8 +3103,8 @@ 'dirspec_t_get_attrs', 'dirspec_t_get_inode', 'dirspec_t_get_name', - 'dirspec_t_nodename_get', - 'dirspec_t_nodename_set', + 'dirspec_t_id_get', + 'dirspec_t_id_set', 'dirspec_t_rename_inode', 'dirspec_t_unlink_inode', 'dirtree_cursor_t___eq__', @@ -3101,6 +3169,7 @@ 'dirtree_t_change_rank', 'dirtree_t_chdir', 'dirtree_t_errstr', + 'dirtree_t_find_entry', 'dirtree_t_findfirst', 'dirtree_t_findnext', 'dirtree_t_get_abspath', @@ -3109,7 +3178,7 @@ 'dirtree_t_get_dir_size', 'dirtree_t_get_entry_attrs', 'dirtree_t_get_entry_name', - 'dirtree_t_get_nodename', + 'dirtree_t_get_id', 'dirtree_t_get_parent_cursor', 'dirtree_t_get_rank', 'dirtree_t_getcwd', @@ -3130,10 +3199,12 @@ 'dirtree_t_resolve_path', 'dirtree_t_rmdir', 'dirtree_t_save', - 'dirtree_t_set_nodename', + 'dirtree_t_set_id', + 'dirtree_t_traverse', 'dirtree_t_unlink', 'dirtree_t_unlink__SWIG_0', 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -3202,6 +3273,7 @@ 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', 'disown_file_enumerator_t', 'disown_gdl_graph_t', @@ -3380,6 +3452,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3757,6 +3830,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_parent_iterator_set', 'func_parent_iterator_t___next__', 'func_parent_iterator_t_first', @@ -3829,11 +3904,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3905,8 +3985,12 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', 'gdl_graph_t_begin', 'gdl_graph_t_edge', 'gdl_graph_t_empty', @@ -4025,6 +4109,7 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', @@ -4055,6 +4140,7 @@ 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -4182,8 +4268,7 @@ 'get_ind_purged', 'get_inf_structure', 'get_initial_ida_version', - 'get_initial_ida_version__SWIG_0', - 'get_initial_ida_version__SWIG_1', + 'get_initial_idb_version', 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', @@ -4431,6 +4516,7 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', 'get_vftable_ea', 'get_vftable_ordinal', @@ -4652,8 +4738,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4663,9 +4749,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4716,8 +4799,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4865,6 +4946,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4912,8 +4996,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -5002,6 +5086,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -5045,10 +5132,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -5215,6 +5302,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'insn_add_cref', 'insn_add_dref', 'insn_add_off_drefs', @@ -5228,6 +5345,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5428,6 +5551,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -6137,6 +6261,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -6586,6 +6711,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -7059,7 +7185,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -7332,6 +7457,7 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', 'new_call_stack_info_vec_t', 'new_call_stack_info_vec_t__SWIG_0', @@ -7388,6 +7514,10 @@ 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7401,8 +7531,6 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', @@ -7445,6 +7573,7 @@ 'new_dirtree_iterator_t', 'new_dirtree_selection_t', 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', @@ -7552,6 +7681,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_insn_t', 'new_instant_dbgopts_t', 'new_int_pointer', @@ -7660,6 +7793,7 @@ 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', 'new_op_parent_info_t', 'new_op_t', @@ -7668,6 +7802,7 @@ 'new_opinfo_t', 'new_optblock_t', 'new_optinsn_t', + 'new_params_t', 'new_plugin_info_t', 'new_point_t', 'new_point_t__SWIG_0', @@ -7690,10 +7825,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -7753,6 +7884,8 @@ 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7798,13 +7931,12 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7874,8 +8006,9 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', @@ -8019,6 +8152,10 @@ 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', @@ -8077,6 +8214,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -8091,6 +8230,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -8101,8 +8244,12 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', @@ -8276,11 +8423,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -8612,49 +8765,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -9025,6 +9135,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -9655,6 +9767,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -9760,6 +9874,8 @@ 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', @@ -9786,6 +9902,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -9816,6 +9933,7 @@ 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -9954,6 +10072,14 @@ 'step_into', 'step_over', 'step_until_ret', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -10024,15 +10150,22 @@ 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -10043,6 +10176,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -10136,6 +10270,8 @@ 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -10153,6 +10289,8 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', @@ -10424,6 +10562,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -10556,6 +10695,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -10705,6 +10845,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -10716,6 +10860,7 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', 'udc_filter_t_install', 'udc_filter_t_match', @@ -10744,6 +10889,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -10753,6 +10899,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -10766,6 +10913,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -10775,6 +10923,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -10806,46 +10955,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', diff --git a/release_pydoc_injections2.txt b/release_pydoc_injections2.txt index 76611f4..af33755 100644 --- a/release_pydoc_injections2.txt +++ b/release_pydoc_injections2.txt @@ -1,34 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) + auto_apply_tail(tail_ea, parent_ea) Plan to apply the tail_ea chunk to the parent - auto_apply_tail(tail_ea, parent_ea) - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) + auto_apply_type(caller, callee) Plan to apply the callee's type to the calling point. - auto_apply_type(caller, callee) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - auto_cancel(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -52,16 +72,16 @@ class auto_display_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -72,250 +92,255 @@ class auto_display_t(__builtin__.object) Help on function auto_get in module ida_auto: auto_get(*args) - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - auto_get(type, lowEA, highEA) -> ea_t - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) + auto_is_ok() -> bool Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) + auto_make_code(ea) Plan to make code. - auto_make_code(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) + auto_make_proc(ea) Plan to make code&function. - auto_make_proc(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_step in module ida_auto: auto_make_step(*args) + auto_make_step(ea1, ea2) -> bool Analyze one address in the specified range and return true. - auto_make_step(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: if processed anything. false means that there is nothing to - process in the specified range. + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) + auto_mark(ea, type) Put single address into a queue. Queues keep addresses sorted. - auto_mark(ea, type) - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) + auto_recreate_insn(ea) -> int Try to create instruction - auto_recreate_insn(ea) -> int - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) + auto_wait_range(ea1, ea2) -> ssize_t Process everything in the specified range and return true. - auto_wait_range(ea1, ea2) -> ssize_t - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - enable_auto(enable) -> bool - @param enable (C++: bool) - @return: old state + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state Help on function get_auto_display in module ida_auto: get_auto_display(*args) + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - get_auto_display(auto_display) -> bool - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) + is_auto_enabled() -> bool Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - peek_auto_queue(low_ea, type) -> ea_t - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - plan_and_wait(ea1, ea2, final_pass=True) -> int - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - @retval: 1 - ok - @retval: 0 - Ctrl-Break was pressed + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) + plan_ea(ea) Plan to perform reanalysis. - plan_ea(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) + plan_range(sEA, eEA) Plan to perform reanalysis. - plan_range(sEA, eEA) - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - reanalyze_callers(ea, noret) - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) + revert_ida_decisions(ea1, ea2) Delete all analysis info that IDA generated for for the given range. - revert_ida_decisions(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) + set_auto_state(new_state) -> atype_t Set current state of autoanalyzer. - set_auto_state(new_state) -> atype_t - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - show_addr(ea) - @param ea: - linear address to display (C++: ea_t) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) + show_auto(ea, type=AU_NONE) Change autoanalysis indicator value. - show_auto(ea, type=AU_NONE) - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" Help on class bitrange_t in module ida_bitrange: @@ -326,32 +351,39 @@ class bitrange_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __init__(self, *args) | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t - | bit_ofs: uint16 - | size_in_bits: uint16 + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __repr__ = _swig_repr(self) | @@ -359,91 +391,99 @@ class bitrange_t(__builtin__.object) | __str__(self) -> qstring | | apply_mask(self, *args) + | apply_mask(self, subrange) -> bool | Apply mask to a bitrange | - | apply_mask(self, subrange) -> bool - | @param subrange: range inside the main bitrange to keep After this - | operation the main bitrange will be truncated to have - | only the bits that are specified by subrange. - | Example: [off=8,nbits=4], subrange[off=1,nbits=2] => - | [off=9,nbits=2] (C++: const bitrange_t &) - | @return: success + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success | | bitoff(self, *args) + | bitoff(self) -> uint | Get offset of 1st bit. | | bitsize(self, *args) + | bitsize(self) -> uint | Get size of the value in bits. | | bytesize(self, *args) + | bytesize(self) -> uint | Size of the value in bytes. | | compare(self, *args) | compare(self, r) -> int - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | create_union(self, *args) + | create_union(self, r) | Create union of 2 ranges including the hole between them. | - | create_union(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | empty(self, *args) + | empty(self) -> bool | Is the bitrange empty? | | extract(self, *args) | extract(self, src, is_mf) -> bool - | src: void const * - | is_mf: bool + | + | @param src: void const * + | @param is_mf: bool | | has_common(self, *args) + | has_common(self, r) -> bool | Does have common bits with another bitrange? | - | has_common(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | init(self, *args) + | init(self, bit_ofs, size_in_bits) | Initialize offset and size to given values. | - | init(self, bit_ofs, size_in_bits) - | @param bit_ofs (C++: uint16) - | @param size_in_bits (C++: uint16) + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) | | inject(self, *args) | inject(self, dst, src, is_mf) -> bool - | dst: void * - | src: bytevec_t const & - | is_mf: bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool | | intersect(self, *args) + | intersect(self, r) | Intersect two ranges. | - | intersect(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | mask64(self, *args) + | mask64(self) -> uint64 | Convert to mask of 64 bits. | | reset(self, *args) + | reset(self) | Make the bitrange empty. | | shift_down(self, *args) + | shift_down(self, cnt) | Shift range down (left) | - | shift_down(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | shift_up(self, *args) + | shift_up(self, cnt) | Shift range up (right) | - | shift_up(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | sub(self, *args) + | sub(self, r) -> bool | Subtract a bitrange. | - | sub(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -463,6 +503,19 @@ class bitrange_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_bitrange_t> | delete_bitrange_t(self) +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + Help on function __walk_types_and_formats in module ida_bytes: __walk_types_and_formats(formats, type_action, format_action, installing) @@ -471,115 +524,115 @@ __walk_types_and_formats(formats, type_action, format_action, installing) Help on function add_byte in module ida_bytes: add_byte(*args) - Add a value to one byte of the program. This function works for wide - byte processors too. - add_byte(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - add_dword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - add_mapping(_from, to, size) -> bool - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success Help on function add_qword in module ida_bytes: add_qword(*args) - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - add_qword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - add_word(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: align_flag(*args) + align_flag() -> flags_t Get a flags_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - append_cmt(ea, str, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) + attach_custom_data_format(dtid, dfid) -> bool Attach the data format to the data type. - attach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - has already been attached to the data type + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: bin_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + bin_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: @@ -592,149 +645,182 @@ bin_search(*args) @param data: the prepared data to search for (see parse_binpat_str()) @param flags: combination of BIN_SEARCH_* flags @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: byte_flag(*args) + byte_flag() -> flags_t Get a flags_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) + bytesize(ea) -> int Get number of bytes required to store a byte at the given address. - bytesize(ea) -> int - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) + calc_def_align(ea, mina, maxa) -> int Calculate the default alignment exponent. - calc_def_align(ea, mina, maxa) -> int - @param ea: linear address (C++: ea_t) - @param mina: minimal possible alignment exponent. (C++: int) - @param maxa: minimal possible alignment exponent. (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: calc_dflags(*args) calc_dflags(f, force) -> flags_t - @param f (C++: flags_t) - @param force (C++: bool) + + @param f: flags_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) + calc_max_align(endea) -> int Calculate the maximal possible alignment exponent. - calc_max_align(endea) -> int - @param endea: end address of the alignment item. (C++: ea_t) - @return: a value in the 0..32 range + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - calc_max_item_end(ea, how=15) -> ea_t - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) + calc_min_align(length) -> int Calculate the minimal possible alignment exponent. - calc_min_align(length) -> int - @param length: size of the item in bytes. (C++: asize_t) - @return: a value in the 1..32 range + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - can_define_item(ea, length, flags) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @param length: (C++: asize_t) + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function char_flag in module ida_bytes: char_flag(*args) - see 'Bits: instruction operand types' + char_flag() -> flags_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) + chunk_size(ea) -> asize_t Get size of the contiguous address block containing 'ea'. - chunk_size(ea) -> asize_t - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) + chunk_start(ea) -> ea_t Get start of the contiguous address block containing 'ea'. - chunk_start(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) + clr_lzero(ea, n) -> bool Clear lzero bit. - clr_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function clr_op_type in module ida_bytes: clr_op_type(*args) - Remove operand representation information. (set operand representation - to be 'undefined') - clr_op_type(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function code_flag in module ida_bytes: code_flag(*args) - 'FF_CODE' + code_flag() -> flags_t + FF_CODE Help on class compiled_binpat_t in module ida_bytes: @@ -745,14 +831,16 @@ class compiled_binpat_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __init__(self, *args) | __init__(self) -> compiled_binpat_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __repr__ = _swig_repr(self) | @@ -772,16 +860,16 @@ class compiled_binpat_t(__builtin__.object) | list of weak references to the object (if defined) | | bytes - | compiled_binpat_t_bytes_get(self) -> bytevec_t * + | bytes | | encidx - | compiled_binpat_t_encidx_get(self) -> int + | encidx | | mask - | compiled_binpat_t_mask_get(self) -> bytevec_t * + | mask | | strlits - | compiled_binpat_t_strlits_get(self) -> rangevec_t + | strlits | | thisown | The membership flag @@ -801,15 +889,19 @@ class compiled_binpat_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> compiled_binpat_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> compiled_binpat_vec_t - | x: qvector< compiled_binpat_t > const & + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -819,33 +911,39 @@ class compiled_binpat_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: compiled_binpat_t const & + | + | @param i: size_t + | @param v: compiled_binpat_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: compiled_binpat_t const & + | + | Parameters + | ---------- + | x: compiled_binpat_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | at(self, *args) | at(self, _idx) -> compiled_binpat_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> compiled_binpat_t - | begin(self) -> compiled_binpat_t | | capacity(self, *args) | capacity(self) -> size_t @@ -858,78 +956,85 @@ class compiled_binpat_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> compiled_binpat_t - | end(self) -> compiled_binpat_t | | erase(self, *args) | erase(self, it) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator | + | @param it: qvector< compiled_binpat_t >::iterator | | erase(self, first, last) -> compiled_binpat_t - | first: qvector< compiled_binpat_t >::iterator - | last: qvector< compiled_binpat_t >::iterator + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator | | extract(self, *args) | extract(self) -> compiled_binpat_t | | find(self, *args) | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & | - | - | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & + | @param x: compiled_binpat_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=compiled_binpat_t()) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | has(self, *args) | has(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | inject(self, *args) | inject(self, s, len) - | s: compiled_binpat_t * - | len: size_t + | + | @param s: compiled_binpat_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator - | x: compiled_binpat_t const & + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: compiled_binpat_t const & | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< compiled_binpat_t > & + | + | @param r: qvector< compiled_binpat_t > & | | truncate(self, *args) | truncate(self) @@ -955,210 +1060,207 @@ class compiled_binpat_vec_t(__builtin__.object) Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) + create_16bit_data(ea, length) -> bool Convert to 16-bit quantity (take the byte size into account) - create_16bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) + create_32bit_data(ea, length) -> bool Convert to 32-bit quantity (take the byte size into account) - create_32bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) + create_byte(ea, length, force=False) -> bool Convert to byte. - create_byte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module ida_bytes: create_double(*args) + create_double(ea, length, force=False) -> bool Convert to double. - create_double(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) + create_dword(ea, length, force=False) -> bool Convert to dword. - create_dword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) + create_float(ea, length, force=False) -> bool Convert to float. - create_float(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) + create_oword(ea, length, force=False) -> bool Convert to octaword/xmm word. - create_oword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) + create_packed_real(ea, length, force=False) -> bool Convert to packed decimal real. - create_packed_real(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) + create_qword(ea, length, force=False) -> bool Convert to quadword. - create_qword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - create_strlit(start, len, strtype) -> bool - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success Help on function create_struct in module ida_bytes: create_struct(*args) + create_struct(ea, length, tid, force=False) -> bool Convert to struct. - create_struct(ea, length, tid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) + create_tbyte(ea, length, force=False) -> bool Convert to tbyte. - create_tbyte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) + create_word(ea, length, force=False) -> bool Convert to word. - create_word(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) + create_yword(ea, length, force=False) -> bool Convert to ymm word. - create_yword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) + create_zword(ea, length, force=False) -> bool Convert to zmm word. - create_zword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: cust_flag(*args) + cust_flag() -> flags_t Get a flags_t representing custom type data. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) - see 'Bits: instruction operand types' + custfmt_flag() -> flags_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -1171,13 +1273,14 @@ class data_format_t(__builtin__.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | props: int - | hotkey: char const * - | text_width: int32 + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -1185,7 +1288,10 @@ class data_format_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) + | is_present_in_menus(self) -> bool | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1197,28 +1303,28 @@ class data_format_t(__builtin__.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -1237,13 +1343,14 @@ class data_type_t(__builtin__.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | hotkey: char const * - | asm_keyword: char const * - | props: int + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1251,7 +1358,10 @@ class data_type_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) + | is_present_in_menus(self) -> bool | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1263,28 +1373,28 @@ class data_type_t(__builtin__.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -1295,473 +1405,480 @@ class data_type_t(__builtin__.object) Help on function dec_flag in module ida_bytes: dec_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + dec_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_items in module ida_bytes: del_items(*args) - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) + del_mapping(ea) Delete memory mapping range. - del_mapping(ea) - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) - Delete byte value from flags. The corresponding byte becomes - uninitialized. - del_value(ea) - @param ea (C++: ea_t) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - detach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - was not attached to the data type + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - disable_flags(start_ea, end_ea) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: double_flag(*args) + double_flag() -> flags_t Get a flags_t representing a double. Help on function dword_flag in module ida_bytes: dword_flag(*args) + dword_flag() -> flags_t Get a flags_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - enable_flags(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: enum_flag(*args) - see 'Bits: instruction operand types' + enum_flag() -> flags_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - equal_bytes(ea, image, mask, len, sense_case) -> bool - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == nullptr, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - @retval: 1 - equal - @retval: 0 - not equal + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) f_has_cmt(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) - Does the current byte have dummy (auto-generated, with special prefix) - name? - f_has_dummy_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) f_has_extra_cmts(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) + f_has_name(f, arg2) -> bool Does the current byte have non-trivial (non-dummy) name? - f_has_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) + f_has_user_name(F, arg2) -> bool Does the current byte have user-specified name? - f_has_user_name(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) + f_has_xref(f, arg2) -> bool Does the current byte have cross-references to it? - f_has_xref(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) - See 'is_align()' - f_is_align(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_align() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) - See 'is_byte()' - f_is_byte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_byte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) + f_is_code(F, arg2) -> bool Does flag denote start of an instruction? - f_is_code(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) - See 'is_custom()' - f_is_custom(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_custom() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) + f_is_data(F, arg2) -> bool Does flag denote start of data? - f_is_data(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) - See 'is_double()' - f_is_double(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_double() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) - See 'is_dword()' - f_is_dword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_dword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) - See 'is_float()' - f_is_float(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_float() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) + f_is_head(F, arg2) -> bool Does flag denote start of instruction OR data? - f_is_head(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) + f_is_not_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_not_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) - See 'is_oword()' - f_is_oword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_oword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) - See 'is_pack_real()' - f_is_pack_real(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_pack_real() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) - See 'is_qword()' - f_is_qword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_qword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) - See 'is_strlit()' - f_is_strlit(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_strlit() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) - See 'is_struct()' - f_is_struct(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_struct() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) + f_is_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) - See 'is_tbyte()' - f_is_tbyte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_tbyte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) - See 'is_word()' - f_is_word(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_word() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) - See 'is_yword()' - f_is_yword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_yword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - find_byte(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - find_byter(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) + find_custom_data_format(name) -> int Get id of a custom data format. - find_custom_data_format(name) -> int - @param name: name of the custom data format (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data format + @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) + find_custom_data_type(name) -> int Get id of a custom data type. - find_custom_data_type(name) -> int - @param name: name of the custom data type (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data type + @return: id or -1 Help on function float_flag in module ida_bytes: float_flag(*args) + float_flag() -> flags_t Get a flags_t representing a float. Help on function flt_flag in module ida_bytes: flt_flag(*args) - see 'Bits: instruction operand types' + flt_flag() -> flags_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) + free_chunk(bottom, size, step) -> ea_t Search for a hole in the addressing space of the program. - free_chunk(bottom, size, step) -> ea_t - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: (C++: ea_t) address to start searching + @param size: (C++: asize_t) size of desired block + @param step: (C++: int32) bit mask for the start of hole (0xF would align hole to a + paragraph). if 'step' is negative, the bottom address with be + aligned. otherwise the kernel will try to use it as is and align it + only when the hole is too small. + @return: start of the hole or BADADDR Help on function get_16bit in module ida_bytes: get_16bit(*args) + get_16bit(ea) -> uint32 Get 16bits of the program at 'ea'. - get_16bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) + get_32bit(ea) -> uint32 Get not more than 32bits of the program at 'ea'. - get_32bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) + get_64bit(ea) -> uint64 Get not more than 64bits of the program at 'ea'. - get_64bit(ea) -> uint64 - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) get_8bit(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint32 *) - @param nbit (C++: int *) + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - get_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: @@ -1770,455 +1887,454 @@ get_bytes_and_mask(*args) get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. Help on function get_cmt in module ida_bytes: get_cmt(*args) + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) + get_custom_data_format(dfid) -> data_format_t Get definition of a registered custom data format. - get_custom_data_format(dfid) -> data_format_t - @param dfid: data format id (C++: int) - @return: data format definition or nullptr + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) + get_custom_data_formats(out, dtid) -> int Get list of attached custom data formats for the specified data type. - get_custom_data_formats(out, dtid) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) + get_custom_data_type(dtid) -> data_type_t Get definition of a registered custom data type. - get_custom_data_type(dtid) -> data_type_t - @param dtid: data type id (C++: int) - @return: data type definition or nullptr + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int Get list of registered custom data type ids. - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) + get_data_elsize(ea, F, ti=None) -> asize_t Get size of data type specified in flags 'F'. - get_data_elsize(ea, F, ti=None) -> asize_t - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - get_data_value(v, ea, size) -> bool - @param v: pointer to the result. may be nullptr (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) + get_default_radix() -> int Get default base of number for the current processor. + + @return: 2, 8, 10, 16 Help on function get_dword in module ida_bytes: get_dword(*args) - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_dword(ea) -> uint32 - @param ea (C++: ea_t) + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) + get_enum_id(ea, n) -> enum_t Get enum id of 'enum' operand. - get_enum_id(ea, n) -> enum_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) + get_first_hidden_range() -> hidden_range_t Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: get_flags(*args) - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - get_flags(ea) -> flags_t - @param ea (C++: ea_t) + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: get_flags_by_size(*args) - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - get_flags_by_size(size) -> flags_t - @param size (C++: size_t) + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: get_flags_ex(*args) + get_flags_ex(ea, how) -> flags_t Get flags for the specified address, extended form. - get_flags_ex(ea, how) -> flags_t - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - get_full_data_elsize(ea, F, ti=None) -> asize_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: get_full_flags(*args) + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) + get_hidden_range(ea) -> hidden_range_t Get pointer to hidden range structure, in: linear address. - get_hidden_range(ea) -> hidden_range_t - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) + get_hidden_range_num(ea) -> int Get number of a hidden range. - get_hidden_range_num(ea) -> int - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) + get_hidden_range_qty() -> int Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: get_item_flag(*args) - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - get_item_flag(_from, n, ea, appzero) -> flags_t - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - get_item_size(ea) -> asize_t - @param ea (C++: ea_t) + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) + get_last_hidden_range() -> hidden_range_t Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) + get_mapping(n) -> bool Get memory mapping range by its number. - get_mapping(n) -> bool - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) + get_mappings_qty() -> size_t Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) - Determine maximum length of string literal.If the string literal has a - length prefix (e.g., STRTYPE_LEN2 has a two-byte length prefix), the - length of that prefix (i.e., 2) will be part of the returned value. - get_max_strlit_length(ea, strtype, options=0) -> size_t - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) + get_next_hidden_range(ea) -> hidden_range_t Get pointer to next hidden range. - get_next_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - + get_octet(ea, v, nbit) -> (int, int, int, int) + Get 8 bits of the program at 'ea'. The main usage of this function is to iterate + range of bytes. Here is an example: uint64 v; int nbit = 0; for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... + uchar byte = get_octet(&ea, &v, &nbit); + ... } + 'ea' is incremented each time when a new byte is read. In the above example, it + will be incremented in the first loop iteration. - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - get_octet(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ea: (C++: ea_t *) ea_t + @param v: (C++: uint64 *) uint64 + @param nbit: (C++: int *) int Help on function get_opinfo in module ida_bytes: get_opinfo(*args) + get_opinfo(buf, ea, n, flags) -> opinfo_t Get additional information about an operand representation. - get_opinfo(buf, ea, n, flags) -> opinfo_t - @param buf: buffer to receive the result. may not be nullptr (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: nullptr if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: get_optype_flags0(*args) + get_optype_flags0(F) -> flags_t Get flags for first operand. - get_optype_flags0(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) + get_optype_flags1(F) -> flags_t Get flags for second operand. - get_optype_flags1(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - get_original_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - get_original_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - get_original_word(ea) -> uint64 - @param ea (C++: ea_t) + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) + get_predef_insn_cmt(ins) -> str Get predefined comment. - get_predef_insn_cmt(ins) -> str - @param ins: current instruction information - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @return: size of comment or -1 + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) + get_prev_hidden_range(ea) -> hidden_range_t Get pointer to previous hidden range. - get_prev_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if previous hidden range - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - get_radix(F, n) -> int - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, <u>and</u> the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2227,169 +2343,166 @@ get_strlit_contents(*args) Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) + get_stroff_path(path, delta, ea, n) -> int Get struct path of operand. - get_stroff_path(path, delta, ea, n) -> int - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - get_word(ea) -> ushort - @param ea (C++: ea_t) + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - get_zero_ranges(zranges, range) -> bool - @param zranges: pointer to the return value. cannot be nullptr (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be nullptr - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) + getn_hidden_range(n) -> hidden_range_t Get pointer to hidden range structure, in: number of hidden range. - getn_hidden_range(n) -> hidden_range_t - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) + has_any_name(F) -> bool Does the current byte have any name? - has_any_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) + has_auto_name(F) -> bool Does the current byte have auto-generated (no special prefix) name? - has_auto_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) + has_cmt(F) -> bool Does the current byte have an indented comment? - has_cmt(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) - Does the current byte have dummy (auto-generated, with special prefix) - name? - has_dummy_name(F) -> bool - @param F (C++: flags_t) + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) + has_extra_cmts(F) -> bool Does the current byte have additional anterior or posterior lines? - has_extra_cmts(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_immd in module ida_bytes: has_immd(*args) + has_immd(F) -> bool Has immediate value? - has_immd(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_name in module ida_bytes: has_name(*args) + has_name(F) -> bool Does the current byte have non-trivial (non-dummy) name? - has_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) + has_user_name(F) -> bool Does the current byte have user-specified name? - has_user_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_value in module ida_bytes: has_value(*args) + has_value(F) -> bool Do flags contain byte value? - has_value(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_xref in module ida_bytes: has_xref(*args) + has_xref(F) -> bool Does the current byte have cross-references to it? - has_xref(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function hex_flag in module ida_bytes: hex_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + hex_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2412,22 +2525,22 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -2440,66 +2553,72 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2513,1119 +2632,1096 @@ class hidden_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function is_align in module ida_bytes: is_align(*args) - 'FF_ALIGN' - is_align(F) -> bool - @param F (C++: flags_t) + FF_ALIGN + + @param F: (C++: flags_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) + is_attached_custom_data_format(dtid, dfid) -> bool Is the custom data format attached to the custom data type? - is_attached_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id (C++: int) - @param dfid: data format id (C++: int) - @return: true or false + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - is_bnot(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) - 'FF_BYTE' - is_byte(F) -> bool - @param F (C++: flags_t) + FF_BYTE + + @param F: (C++: flags_t) Help on function is_char in module ida_bytes: is_char(*args) + is_char(F, n) -> bool is character constant? - is_char(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) + is_char0(F) -> bool Is the first operand character constant? (example: push 'a') - is_char0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_char1 in module ida_bytes: is_char1(*args) + is_char1(F) -> bool Is the second operand character constant? (example: mov al, 'a') - is_char1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_code in module ida_bytes: is_code(*args) + is_code(F) -> bool Does flag denote start of an instruction? - is_code(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) + is_custfmt(F, n) -> bool is custom data format? - is_custfmt(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) + is_custfmt0(F) -> bool Does the first operand use a custom data representation? - is_custfmt0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) + is_custfmt1(F) -> bool Does the second operand use a custom data representation? - is_custfmt1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) - 'FF_CUSTOM' - is_custom(F) -> bool - @param F (C++: flags_t) + FF_CUSTOM + + @param F: (C++: flags_t) Help on function is_data in module ida_bytes: is_data(*args) + is_data(F) -> bool Does flag denote start of data? - is_data(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) + is_defarg(F, n) -> bool is defined? - is_defarg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) - Is the first operand defined? Initially operand has no defined - representation. - is_defarg0(F) -> bool - @param F (C++: flags_t) + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) - Is the second operand defined? Initially operand has no defined - representation. - is_defarg1(F) -> bool - @param F (C++: flags_t) + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) - 'FF_DOUBLE' - is_double(F) -> bool - @param F (C++: flags_t) + FF_DOUBLE + + @param F: (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) - 'FF_DWORD' - is_dword(F) -> bool - @param F (C++: flags_t) + FF_DWORD + + @param F: (C++: flags_t) Help on function is_enum in module ida_bytes: is_enum(*args) + is_enum(F, n) -> bool is enum? - is_enum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) + is_enum0(F) -> bool Is the first operand a symbolic constant (enum member)? - is_enum0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) + is_enum1(F) -> bool Is the second operand a symbolic constant (enum member)? - is_enum1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) - 'FF_FLOAT' - is_float(F) -> bool - @param F (C++: flags_t) + FF_FLOAT + + @param F: (C++: flags_t) Help on function is_float0 in module ida_bytes: is_float0(*args) + is_float0(F) -> bool Is the first operand a floating point number? - is_float0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float1 in module ida_bytes: is_float1(*args) + is_float1(F) -> bool Is the second operand a floating point number? - is_float1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_flow in module ida_bytes: is_flow(*args) - Does the previous instruction exist and pass execution flow to the - current byte? - is_flow(F) -> bool - @param F (C++: flags_t) + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) + is_fltnum(F, n) -> bool is floating point number? - is_fltnum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) + is_forced_operand(ea, n) -> bool Is operand manually defined?. - is_forced_operand(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) + is_func(F) -> bool Is function start? - is_func(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_head in module ida_bytes: is_head(*args) + is_head(F) -> bool Does flag denote start of instruction OR data? - is_head(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - is_invsign(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) + is_loaded(ea) -> bool Does the specified address have a byte value (is initialized?) - is_loaded(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - is_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Display leading zeroes in operands. The global switch for the leading zeroes is + in idainfo::s_genflags The leading zeroes doesn't work if the octal numbers + start with 0 Display leading zeroes? (takes into account idainfo::s_genflags) + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function is_manual in module ida_bytes: is_manual(*args) - is forced operand? (use 'is_forced_operand()' ) - is_manual(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) + is_manual_insn(ea) -> bool Is the instruction overridden? - is_manual_insn(ea) -> bool - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) + is_mapped(ea) -> bool Is the specified address 'ea' present in the program? - is_mapped(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) + is_not_tail(F) -> bool Does flag denote tail byte? - is_not_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop in module ida_bytes: is_numop(*args) + is_numop(F, n) -> bool is number (bin, oct, dec, hex)? - is_numop(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) + is_numop0(F) -> bool Is the first operand a number (i.e. binary, octal, decimal or hex?) - is_numop0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) + is_numop1(F) -> bool Is the second operand a number (i.e. binary, octal, decimal or hex?) - is_numop1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off in module ida_bytes: is_off(*args) + is_off(F, n) -> bool is offset? - is_off(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) + is_off0(F) -> bool Is the first operand offset? (example: push offset xxx) - is_off0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off1 in module ida_bytes: is_off1(*args) + is_off1(F) -> bool Is the second operand offset? (example: mov ax, offset xxx) - is_off1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) - 'FF_OWORD' - is_oword(F) -> bool - @param F (C++: flags_t) + FF_OWORD + + @param F: (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) - 'FF_PACKREAL' - is_pack_real(F) -> bool - @param F (C++: flags_t) + FF_PACKREAL + + @param F: (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) - 'FF_QWORD' - is_qword(F) -> bool - @param F (C++: flags_t) + FF_QWORD + + @param F: (C++: flags_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) + is_same_data_type(F1, F2) -> bool Do the given flags specify the same data type? - is_same_data_type(F1, F2) -> bool - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags_t) + @param F2: (C++: flags_t) Help on function is_seg in module ida_bytes: is_seg(*args) + is_seg(F, n) -> bool is segment? - is_seg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) + is_seg0(F) -> bool Is the first operand segment selector? (example: push seg seg001) - is_seg0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) + is_seg1(F) -> bool Is the second operand segment selector? (example: mov dx, seg dseg) - is_seg1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) + is_stkvar(F, n) -> bool is stack variable? - is_stkvar(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) + is_stkvar0(F) -> bool Is the first operand a stack variable? - is_stkvar0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) + is_stkvar1(F) -> bool Is the second operand a stack variable? - is_stkvar1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) - 'FF_STRLIT' - is_strlit(F) -> bool - @param F (C++: flags_t) + FF_STRLIT + + @param F: (C++: flags_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) + is_stroff(F, n) -> bool is struct offset? - is_stroff(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) + is_stroff0(F) -> bool Is the first operand an offset within a struct? - is_stroff0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) + is_stroff1(F) -> bool Is the second operand an offset within a struct? - is_stroff1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) - 'FF_STRUCT' - is_struct(F) -> bool - @param F (C++: flags_t) + FF_STRUCT + + @param F: (C++: flags_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) + is_suspop(ea, F, n) -> bool is suspicious operand? - is_suspop(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) + is_tail(F) -> bool Does flag denote tail byte? - is_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) - 'FF_TBYTE' - is_tbyte(F) -> bool - @param F (C++: flags_t) + FF_TBYTE + + @param F: (C++: flags_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) + is_unknown(F) -> bool Does flag denote unexplored byte? - is_unknown(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int Is the item at 'ea' variable size?. - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @param itemsize: if not nullptr and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - @retval: 1 - varsize item - @retval: 0 - fixed item - @retval: -1 - error (bad data definition) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) - 'FF_WORD' - is_word(F) -> bool - @param F (C++: flags_t) + FF_WORD + + @param F: (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) - 'FF_YWORD' - is_yword(F) -> bool - @param F (C++: flags_t) + FF_YWORD + + @param F: (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) - 'FF_ZWORD' - is_zword(F) -> bool - @param F (C++: flags_t) + FF_ZWORD + + @param F: (C++: flags_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) + leading_zero_important(ea, n) -> bool Check if leading zeroes are important. - leading_zero_important(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) + nbits(ea) -> int Get number of bits in a byte at the given address. - nbits(ea) -> int - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) + next_chunk(ea) -> ea_t Get the first address of next contiguous chunk in the program. - next_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) + next_head(ea, maxea) -> ea_t Get start of next defined item. - next_head(ea, maxea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) + next_inited(ea, maxea) -> ea_t Find the next initialized address. - next_inited(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) - next_that(ea, maxea, callable) -> ea_t + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) - Similar to 'next_that()' , but will find the next address that is - unexplored. - next_unknown(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_visea in module ida_bytes: next_visea(*args) + next_visea(ea) -> ea_t Get next visible address. - next_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: num_flag(*args) + num_flag() -> flags_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: oct_flag(*args) - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + oct_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function off_flag in module ida_bytes: off_flag(*args) - see 'Bits: instruction operand types' + off_flag() -> flags_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - op_adds_xrefs(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) + op_custfmt(ea, n, fid) -> bool Set custom data format for operand (fid-custom data format id) - op_custfmt(ea, n, fid) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - op_stroff(insn, n, path, path_len, delta) -> bool - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success Help on function oword_flag in module ida_bytes: oword_flag(*args) + oword_flag() -> flags_t Get a flags_t representing a octaword. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) + packreal_flag() -> flags_t Get a flags_t representing a packed decimal real. Help on function parse_binpat_str in module ida_bytes: parse_binpat_str(*args) - Convert user-specified binary string to internal representation. The - 'in' parameter contains space-separated tokens: - + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: - numbers (numeric base is determined by 'radix') - - if value of number fits a byte, it is considered as a byte - - if value of number fits a word, it is considered as 2 bytes - - if value of number fits a dword,it is considered as 4 bytes + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes - "..." string constants - 'x' single-character constants - ? variable bytes - Note that string constants are surrounded with double quotes.Here are - a few examples (assuming base 16): + Note that string constants are surrounded with double quotes. + Here are a few examples (assuming base 16): CD 21 - bytes 0xCD, 0x21 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) "Hello", 0 - the null terminated string "Hello" L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 - parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str - @param out: a vector of compiled binary patterns, for use with - bin_search2() (C++: compiled_binpat_vec_t *) - @param ea: linear address to convert for (the conversion depends on - the address, because the number of bits in a byte depend on - the segment type) (C++: ea_t) - in: char const * - @param radix: numeric base of numbers (8,10,16) (C++: int) - @param strlits_encoding: the target encoding into which the string - literals present in 'in', should be encoded. - Can be any from [1, get_encoding_qty() ), or - the special values PBSENC_* (C++: int) - @return: false either in case of parsing error, or if at least one - requested target encoding couldn't encode the string literals - present in "in". + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - patch_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) + prev_chunk(ea) -> ea_t Get the last address of previous contiguous chunk in the program. - prev_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) + prev_head(ea, minea) -> ea_t Get start of previous defined item. - prev_head(ea, minea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) + prev_inited(ea, minea) -> ea_t Find the previous initialized address. - prev_inited(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - prev_that(ea, minea, callable) -> ea_t - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - callable: PyObject * - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - prev_unknown(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_visea in module ida_bytes: prev_visea(*args) + prev_visea(ea) -> ea_t Get previous visible address. - prev_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - print_strlit_type(strtype, flags=0) -> PyObject * - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - put_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - put_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - put_dword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - put_qword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - put_word(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint64) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: qword_flag(*args) + qword_flag() -> flags_t Get a flags_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: @@ -3633,9 +3729,9 @@ Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) register_custom_data_format(py_df) -> int Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: @@ -3643,9 +3739,9 @@ Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) register_custom_data_type(py_dt) -> int Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3675,154 +3771,165 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) - Revert patched byte - revert_byte(ea) -> bool - @param ea (C++: ea_t) - @retval: true - byte was patched before and reverted now + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: seg_flag(*args) - see 'Bits: instruction operand types' + seg_flag() -> flags_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function set_immd in module ida_bytes: set_immd(*args) - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - set_immd(ea) -> bool - @param ea (C++: ea_t) + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) + set_lzero(ea, n) -> bool Set toggle lzero bit. - set_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) + set_op_type(ea, type, n) -> bool (internal function) change representation of operand(s). - set_op_type(ea, type, n) -> bool - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @retval: 1 - ok - @retval: 0 - failed (applied to a tail byte) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: stkvar_flag(*args) - see 'Bits: instruction operand types' + stkvar_flag() -> flags_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: strlit_flag(*args) + strlit_flag() -> flags_t Get a flags_t representing a string literal. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) - see 'Bits: instruction operand types' + stroff_flag() -> flags_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: stru_flag(*args) + stru_flag() -> flags_t Get a flags_t representing a struct. Help on function tbyte_flag in module ida_bytes: tbyte_flag(*args) + tbyte_flag() -> flags_t Get a flags_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) - Toggle binary negation of operand. also see 'is_bnot()' - toggle_bnot(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) toggle_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function toggle_sign in module ida_bytes: toggle_sign(*args) - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) unregister_custom_data_format(dfid) -> bool Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -3831,6 +3938,7 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) unregister_custom_data_type(dtid) -> bool Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -3843,30 +3951,31 @@ unregister_data_types_and_formats(formats) Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) - Update hidden range information in the database. You cannot use this - function to change the range boundaries - update_hidden_range(ha) -> bool - @param ha: range to update (C++: const hidden_range_t *) - @return: success + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) + use_mapping(ea) -> ea_t Translate address according to current mappings. - use_mapping(ea) -> ea_t - @param ea: address to translate (C++: ea_t) - @return: translated address + @param ea: (C++: ea_t) address to translate + @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) visit_patched_bytes(ea1, ea2, py_callable) -> int Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -3877,562 +3986,30 @@ visit_patched_bytes(*args) Help on function word_flag in module ida_bytes: word_flag(*args) + word_flag() -> flags_t Get a flags_t representing a word. Help on function yword_flag in module ida_bytes: yword_flag(*args) + yword_flag() -> flags_t Get a flags_t representing a ymm word. Help on function zword_flag in module ida_bytes: zword_flag(*args) + zword_flag() -> flags_t Get a flags_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -if string length is more than 4K, return the accumulated length -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -do not undefine the function start. Just delete xrefs, ops e.t.c. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -don't truncate the current function even if 'AF_TRFUNC' is set -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? -""" - -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" - -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" - -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_STRLIT -""" -string literal -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -try to read all bytes if this bit is not set, fail at first uninited -byte -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -outer offset base (combined with operand number). used only in set, -get, del_offset() functions -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings' window) -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(__builtin__.object) @@ -4444,117 +4021,128 @@ class DBG_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | dbg_bpt(self, *args) + | dbg_bpt(self, tid, bptea) -> int | A user defined breakpoint was reached. | - | dbg_bpt(self, tid, bptea) -> int - | @param tid (C++: thid_t) - | @param bptea (C++: ea_t) + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) + | dbg_bpt_changed(self, bptev_code, bpt) | Breakpoint has been changed. | - | dbg_bpt_changed(self, bptev_code, bpt) - | @param bptev_code: Breakpoint modification events (C++: int) - | @param bpt (C++: bpt_t *) + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exc_code: int - | exc_can_cont: bool - | exc_ea: ea_t - | exc_info: char const * + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) + | dbg_finished_loading_bpts(self) | Finished loading breakpoint info from idb. | | dbg_information(self, *args) | dbg_information(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) | dbg_library_unload(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_detach(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) + | dbg_request_error(self, failed_command, failed_dbg_notification) | An error occurred during the processing of a request. | - | dbg_request_error(self, failed_command, failed_dbg_notification) - | @param failed_command (C++: ui_notification_t) - | @param failed_dbg_notification (C++: dbg_notification_t) + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) | dbg_run_to(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) + | dbg_started_loading_bpts(self) | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) @@ -4567,32 +4155,34 @@ class DBG_Hooks(__builtin__.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) - | The process is now suspended.This event notification is also an - | asynchronous function result notification for 'suspend_process()' ! + | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) | dbg_thread_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) | dbg_thread_start(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) - | A step occurred (one instruction was executed). This event - | notification is only generated if step tracing is enabled. - | | dbg_trace(self, tid, ip) -> int - | @param tid: thread ID (C++: thid_t) - | @param ip: current instruction pointer. usually points after the - | executed instruction (C++: ea_t) - | @retval: 1 - do not log this trace event - | @retval: 0 - log it + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | | hook(self, *args) | hook(self) -> bool @@ -4621,64 +4211,52 @@ class DBG_Hooks(__builtin__.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) add_path_mapping(src, dst) - @param src (C++: const char *) - @param dst (C++: const char *) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) add_virt_module(mod) -> bool - @param mod (C++: const modinfo_t *) + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4689,89 +4267,101 @@ class bpt_location_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) - | Lexically compare two breakpoint locations. Bpt locations are first - | compared based on type (i.e. 'BPLT_ABS' < 'BPLT_REL' ). 'BPLT_ABS' - | locations are compared based on their ea values. For all other - | location types, locations are first compared based on their string - | (path/filename/symbol), then their offset/lineno. - | | compare(self, r) -> int - | @param r (C++: const bpt_location_t &) + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) - | Get address ( 'BPLT_ABS' ) + | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) - | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) - | Get line number ( 'BPLT_SRC' ) + | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) - | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) - | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) + | set_abs_bpt(self, a) | Specify an absolute address location. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) + | set_rel_bpt(self, mod, _offset) | Specify a relative address location. | - | set_rel_bpt(self, mod, _offset) - | @param mod (C++: const char *) - | @param _offset (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) + | set_src_bpt(self, fn, _lineno) | Specify a source level location. | - | set_src_bpt(self, fn, _lineno) - | @param fn (C++: const char *) - | @param _lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) + | set_sym_bpt(self, _symbol, _offset=0) | Specify a symbolic location. | - | set_sym_bpt(self, _symbol, _offset=0) - | @param _symbol (C++: const char *) - | @param _offset (C++: uval_t) + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) - | Get symbol name ( 'BPLT_SYM' ) + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) + | type(self) -> bpt_loctype_t | Get bpt type. | | ---------------------------------------------------------------------- @@ -4784,13 +4374,13 @@ class bpt_location_t(__builtin__.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4814,95 +4404,113 @@ class bpt_t(__builtin__.object) | __repr__ = _swig_repr(self) | | badbpt(self, *args) + | badbpt(self) -> bool | Failed to write bpt to process memory? | | enabled(self, *args) + | enabled(self) -> bool | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) + | get_size(self) -> int | Get bpt size. | | is_absbpt(self, *args) + | is_absbpt(self) -> bool | Is absolute address breakpoint? | | is_active(self, *args) + | is_active(self) -> bool | Written completely to process? | | is_compiled(self, *args) + | is_compiled(self) -> bool | Condition has been compiled? | | is_hwbpt(self, *args) + | is_hwbpt(self) -> bool | Is hardware breakpoint? | | is_inactive(self, *args) + | is_inactive(self) -> bool | Not written to process at all? | | is_low_level(self, *args) + | is_low_level(self) -> bool | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) + | is_page_bpt(self) -> bool | Page breakpoint? | | is_partially_active(self, *args) + | is_partially_active(self) -> bool | Written partially to process? | | is_relbpt(self, *args) + | is_relbpt(self) -> bool | Is relative address breakpoint? | | is_srcbpt(self, *args) + | is_srcbpt(self) -> bool | Is source level breakpoint? | | is_symbpt(self, *args) + | is_symbpt(self) -> bool | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) + | is_tracemodebpt(self) -> bool | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) + | is_traceoffbpt(self) -> bool | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) + | is_traceonbpt(self) -> bool | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) + | listbpt(self) -> bool | Include in the bpt list? | | set_abs_bpt(self, *args) + | set_abs_bpt(self, a) | Set bpt location to an absolute address. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) + | set_rel_bpt(self, mod, o) | Set bpt location to a relative address. | - | set_rel_bpt(self, mod, o) - | @param mod (C++: const char *) - | @param o (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) + | set_src_bpt(self, fn, lineno) | Set bpt location to a source line. | - | set_src_bpt(self, fn, lineno) - | @param fn (C++: const char *) - | @param lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) + | set_sym_bpt(self, sym, o) | Set bpt location to a symbol. | - | set_sym_bpt(self, sym, o) - | @param sym (C++: const char *) - | @param o (C++: uval_t) + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) + | set_trace_action(self, enable, trace_types) -> bool | Configure tracing options. | - | set_trace_action(self, enable, trace_types) -> bool - | @param enable (C++: bool) - | @param trace_types (C++: int) + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4913,47 +4521,50 @@ class bpt_t(__builtin__.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -4970,11 +4581,14 @@ class bpt_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> bpt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | x: qvector< bpt_t > const & + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -4986,19 +4600,20 @@ class bpt_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bpt_t const & + | + | @param i: size_t + | @param v: bpt_t const & | | at(self, *args) | at(self, _idx) -> bpt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) | capacity(self) -> size_t @@ -5011,16 +4626,16 @@ class bpt_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) | erase(self, it) -> bpt_t - | it: qvector< bpt_t >::iterator | + | @param it: qvector< bpt_t >::iterator | | erase(self, first, last) -> bpt_t - | first: qvector< bpt_t >::iterator - | last: qvector< bpt_t >::iterator + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) | extract(self) -> bpt_t @@ -5030,47 +4645,56 @@ class bpt_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=bpt_t()) - | x: bpt_t const & + | + | @param x: bpt_t const & | | inject(self, *args) | inject(self, s, len) - | s: bpt_t * - | len: size_t + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> bpt_t - | it: qvector< bpt_t >::iterator - | x: bpt_t const & + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bpt_t const & + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bpt_t const & | + | @param _newsize: size_t + | @param x: bpt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bpt_t > & + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) | truncate(self) @@ -5093,6 +4717,39 @@ class bpt_vec_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_bpt_vec_t> | delete_bpt_vec_t(self) +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(__builtin__.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_bptaddrs_t> + | delete_bptaddrs_t(self) + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) @@ -5101,158 +4758,163 @@ bring_debugger_to_front(*args) Help on function check_bpt in module ida_dbg: check_bpt(*args) + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) + choose_trace_file() -> str Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) + clear_requests_queue() Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) collect_stack_trace(tid, trace) -> bool - @param tid (C++: thid_t) - @param trace (C++: call_stack_t *) + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * Create a source code view. - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_bpt_tev(tid, ea, bp) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_call_tev(tid, caller, callee) - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_debug_event(event) - @param event (C++: debug_event_t *) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_many_tevs(new_tevs) -> bool - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_ret_tev(tid, ret_insn, return_to) - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_tev(type, tid, address) - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - dbg_add_thread(tid) - @param tid (C++: thid_t) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - @param start_ea (C++: ea_t) - @param end_ea (C++: ea_t) - @param data (C++: const compiled_binpat_vec_t &) - @param srch_flags (C++: int) + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: @@ -5264,77 +4926,82 @@ dbg_can_query(*args) - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_del_thread(tid) - @param tid (C++: thid_t) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) dbg_is_loaded() -> bool Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) del_bptgrp(name) -> bool - @param name (C++: const char *) + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) del_virt_module(base) -> bool - @param base (C++: const ea_t) + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5345,11 +5012,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5375,43 +5043,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) enable_manual_regions(enable) - @param enable (C++: bool) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5422,7 +5107,8 @@ class eval_ctx_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t - | _ea: ea_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5436,7 +5122,7 @@ class eval_ctx_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5450,92 +5136,97 @@ class eval_ctx_t(__builtin__.object) Help on function exist_bpt in module ida_dbg: exist_bpt(*args) + exist_bpt(ea) -> bool Does a breakpoint exist at the given location? - exist_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - find_bpt(bptloc, bpt) -> bool - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_bpt(ea, bpt) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) get_bpt_group(bptloc) -> str - @param bptloc (C++: const bpt_location_t &) + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) - Helper function for 'bpt_location_t' . - get_bptloc_string(i) -> char const * - @param i (C++: int) + + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: @@ -5550,38 +5241,42 @@ get_current_source_line(*args) Help on function get_current_thread in module ida_dbg: get_current_thread(*args) - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: get_dbg_byte(*args) + get_dbg_byte(x, ea) -> bool Get one byte of the debugged process memory. - get_dbg_byte(x, ea) -> bool - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success + @param x: (C++: uint32 *) pointer to byte value + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) get_dbg_memory_info(ranges) -> int - @param ranges (C++: meminfo_vec_t *) + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - get_dbg_reg_info(regname, ri) -> bool - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) + get_debug_event() -> debug_event_t Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5593,263 +5288,281 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) get_first_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) get_global_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) get_grp_bpts(bpts, grp_name) -> ssize_t - @param bpts (C++: bpt_vec_t *) - @param grp_name (C++: const char *) + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param output: bpts : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_mem(n, memmap) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_result(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - get_insn_tev_reg_val(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) get_local_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) get_local_vars(prov, ea, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param out (C++: source_items_t *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) get_manual_regions(ranges) Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) get_module_info(ea, modinfo) -> bool - @param ea (C++: ea_t) - @param modinfo (C++: modinfo_t *) + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) get_next_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: get_process_options(*args) - Get process options. Any of the arguments may be NULL + get_process_options() + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) get_reg_vals(tid, clsmask, values) -> int - @param tid (C++: thid_t) - @param clsmask (C++: int) - @param values (C++: regval_t *) + + @param tid: thid_t + @param clsmask: int + @param values: regval_t * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request Help on function get_running_request in module ida_dbg: get_running_request(*args) - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request Help on function get_sp_val in module ida_dbg: get_sp_val(*args) - Get value of the SP register for the current thread. Requires a - suspended debugger. + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) get_srcinfo_provider(name) -> srcinfo_provider_t * - @param name (C++: const char *) + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - get_tev_event(n, d) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_tev_info(n, tev_info) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) + get_tev_memory_info(n, mi) -> bool Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - get_tev_memory_info(n, mi) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -5871,92 +5584,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace Help on function get_trace_dynamic_register_set in module ida_dbg: get_trace_dynamic_register_set(*args) + get_trace_dynamic_register_set(idaregs) Get dynamic register set of current trace. - get_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t *) + @param idaregs: (C++: dynamic_register_set_t *) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) + get_trace_platform() -> char const * Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - getn_bpt(n, bpt) -> bool - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) + graph_trace() -> bool Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) handle_debug_event(ev, rqflags) -> int - @param ev (C++: const debug_event_t *) - @param rqflags (C++: int) + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -5969,45 +5689,48 @@ internal_get_sreg_base(*args) internal_get_sreg_base(tid, sreg_value) -> ea_t Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) internal_ioctl(fn, buf, poutbuf, poutsize) -> int - @param fn (C++: int) - @param buf (C++: const void *) - @param poutbuf (C++: void **) - @param poutsize (C++: ssize_t *) + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - invalidate_dbg_state(dbginv) -> int - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - invalidate_dbgmem_contents(ea, size) - @param ea (C++: ea_t) - @param size (C++: asize_t) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6017,105 +5740,117 @@ is_bblk_trace_enabled(*args) Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) + is_debugger_memory(ea) -> bool Is the address mapped to debugger memory? - is_debugger_memory(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) + is_debugger_on() -> bool Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) - Get current state of instruction tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - is_reg_custom(regname) -> bool - @param regname (C++: const char *) + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_float(regname) -> bool - @param regname (C++: const char *) + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_integer(regname) -> bool - @param regname (C++: const char *) + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) + is_request_running() -> bool Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) list_bptgrps(bptgrps) -> size_t - @param bptgrps (C++: qstrvec_t *) + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param output: bptgrps list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6145,7 +5880,7 @@ class memreg_info_t(__builtin__.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6165,11 +5900,14 @@ class memreg_infos_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> memreg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | x: qvector< memreg_info_t > const & + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6181,19 +5919,20 @@ class memreg_infos_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: memreg_info_t const & + | + | @param i: size_t + | @param v: memreg_info_t const & | | at(self, *args) | at(self, _idx) -> memreg_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -6206,16 +5945,16 @@ class memreg_infos_t(__builtin__.object) | | end(self, *args) | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) | erase(self, it) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator | + | @param it: qvector< memreg_info_t >::iterator | | erase(self, first, last) -> memreg_info_t - | first: qvector< memreg_info_t >::iterator - | last: qvector< memreg_info_t >::iterator + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) | extract(self) -> memreg_info_t @@ -6225,47 +5964,56 @@ class memreg_infos_t(__builtin__.object) | | grow(self, *args) | grow(self, x=memreg_info_t()) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: memreg_info_t * - | len: size_t + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator - | x: memreg_info_t const & + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: memreg_info_t const & | + | @param _newsize: size_t + | @param x: memreg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< memreg_info_t > & + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) | truncate(self) @@ -6288,94 +6036,109 @@ class memreg_infos_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_memreg_infos_t> | delete_memreg_infos_t(self) -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) - move_bpt_to_grp(bpt, grp_name) - Sets new group for the breakpoint +set_bpt_group(*args) + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) read_dbg_memory(ea, buffer, size) -> ssize_t - @param ea (C++: ea_t) - @param buffer (C++: void *) - @param size (C++: size_t) + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) rename_bptgrp(old_name, new_name) -> bool - @param old_name (C++: const char *) - @param new_name (C++: const char *) + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + Post an add_bpt(const bpt_t &) request. + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t request_add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) - Post an 'attach_process()' request. - request_attach_process(pid, event_id) -> int - @param pid (C++: pid_t) - @param event_id (C++: int) + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) - Post a 'clear_trace()' request. + request_clear_trace() + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) - Post a 'del_bpt(ea_t)' request. - request_del_bpt(ea) -> bool - @param ea (C++: ea_t) + Post a del_bpt(const bpt_location_t &) request. + @param ea: ea_t request_del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) - Post a 'detach_process()' request. + request_detach_process() -> bool + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6386,11 +6149,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) request_disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t request_disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6411,223 +6175,233 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) request_enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) request_enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool request_enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) request_enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) request_enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) request_enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) - Post an 'exit_process()' request. + request_exit_process() -> bool + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) - Post a 'resume_thread()' request. - request_resume_thread(tid) -> int - @param tid (C++: thid_t) + Post a resume_thread() request. + + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) - Post a 'run_to()' request. - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) - Post a 'select_thread()' request. - request_select_thread(tid) -> bool - @param tid (C++: thid_t) + Post a select_thread() request. + + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) - Post a 'set_bblk_trace_options()' request. - request_set_bblk_trace_options(options) - @param options (C++: int) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) - Post a 'set_func_trace_options()' request. - request_set_func_trace_options(options) - @param options (C++: int) + Post a set_func_trace_options() request. + + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) - Post a 'set_insn_trace_options()' request. - request_set_insn_trace_options(options) - @param options (C++: int) + Post a set_insn_trace_options() request. + + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) - Post a 'set_reg_val()' request. - request_set_reg_val(regname, o) -> PyObject * - @param regname (C++: const char *) - o: PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) - Post a 'set_resume_mode()' request. - request_set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) - Post a 'set_step_trace_options()' request. - request_set_step_trace_options(options) - @param options (C++: int) + Post a set_step_trace_options() request. + + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) - Post a 'start_process()' request. - request_start_process(path=None, args=None, sdir=None) -> int - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) - Post a 'step_into()' request. + request_step_into() -> bool + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) - Post a 'step_over()' request. + request_step_over() -> bool + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) - Post a 'step_until_ret()' request. + request_step_until_ret() -> bool + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) - Post a 'suspend_process()' request. + request_suspend_process() -> bool + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) - Post a 'suspend_thread()' request. - request_suspend_thread(tid) -> int - @param tid (C++: thid_t) + Post a suspend_thread() request. + + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6643,214 +6417,205 @@ send_dbg_command(command) Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - set_bblk_trace_options(options) - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) - set_bpt_group(bpt, grp_name) - @param bpt (C++: bpt_t &) - @param grp_name (C++: const char *) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) set_bptloc_group(bptloc, grp_name) -> bool - @param bptloc (C++: const bpt_location_t &) - @param grp_name (C++: const char *) + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) - Helper function for 'bpt_location_t' . - set_bptloc_string(s) -> int - @param s (C++: const char *) + + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_func_trace_options(options) - @param options (C++: int) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) + set_highlight_trace_options(hilight, color, diff) Set highlight trace parameters. - set_highlight_trace_options(hilight, color, diff) - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_insn_trace_options(options) - @param options (C++: int) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) set_manual_regions(ranges) - @param ranges (C++: const meminfo_vec_t *) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - set_process_options(path, args, sdir, host, _pass, port) - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - pass: char const * - @param port (C++: int) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - set_process_state(newstate, p_thid, dbginv) -> int - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - set_reg_val(regname, o) -> PyObject - @param regname (C++: const char *) - o: PyObject * + @param regname: char const * + @param o: PyObject * - set_reg_val(tid, regidx, o) -> PyObject * - tid: thid_t - regidx: int - o: PyObject * + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) - How to resume the application. Set resume mode but do not resume - process. - set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - set_trace_base_address(ea) - @param ea (C++: ea_t) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) Help on function set_trace_dynamic_register_set in module ida_dbg: set_trace_dynamic_register_set(*args) + set_trace_dynamic_register_set(idaregs) Set dynamic register set of current trace. - set_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t &) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) + set_trace_platform(platform) Set platform name of current trace. - set_trace_platform(platform) - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - set_trace_size(size) -> bool - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -6885,74 +6650,79 @@ srcdbg_step_until_ret(*args) Help on function start_process in module ida_dbg: start_process(*args) - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -6976,10 +6746,10 @@ class tev_info_reg_t(__builtin__.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -7012,16 +6782,16 @@ class tev_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -7038,8 +6808,9 @@ class tev_reg_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | _reg_idx: int - | _value: uint64 + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7053,13 +6824,13 @@ class tev_reg_value_t(__builtin__.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -7076,11 +6847,14 @@ class tev_reg_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_reg_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | x: qvector< tev_reg_value_t > const & + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7092,19 +6866,20 @@ class tev_reg_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tev_reg_value_t const & + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | at(self, *args) | at(self, _idx) -> tev_reg_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7117,16 +6892,16 @@ class tev_reg_values_t(__builtin__.object) | | end(self, *args) | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) | erase(self, it) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator | + | @param it: qvector< tev_reg_value_t >::iterator | | erase(self, first, last) -> tev_reg_value_t - | first: qvector< tev_reg_value_t >::iterator - | last: qvector< tev_reg_value_t >::iterator + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) | extract(self) -> tev_reg_value_t @@ -7136,47 +6911,56 @@ class tev_reg_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_reg_value_t()) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & | | inject(self, *args) | inject(self, s, len) - | s: tev_reg_value_t * - | len: size_t + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator - | x: tev_reg_value_t const & + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_reg_value_t const & | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tev_reg_value_t > & + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) | truncate(self) @@ -7208,11 +6992,14 @@ class tevinforeg_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_info_reg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | x: qvector< tev_info_reg_t > const & + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7224,19 +7011,20 @@ class tevinforeg_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tev_info_reg_t const & + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | at(self, *args) | at(self, _idx) -> tev_info_reg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7249,16 +7037,16 @@ class tevinforeg_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) | erase(self, it) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator | + | @param it: qvector< tev_info_reg_t >::iterator | | erase(self, first, last) -> tev_info_reg_t - | first: qvector< tev_info_reg_t >::iterator - | last: qvector< tev_info_reg_t >::iterator + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) | extract(self) -> tev_info_reg_t @@ -7268,47 +7056,56 @@ class tevinforeg_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_info_reg_t()) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & | | inject(self, *args) | inject(self, s, len) - | s: tev_info_reg_t * - | len: size_t + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator - | x: tev_info_reg_t const & + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_info_reg_t const & | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tev_info_reg_t > & + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) | truncate(self) @@ -7334,413 +7131,74 @@ class tevinforeg_vec_t(__builtin__.object) Help on function update_bpt in module ida_dbg: update_bpt(*args) - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - update_bpt(bpt) -> bool - @param bpt (C++: const bpt_t *) + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - @param ea (C++: ea_t) - py_buf: PyObject * - @param size (C++: size_t) + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -fake pending bpt: it is inactive but another bpt of the same type is -active at the same address(es) -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -written to the process as a page bpt. is available only after writing -the bpt to the process. -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -specific options for basic block tracing (see -'set_bblk_trace_options()' ) - -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_FAST_STEP -""" -prevent debugger memory refreshes when single-stepping -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts +Module "ida_dirtree"s docstring: """ +Types involved in grouping of item into folders. -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -specific options for function tracing (see 'set_func_trace_options()' -) - -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -specific options for instruction tracing (see -'set_insn_trace_options()' ) - -instruction tracing will log new instructions even when IP doesn't -change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions (not previously logged) -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -do not wait for any event, immediately return 'DEC_TIMEOUT' (to be -used with 'WFNE_CONT' ) -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -timeout is specified in microseconds (minimum non-zero timeout is -40000us) -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: class direntry_t(__builtin__.object) @@ -7750,20 +7208,24 @@ class direntry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __init__(self, *args) | __init__(self, i=BADIDX, d=False) -> direntry_t - | i: uval_t - | d: bool + | + | @param i: uval_t + | @param d: bool | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __repr__ = _swig_repr(self) | @@ -7780,10 +7242,10 @@ class direntry_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | direntry_t_idx_get(self) -> uval_t + | idx | | isdir - | direntry_t_isdir_get(self) -> bool + | isdir | | thisown | The membership flag @@ -7807,15 +7269,19 @@ class direntry_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> direntry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> direntry_vec_t - | x: qvector< direntry_t > const & + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7825,33 +7291,39 @@ class direntry_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: direntry_t const & + | + | @param i: size_t + | @param v: direntry_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: direntry_t const & + | + | Parameters + | ---------- + | x: direntry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | at(self, *args) | at(self, _idx) -> direntry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> direntry_t - | begin(self) -> direntry_t | | capacity(self, *args) | capacity(self) -> size_t @@ -7864,78 +7336,85 @@ class direntry_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> direntry_t - | end(self) -> direntry_t | | erase(self, *args) | erase(self, it) -> direntry_t - | it: qvector< direntry_t >::iterator | + | @param it: qvector< direntry_t >::iterator | | erase(self, first, last) -> direntry_t - | first: qvector< direntry_t >::iterator - | last: qvector< direntry_t >::iterator + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator | | extract(self, *args) | extract(self) -> direntry_t | | find(self, *args) | find(self, x) -> direntry_t - | x: direntry_t const & | - | - | find(self, x) -> direntry_t - | x: direntry_t const & + | @param x: direntry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=direntry_t()) - | x: direntry_t const & + | + | @param x: direntry_t const & | | has(self, *args) | has(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | inject(self, *args) | inject(self, s, len) - | s: direntry_t * - | len: size_t + | + | @param s: direntry_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> direntry_t - | it: qvector< direntry_t >::iterator - | x: direntry_t const & + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: direntry_t const & + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: direntry_t const & | + | @param _newsize: size_t + | @param x: direntry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< direntry_t > & + | + | @param r: qvector< direntry_t > & | | truncate(self, *args) | truncate(self) @@ -7969,43 +7448,47 @@ class dirspec_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, f=0) -> dirspec_t - | nm: char const * - | f: uint32 + | + | @param nm: char const * + | @param f: uint32 | | __repr__ = _swig_repr(self) | | get_attrs(self, *args) | get_attrs(self, inode) -> qstring - | @param inode (C++: inode_t) + | + | @param inode: inode_t | | get_inode(self, *args) + | get_inode(self, dirpath, name) -> inode_t | get the entry inode in the specified directory | - | get_inode(self, diridx, name) -> inode_t - | @param diridx (C++: diridx_t) - | @param name (C++: const char *) - | @return: the entry inode + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode | | get_name(self, *args) + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool | get the entry name. for example, the structure name | - | get_name(self, inode) -> bool - | @param inode (C++: inode_t) - | @return: false if the entry does not exist. + | @param out: (C++: qstring *) may be nullptr; in this case get_name can be used to validate an + | inode. + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. | | rename_inode(self, *args) + | rename_inode(self, inode, newname) -> bool | rename the entry | - | rename_inode(self, inode, newname) -> bool - | @param inode (C++: inode_t) - | @param newname (C++: const char *) - | @return: success + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success | | unlink_inode(self, *args) - | event: unlinked an inode - | | unlink_inode(self, inode) - | @param inode (C++: inode_t) + | + | @param inode: (C++: inode_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8017,10 +7500,13 @@ class dirspec_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | dirspec_t_flags_get(self) -> uint32 + | flags + | + | id + | id | | nodename - | dirspec_t_nodename_get(self) -> qstring * + | id | | thisown | The membership flag @@ -8044,38 +7530,46 @@ class dirtree_cursor_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __init__(self, *args) | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t - | _parent: diridx_t - | _rank: size_t + | + | @param _parent: diridx_t + | @param _rank: size_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | is_root_cursor(self, *args) | is_root_cursor(self) -> bool @@ -8102,10 +7596,10 @@ class dirtree_cursor_t(__builtin__.object) | list of weak references to the object (if defined) | | parent - | dirtree_cursor_t_parent_get(self) -> diridx_t + | parent | | rank - | dirtree_cursor_t_rank_get(self) -> size_t + | rank | | thisown | The membership flag @@ -8130,15 +7624,19 @@ class dirtree_cursor_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> dirtree_cursor_vec_t - | x: qvector< dirtree_cursor_t > const & + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8148,33 +7646,39 @@ class dirtree_cursor_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) | capacity(self) -> size_t @@ -8187,78 +7691,85 @@ class dirtree_cursor_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) | extract(self) -> dirtree_cursor_t | | find(self, *args) | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) | truncate(self) @@ -8303,10 +7814,10 @@ class dirtree_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | cursor - | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | cursor | | pattern - | dirtree_iterator_t_pattern_get(self) -> qstring * + | pattern | | thisown | The membership flag @@ -8351,11 +7862,13 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8365,31 +7878,37 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) | capacity(self) -> size_t @@ -8402,78 +7921,85 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | end(self, *args) | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) | extract(self) -> dirtree_cursor_t | | find(self, *args) | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) | truncate(self) @@ -8496,208 +8022,241 @@ class dirtree_t(__builtin__.object) | | __init__(self, *args) | __init__(self, ds) -> dirtree_t - | ds: dirspec_t * + | + | @param ds: dirspec_t * | | __repr__ = _swig_repr(self) | | change_rank(self, *args) - | Change ordering rank of an item.All subdirectories go before all file - | entries. - | | change_rank(self, path, rank_delta) -> dterr_t - | @param path: path to the item (C++: const char *) - | @param rank_delta (C++: ssize_t) - | @return: dterr_t error code + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param delta: the amount of the change. positive numbers mean to move down in + | the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. | | chdir(self, *args) + | chdir(self, path) -> dterr_t | Change current directory | - | chdir(self, path) -> dterr_t - | @param path: new current directory (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param directory: entry + | @return: cursor corresponding to the directory entry | | findfirst(self, *args) + | findfirst(self, ff, pattern) -> bool | Start iterating over files in a directory | - | findfirst(self, ff, pattern) -> bool - | @param ff: directory iterator. it will be initialized by the function - | (C++: dirtree_iterator_t *) - | @param pattern: pattern to search for (C++: const char *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success | | findnext(self, *args) + | findnext(self, ff) -> bool | Continue iterating over files in a directory | - | findnext(self, ff) -> bool - | @param ff: directory iterator (C++: dirtree_iterator_t *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success | | get_abspath(self, *args) - | Get absolute path pointed by the cursorsee also 'resolve_cursor()' - | | get_abspath(self, cursor) -> qstring - | @param cursor (C++: const dirtree_cursor_t &) - | @return: path. empty path means wrong directory part of RELPATH + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. | + | @param cursor: dirtree_cursor_t const & | + | @return: path. empty path means wrong directory part of RELPATH | get_abspath(self, relpath) -> qstring - | relpath: char const * - | @return: path. empty path means wrong directory part of RELPATH + | + | @param relpath: char const * | | get_dir_size(self, *args) + | get_dir_size(self, diridx) -> ssize_t | Get dir size | - | get_dir_size(self, diridx) -> ssize_t - | @param diridx: directory index (C++: diridx_t) - | @return: number of entries under this directory; if error, return -1 + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 | | get_entry_attrs(self, *args) + | get_entry_attrs(self, de) -> qstring | Get entry attributes | - | get_entry_attrs(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @return: name | | get_entry_name(self, *args) + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring | Get entry name | - | get_entry_name(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name | - | get_nodename(self, *args) + | get_id(self, *args) + | get_id(self) -> char const * | netnode name | + | get_nodename = get_id(self, *args) + | | get_parent_cursor(self, *args) + | get_parent_cursor(self, cursor) -> dirtree_cursor_t | Get parent cursor. | - | get_parent_cursor(self, cursor) -> dirtree_cursor_t - | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) - | @return: cursor's parent + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent | | get_rank(self, *args) + | get_rank(self, diridx, de) -> ssize_t | Get ordering rank of an item. | - | get_rank(self, diridx, de) -> ssize_t - | @param diridx: index of the parent directory (C++: diridx_t) - | @param de: directory entry (C++: const direntry_t &) - | @return: number in a range of [0..n) where n is the number of entries - | in the parent directory. -1 if error + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error | | getcwd(self, *args) + | getcwd(self) -> qstring | Get current directory + | + | @return: the current working directory | | isdir(self, *args) - | Is a directory? - | | isdir(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a directory | + | @param de: direntry_t const & | | isdir(self, path) -> bool - | path: char const * - | @return: true if the specified path is a directory + | + | @param path: char const * | | isfile(self, *args) - | Is a file? - | | isfile(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a file | + | @param de: direntry_t const & | | isfile(self, path) -> bool - | path: char const * - | @return: true if the specified path is a file + | + | @param path: char const * | | link(self, *args) - | Add a file item into a directory. - | | link(self, path) -> dterr_t - | @param path: path to item to add to a directory (C++: const char *) - | @return: dterr_t error code + | Add an inode into the current directory | + | @param path: char const * | + | @return: dterr_t error code | link(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | load(self, *args) - | Load the tree structure from the netnode. If dirspec_t::nodename is - | empty, the operation will be considered a success. In addition, - | calling 'load()' more than once will not do anything, and will be - | considered a success.dirspec_t::nodename. + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. | | mkdir(self, *args) + | mkdir(self, path) -> dterr_t | Create a directory. | - | mkdir(self, path) -> dterr_t - | @param path: directory to create (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code | | notify_dirtree(self, *args) + | notify_dirtree(self, added, inode) | Notify dirtree about a change of an inode. | - | notify_dirtree(self, added, inode) - | @param added (C++: bool) - | @param inode: inode in question (C++: inode_t) + | @param add: are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question | | rename(self, *args) - | Rename a directory entry.This function can also rename the item - | | rename(self, _from, to) -> dterr_t - | @param _from: source path (C++: const char *) - | @param to: destination path (C++: const char *) - | @return: dterr_t error code + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item | | resolve_cursor(self, *args) - | Resolve cursorsee also 'get_abspath()' - | | resolve_cursor(self, cursor) -> direntry_t - | @param cursor: to analyze (C++: const dirtree_cursor_t &) - | @return: directory entry; if the cursor is bad, the resolved entry - | will be invalid. + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() | | resolve_path(self, *args) + | resolve_path(self, path) -> direntry_t | Resolve path | - | resolve_path(self, path) -> direntry_t - | @param path: to analyze (C++: const char *) - | @return: directory entry + | @param path: (C++: const char *) to analyze + | @return: directory entry | | rmdir(self, *args) + | rmdir(self, path) -> dterr_t | Remove a directory. | - | rmdir(self, path) -> dterr_t - | @param path: directory to delete (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code | | save(self, *args) - | Save the tree structure to the netnode.dirspec_t::nodename. + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. | - | set_nodename(self, *args) - | set_nodename(self, nm) - | @param nm (C++: const char *) + | set_id(self, *args) + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) + | + | traverse(self, *args) + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned | | unlink(self, *args) - | Remove a file item from a directory. - | | unlink(self, path) -> dterr_t - | @param path: path to item remove from a directory (C++: const char *) - | @return: dterr_t error code + | Remove an inode from the current directory | + | @param path: char const * | + | @return: dterr_t error code | unlink(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | ---------------------------------------------------------------------- | Static methods defined here: | | errstr(*args) | errstr(err) -> char const * - | err: enum dterr_t + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8721,21 +8280,76 @@ Help on function dirtree_t_errstr in module ida_dirtree: dirtree_t_errstr(*args) dirtree_t_errstr(err) -> char const * - err: enum dterr_t + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(__builtin__.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | visit(self, *args) + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_dirtree_visitor_t> + | delete_dirtree_visitor_t(self) Help on function get_std_dirtree in module ida_dirtree: get_std_dirtree(*args) get_std_dirtree(id) -> dirtree_t - @param id (C++: dirtree_id_t) + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" Help on function choose_ioport_device2 in module ida_diskio: choose_ioport_device2(*args) choose_ioport_device2(_device, file, parse_params) -> bool - @param _device (C++: qstring *) - @param file (C++: const char *) - @param parse_params (C++: choose_ioport_parser_t *) + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * Help on class choose_ioport_parser_t in module ida_diskio: @@ -8748,17 +8362,19 @@ class choose_ioport_parser_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> choose_ioport_parser_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | parse(self, *args) | parse(self, param, line) -> bool - | @param param (C++: qstring *) - | @param line (C++: const char *) - | @retval: true - and fill PARAM with a displayed string - | @retval: false - and empty PARAM to skip the current device - | @retval: false - and fill PARAM with an error message + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8781,69 +8397,70 @@ class choose_ioport_parser_t(__builtin__.object) Help on function close_linput in module ida_diskio: close_linput(*args) + close_linput(li) Close loader input. - close_linput(li) - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) + create_bytearray_linput(s) -> linput_t * Trivial memory linput. - create_bytearray_linput(s) -> linput_t * - s: qstring const & + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) + create_generic_linput(gl) -> linput_t * Create a generic linput - create_generic_linput(gl) -> linput_t * - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - create_memory_linput(start, size) -> linput_t * - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) eclose(fp) - @param fp (C++: FILE *) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) enumerate_files(path, fname, callback) -> PyObject * Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero Help on function enumerate_files2 in module ida_diskio: enumerate_files2(*args) enumerate_files2(answer, answer_size, path, fname, fv) -> int - @param answer (C++: char *) - @param answer_size (C++: size_t) - @param path (C++: const char *) - @param fname (C++: const char *) - @param fv (C++: file_enumerator_t &) + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & Help on class file_enumerator_t in module ida_diskio: @@ -8856,13 +8473,15 @@ class file_enumerator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> file_enumerator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_file(self, *args) | visit_file(self, file) -> int - | @param file (C++: const char *) + | + | @param file: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8885,58 +8504,58 @@ class file_enumerator_t(__builtin__.object) Help on function fopenA in module ida_diskio: fopenA(*args) + fopenA(file) -> FILE * Open a file for append in text mode, deny none. - fopenA(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) + fopenM(file) -> FILE * Open a file for read/write in binary mode, deny write. - fopenM(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) + fopenRB(file) -> FILE * Open a file for read in binary mode, deny none. - fopenRB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) + fopenRT(file) -> FILE * Open a file for read in text mode, deny none. - fopenRT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - fopenWB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - fopenWT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8951,9 +8570,10 @@ class generic_linput_t(__builtin__.object) | | read(self, *args) | read(self, off, buffer, nbytes) -> ssize_t - | @param off (C++: qoff64_t) - | @param buffer (C++: void *) - | @param nbytes (C++: size_t) + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8965,10 +8585,10 @@ class generic_linput_t(__builtin__.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8982,64 +8602,64 @@ class generic_linput_t(__builtin__.object) Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - get_ida_subdirs(subdir, flags=0) -> int - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) + get_linput_type(li) -> linput_type_t Get linput type. - get_linput_type(li) -> linput_type_t - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - get_special_folder(csidl) -> str - @param csidl (C++: int) + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) + get_user_idadir() -> char const * Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - getsysfile(filename, subdir) -> str - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - idadir(subdir) -> char const * - @param subdir (C++: const char *) + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * Help on class ioports_fallback_t in module ida_diskio: @@ -9052,14 +8672,16 @@ class ioports_fallback_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ioports_fallback_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | handle(self, *args) | handle(self, ports, line) -> bool - | @param ports (C++: const ioports_t &) - | @param line (C++: const char *) + | + | @param ports: ioports_t const & + | @param line: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9082,190 +8704,174 @@ class ioports_fallback_t(__builtin__.object) Help on function open_linput in module ida_diskio: open_linput(*args) + open_linput(file, remote) -> linput_t * Open loader input. - open_linput(file, remote) -> linput_t * - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - qlgetz(li, fpos) -> str - @param li (C++: linput_t *) - @param fpos (C++: int64) + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) Help on function read_ioports2 in module ida_diskio: read_ioports2(*args) read_ioports2(ports, device, file, callback=None) -> ssize_t - @param ports (C++: ioports_t *) - @param device (C++: qstring *) - @param file (C++: const char *) - @param callback (C++: ioports_fallback_t *) + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) + get_entry_forwarder(ord) -> str Get forwarder name for the entry point by its ordinal. - get_entry_forwarder(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) + get_entry_qty() -> size_t Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) + set_entry_forwarder(ord, name, flags=0) -> bool Set forwarder name for ordinal. - set_entry_forwarder(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix. See also AEF_IDBENC -""" +Enums and bitfields are represented as enum_t.""" -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - add_enum(idx, name, flag) -> enum_t - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int Add member to enum type. - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) + del_enum_member(id, value, serial, bmask) -> bool Delete member of enum type. - del_enum_member(id, value, serial, bmask) -> bool - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -9278,17 +8884,18 @@ class enum_member_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_enum_member(self, *args) + | visit_enum_member(self, cid, value) -> int | Implements action to take when enum member is visited. | - | visit_enum_member(self, cid, value) -> int - | @param cid (C++: const_t) - | @param value (C++: uval_t) - | @return: nonzero to stop the iteration + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9311,489 +8918,472 @@ class enum_member_visitor_t(__builtin__.object) Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) + for_all_enum_members(id, cv) -> int Visit all members of a given enum. - for_all_enum_members(id, cv) -> int - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) get_bmask_cmt(id, bmask, repeatable) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) get_bmask_name(id, bmask) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - get_enum_member(id, value, serial, mask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) + get_enum_member_cmt(id, repeatable) -> str Get enum member's comment. - get_enum_member_cmt(id, repeatable) -> str - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) + get_enum_member_name(id) -> str Get name of an enum member by const_t. - get_enum_member_name(id) -> str - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) + get_enum_member_serial(cid) -> uchar Get serial number of an enum member. - get_enum_member_serial(cid) -> uchar - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) + get_enum_name2(id, flags=0) -> str Get name of enum - get_enum_name2(id, flags=0) -> str - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) + get_enum_type_ordinal(id) -> int32 Get corresponding type ordinal number. - get_enum_type_ordinal(id) -> int32 - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) get_first_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) get_last_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) + is_enum_fromtil(id) -> bool Does enum come from type library? - is_enum_fromtil(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) + is_enum_hidden(id) -> bool Is enum collapsed? - is_enum_hidden(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) + is_ghost_enum(id) -> bool Is a ghost copy of a local type? - is_ghost_enum(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) + is_one_bit_mask(mask) -> bool Is bitmask one bit? - is_one_bit_mask(mask) -> bool - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) set_bmask_name(id, bmask, name) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param name (C++: const char *) + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) + set_enum_fromtil(id, fromtil) -> bool Specify that enum comes from a type library. - set_enum_fromtil(id, fromtil) -> bool - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) + set_enum_ghost(id, ghost) -> bool Specify that enum is a ghost copy of a local type. - set_enum_ghost(id, ghost) -> bool - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) + set_enum_hidden(id, hidden) -> bool Collapse enum. - set_enum_hidden(id, hidden) -> bool - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) + set_enum_type_ordinal(id, ord) Set corresponding type ordinal number. - set_enum_type_ordinal(id, ord) - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(__builtin__.object) @@ -9819,284 +9409,283 @@ class _IdcFunction(__builtin__.object) Help on function add_idc_class in module ida_expr: add_idc_class(*args) + add_idc_class(name, super=None) -> idc_class_t * Create a new IDC class. - add_idc_class(name, super=None) -> idc_class_t * - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: add_idc_func(name, fp, args, defvals=(), flags=0) Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param defvals: default argument values (optional) - @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) + add_idc_gvar(name) -> idc_value_t Add global IDC variable. - add_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) compile_idc_file(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str Compile text with IDC statements. - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - @retval: true - ok - @retval: false - error, see errbuf + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) compile_idc_text(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) + copy_idcv(dst, src) -> error_t Copy 'src' to 'dst'. For idc objects only a reference is copied. - copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) - Create a variable reference. Currently only references to global - variables can be created. - create_idcv_ref(ref, v) -> bool - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - deep_copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean + Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) + del_idcv_attr(obj, attr) -> error_t Delete an object attribute. - del_idcv_attr(obj, attr) -> error_t - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) - Dereference a 'VT_REF' variable. - deref_idcv(v, vref_flags) -> idc_value_t - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) + eval_expr(rv, where, line) -> str Compile and calculate an expression. - eval_expr(rv, where, line) -> str - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - @retval: true - ok - @retval: false - error, see errbuf + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - eval_idc_expr(rv, where, line) -> str - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - line: char const * + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) + exec_idc_script(result, path, func, args, argsnum) -> str Compile and execute IDC function(s) from file. - exec_idc_script(result, path, func, args, argsnum) -> str - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - @retval: true - ok - @retval: false - error, see errbuf + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) + exec_system_script(file, complain_if_no_file=True) -> bool Compile and execute "main" function from system file. - exec_system_script(file, complain_if_no_file=True) -> bool - @param file: file name with IDC function(s). The file will be searched - using get_idc_filename() . (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - @retval: 1 - ok, file is compiled and executed - @retval: 0 - failure, compilation or execution error, warning is - displayed + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) + find_idc_class(name) -> idc_class_t * Find an existing IDC class by its name. - find_idc_class(name) -> idc_class_t * - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) find_idc_func(prefix, n=0) -> str - @param prefix (C++: const char *) - @param n (C++: int) + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) + find_idc_gvar(name) -> idc_value_t Find an existing global IDC variable by its name. - find_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) first_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - free_idcv(v) - @param v (C++: idc_value_t *) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and system directories. - get_idc_filename(file) -> str - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t Get an object attribute. - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) + get_idcv_class_name(obj) -> str Retrieves the IDC object class name. - get_idcv_class_name(obj) -> str - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t Get slice. - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -10109,7 +9698,8 @@ class highlighter_cbs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -10121,13 +9711,15 @@ class highlighter_cbs_t(__builtin__.object) | | set_block_state(self, *args) | set_block_state(self, arg0) - | arg0: int32 + | + | @param arg0: int32 | | set_style(self, *args) | set_style(self, arg0, arg1, arg2) - | arg0: int32 - | arg1: int32 - | arg2: enum syntax_highlight_style + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10156,7 +9748,9 @@ class idc_global_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | n: char const * + | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -10170,13 +9764,13 @@ class idc_global_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -10193,15 +9787,16 @@ class idc_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t - | n: sval_t | + | @param n: sval_t | | __init__(self, r) -> idc_value_t - | r: idc_value_t const & | + | @param r: idc_value_t const & | | __init__(self, _str) -> idc_value_t - | _str: char const * + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -10209,60 +9804,72 @@ class idc_value_t(__builtin__.object) | _create_empty_string(self) | | c_str(self, *args) - | 'VT_STR' + | c_str(self) -> char const * + | VT_STR | | clear(self, *args) - | See 'free_idcv()' + | clear(self) + | See free_idcv() | | create_empty_string(self, *args) | create_empty_string(self) | | is_convertible(self, *args) - | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and - | 'VT_STR' . + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) + | is_integral(self) -> bool | Does value represent a whole number? | | is_zero(self, *args) + | is_zero(self) -> bool | Does value represent the integer 0? | | qstr(self, *args) - | 'VT_STR' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & | | set_float(self, *args) | set_float(self, f) - | f: fpvalue_t const & + | + | @param f: fpvalue_t const & | | set_int64(self, *args) | set_int64(self, v) - | v: int64 + | + | @param v: int64 | | set_long(self, *args) | set_long(self, v) - | v: sval_t + | + | @param v: sval_t | | set_pvoid(self, *args) | set_pvoid(self, p) - | p: void * + | + | @param p: void * | | set_string(self, *args) | set_string(self, _str, len) - | _str: char const * - | len: size_t | + | @param _str: char const * + | @param len: size_t | | set_string(self, _str) - | _str: char const * + | + | @param _str: char const * | | swap(self, *args) + | swap(self, v) | Set this = r and v = this. | - | swap(self, v) - | @param v (C++: idc_value_t &) + | @param v: (C++: idc_value_t &) | | u_str(self, *args) - | 'VT_STR' + | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10274,25 +9881,25 @@ class idc_value_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | idc_value_t_e_get(self) -> fpvalue_t + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -10300,7 +9907,7 @@ class idc_value_t(__builtin__.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -10317,11 +9924,14 @@ class idc_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> idc_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | x: qvector< idc_value_t > const & + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -10333,19 +9943,20 @@ class idc_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: idc_value_t const & + | + | @param i: size_t + | @param v: idc_value_t const & | | at(self, *args) | at(self, _idx) -> idc_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) | capacity(self) -> size_t @@ -10358,16 +9969,16 @@ class idc_values_t(__builtin__.object) | | end(self, *args) | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) | erase(self, it) -> idc_value_t - | it: qvector< idc_value_t >::iterator | + | @param it: qvector< idc_value_t >::iterator | | erase(self, first, last) -> idc_value_t - | first: qvector< idc_value_t >::iterator - | last: qvector< idc_value_t >::iterator + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) | extract(self) -> idc_value_t @@ -10377,47 +9988,56 @@ class idc_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=idc_value_t()) - | x: idc_value_t const & + | + | @param x: idc_value_t const & | | inject(self, *args) | inject(self, s, len) - | s: idc_value_t * - | len: size_t + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> idc_value_t - | it: qvector< idc_value_t >::iterator - | x: idc_value_t const & + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: idc_value_t const & + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: idc_value_t const & | + | @param _newsize: size_t + | @param x: idc_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< idc_value_t > & + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) | truncate(self) @@ -10443,111 +10063,113 @@ class idc_values_t(__builtin__.object) Help on function idcv_float in module ida_expr: idcv_float(*args) + idcv_float(v) -> error_t Convert IDC variable to a floating point. - idcv_float(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) + idcv_int64(v) -> error_t Convert IDC variable to a 64bit number. - idcv_int64(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) + idcv_long(v) -> error_t Convert IDC variable to a long (32/64bit) number. - idcv_long(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) + idcv_num(v) -> error_t Convert IDC variable to a long number. - idcv_num(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) + idcv_object(v, icls=None) -> error_t Create an IDC object. The original value of 'v' is discarded (freed). - idcv_object(v, icls=None) -> error_t - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) + idcv_string(v) -> error_t Convert IDC variable to a text string. - idcv_string(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) last_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - move_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) next_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) prev_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) - Get text representation of 'idc_value_t' . - print_idcv(v, name=None, indent=0) -> str - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - name: char const * - fp_ptr: size_t - args: char const * - defvals: idc_values_t const & - flags: int + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -10558,222 +10180,135 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) pyw_convert_defvals(out, py_seq) -> bool - out: idc_values_t * - py_seq: PyObject * + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) pyw_register_idc_func(name, args, py_fp) -> size_t - name: char const * - args: char const * - py_fp: PyObject * + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) pyw_unregister_idc_func(ctxptr) -> bool - ctxptr: size_t + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - set_header_path(path, add) -> bool - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - @retval: true - success - @retval: false - no memory + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t Set an object attribute. - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t Set slice. - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - in: idc_value_t const & - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) + swap_idcvs(v1, v2) Swap 2 variables. - swap_idcvs(v1, v2) - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - throw_idc_exception(r, desc) -> error_t - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - calc_fixup_size(type) -> int - @param type (C++: fixup_type_t) - @retval: -1 - means error + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) + contains_fixups(ea, size) -> bool Does the specified address range contain any fixup information? - contains_fixups(ea, size) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) + exists_fixup(source) -> bool Check that a fixup exists at the given address. - exists_fixup(source) -> bool - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) + find_custom_fixup(name) -> fixup_type_t Get id of a custom fixup handler. - find_custom_fixup(name) -> fixup_type_t - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10784,13 +10319,16 @@ class fixup_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | type_: fixup_type_t - | flags_: uint32 + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | | calc_size(self, *args) - | 'calc_fixup_size()' + | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) | clr_extdef(self) @@ -10799,41 +10337,48 @@ class fixup_data_t(__builtin__.object) | clr_unused(self) | | get(self, *args) - | 'get_fixup()' - | | get(self, source) -> bool - | @param source (C++: ea_t) + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) - | Get base of fixup.The target is calculated as 'get_base()' + off. - | 'get_base()' + off 'FIXUPF_REL' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) - | 'get_fixup_desc()' - | | get_desc(self, source) -> char const * - | @param source (C++: ea_t) + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) - | Fixup flags 'Fixup flags' . + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) - | 'get_fixup_handler()' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) - | Fixup type 'Types of fixups' . + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) - | 'get_fixup_value()' - | | get_value(self, ea) -> uval_t - | @param ea (C++: ea_t) + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) + | has_base(self) -> bool | Is fixup relative? | | is_custom(self, *args) - | 'is_fixup_custom()' + | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) | is_extdef(self) -> bool @@ -10842,48 +10387,52 @@ class fixup_data_t(__builtin__.object) | is_unused(self) -> bool | | patch_value(self, *args) - | 'patch_fixup_value()' - | | patch_value(self, ea) -> bool - | @param ea (C++: ea_t) + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) - | 'set_fixup()' - | | set(self, source) - | @param source (C++: ea_t) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) - | Set base of fixup. The target should be set before a call of this - | function. - | | set_base(self, new_base) - | @param new_base (C++: ea_t) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) | set_extdef(self) | | set_sel(self, *args) | set_sel(self, seg) - | @param seg (C++: const segment_t *) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) - | Set selector of fixup to the target. The target should be set before a - | call of this function. + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) | set_type(self, type_) - | @param type_ (C++: fixup_type_t) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) | set_type_and_flags(self, type_, flags_=0) - | @param type_ (C++: fixup_type_t) - | @param flags_ (C++: uint32) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) | set_unused(self) | | was_created(self, *args) + | was_created(self) -> bool | Is fixup artificial? | | ---------------------------------------------------------------------- @@ -10896,13 +10445,13 @@ class fixup_data_t(__builtin__.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10935,10 +10484,10 @@ class fixup_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10952,203 +10501,192 @@ class fixup_info_t(__builtin__.object) Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - gen_fix_fixups(_from, to, size) - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) + get_first_fixup_ea() -> ea_t Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR Help on function get_fixup in module ida_fixup: get_fixup(*args) + get_fixup(fd, source) -> bool Get fixup information. - get_fixup(fd, source) -> bool - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) + get_fixup_desc(source, fd) -> str Get FIXUP description comment. - get_fixup_desc(source, fd) -> str - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) + get_fixup_handler(type) -> fixup_handler_t const * Get handler of standard or custom fixup. - get_fixup_handler(type) -> fixup_handler_t const * - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - get_fixup_value(ea, type) -> uval_t - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - @retval: operand - value + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) get_fixups(out, ea, size) -> bool - @param out (C++: fixups_t *) - @param ea (C++: ea_t) - @param size (C++: asize_t) + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function handle_fixups_in_macro in module ida_fixup: handle_fixups_in_macro(*args) - Handle two fixups in a macro. We often combine two instruction that - load parts of a value into one macro instruction. For example: ARM: - ADRP X0, #var@PAGE ADD X0, X0, #var@PAGEOFF --> ADRL X0, var MIPS: lui - $v0, hi(var) addiu $v0, $v0, lo(var) --> la $v0, var When applying the - fixups that fall inside such a macro, we should convert them to one - refinfo. This function does exactly that. It should be called from the + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the apply() callback of a custom fixup. - handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param other (C++: fixup_type_t) - @param macro_reft_and_flags (C++: uint32) - @return: success ('false' means that RI was not changed) + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) + is_fixup_custom(type) -> bool Is fixup processed by processor module? - is_fixup_custom(type) -> bool - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - patch_fixup_value(ea, fd) -> bool - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - @retval: false - the fixup bytes do not fit (e.g. fd->off is greater - than 0xFFFFFFC for BRANCH26). The database is changed - even in this case. + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - set_fixup(source, fd) - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(__builtin__.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | Closes the file + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | | close(self, *args) | close(self) + | Closes the file | | filename(self, *args) | filename(self) -> PyObject * | | flush(self, *args) | flush(self) -> int - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_char(self, *args) | get_char(self) -> PyObject * @@ -11159,6 +10697,8 @@ class qfile_t(__builtin__.object) | gets(self, *args) | gets(self, size) -> PyObject * | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) | open(self, filename, mode) -> bool @@ -11174,23 +10714,33 @@ class qfile_t(__builtin__.object) | | put_char(self, *args) | put_char(self, chr) -> int - | chr: char + | + | @param chr: char | | puts(self, *args) | puts(self, str) -> int - | str: char const * + | + | @param str: char const * | | read(self, *args) | read(self, size) -> PyObject * | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) | seek(self, offset, whence=SEEK_SET) -> int | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) @@ -11203,21 +10753,28 @@ class qfile_t(__builtin__.object) | write(self, *args) | write(self, py_buf) -> int | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) | writebytes(self, py_buf, big_endian) -> int | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) | from_capsule(pycapsule) -> qfile_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> qfile_t - | fp: FILE * + | + | @param fp: FILE * | | tmpfile(*args) | tmpfile() -> qfile_t @@ -11230,7 +10787,7 @@ class qfile_t(__builtin__.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -11248,390 +10805,401 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) qfile_t_from_capsule(pycapsule) -> qfile_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) qfile_t_from_fp(fp) -> qfile_t - fp: FILE * + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) + add_auto_stkpnt(pfn, ea, delta) -> bool Add automatic SP register change point. - add_auto_stkpnt(pfn, ea, delta) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function add_frame in module ida_frame: add_frame(*args) + add_frame(pfn, frsize, frregs, argsize) -> bool Add function frame. - add_frame(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - @retval: 1 - ok - @retval: 0 - failed (no function, frame already exists) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int Define a register variable. - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) + build_stkvar_name(pfn, v) -> str Build automatic stack variable name. - build_stkvar_name(pfn, v) -> str - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - build_stkvar_xrefs(out, pfn, mptr) - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t Calculate offset of stack variable in the frame structure. - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool Define/redefine a stack variable. - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success Help on function del_frame in module ida_frame: del_frame(*args) + del_frame(pfn) -> bool Delete a function frame. - del_frame(pfn) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) + del_regvar(pfn, ea1, ea2, canon) -> int Delete a register variable definition. - del_regvar(pfn, ea1, ea2, canon) -> int - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) + del_stkpnt(pfn, ea) -> bool Delete SP register change point. - del_stkpnt(pfn, ea) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) delete_unreferenced_stkvars(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) delete_wrong_stkvar_ops(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + Find a register variable definition. + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - @param pfn: function in question (C++: func_t *) - ea: ea_t - @param canon: name of a general register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) + frame_off_args(pfn) -> ea_t Get starting address of arguments section. - frame_off_args(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) + frame_off_lvars(pfn) -> ea_t Get start address of local variables section. - frame_off_lvars(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) + frame_off_retaddr(pfn) -> ea_t Get starting address of return address section. - frame_off_retaddr(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) + frame_off_savregs(pfn) -> ea_t Get starting address of saved registers section. - frame_off_savregs(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function free_regvar in module ida_frame: free_regvar(*args) free_regvar(v) - @param v (C++: struct regvar_t *) + + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - get_effective_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) + get_frame(pfn) -> struc_t Get pointer to function frame. - get_frame(pfn) -> struc_t - @param pfn: pointer to function structure (C++: const func_t *) - + @param pfn: func_t const * get_frame(ea) -> struc_t * - ea: ea_t + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) + get_frame_part(range, pfn, part) Get offsets of the frame part in the frame. - get_frame_part(range, pfn, part) - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) + get_frame_retsize(pfn) -> int Get size of function return address. - get_frame_retsize(pfn) -> int - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - get_frame_size(pfn) -> asize_t - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - get_func_by_frame(frame_id) -> ea_t - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) get_min_spd_ea(pfn) -> ea_t - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) + get_sp_delta(pfn, ea) -> sval_t Get modification of SP made at the specified location - get_sp_delta(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) + get_spd(pfn, ea) -> sval_t Get difference between the initial and current values of ESP. - get_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) - get_stkvar(insn, op, v) -> PyObject * + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable Help on function has_regvar in module ida_frame: has_regvar(*args) + has_regvar(pfn, ea) -> bool Is there a register variable definition? - has_regvar(pfn, ea) -> bool - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) is_funcarg_off(pfn, frameoff) -> bool - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) lvar_off(pfn, frameoff) -> sval_t - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -11647,28 +11215,31 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t - | r: regvar_t const & + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: regvar_t &) + | + | @param r: regvar_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -11681,66 +11252,72 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11754,77 +11331,74 @@ class regvar_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function rename_regvar in module ida_frame: rename_regvar(*args) + rename_regvar(pfn, v, user) -> int Rename a register variable. - rename_regvar(pfn, v, user) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - set_frame_size(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success Help on function set_purged in module ida_frame: set_purged(*args) - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - set_purged(ea, nbytes, override_old_value) -> bool - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) + set_regvar_cmt(pfn, v, cmt) -> int Set comment for a register variable. - set_regvar_cmt(pfn, v, cmt) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - soff_to_fpoff(pfn, soff) -> sval_t - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11835,36 +11409,43 @@ class stkpnt_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11876,10 +11457,10 @@ class stkpnt_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11899,36 +11480,43 @@ class stkpnts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11951,13 +11539,12 @@ class stkpnts_t(__builtin__.object) Help on function update_fpd in module ida_frame: update_fpd(*args) + update_fpd(pfn, fpd) -> bool Update frame pointer delta. - update_fpd(pfn, fpd) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11968,36 +11555,43 @@ class xreflist_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12009,16 +11603,16 @@ class xreflist_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -12035,15 +11629,19 @@ class xreflist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> xreflist_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | x: qvector< xreflist_entry_t > const & + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12053,33 +11651,39 @@ class xreflist_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: xreflist_entry_t const & + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: xreflist_entry_t const & + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | at(self, *args) | at(self, _idx) -> xreflist_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) | capacity(self) -> size_t @@ -12092,78 +11696,85 @@ class xreflist_t(__builtin__.object) | | end(self, *args) | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) | erase(self, it) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator | + | @param it: qvector< xreflist_entry_t >::iterator | | erase(self, first, last) -> xreflist_entry_t - | first: qvector< xreflist_entry_t >::iterator - | last: qvector< xreflist_entry_t >::iterator + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) | extract(self) -> xreflist_entry_t | | find(self, *args) | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & | - | - | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=xreflist_entry_t()) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | has(self, *args) | has(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | inject(self, *args) | inject(self, s, len) - | s: xreflist_entry_t * - | len: size_t + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator - | x: xreflist_entry_t const & + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: xreflist_entry_t const & | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< xreflist_entry_t > & + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) | truncate(self) @@ -12186,155 +11797,144 @@ class xreflist_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_xreflist_t> | delete_xreflist_t(self) -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - add_func_ex(pfn) -> bool - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) add_regarg(pfn, reg, tif, name) - @param pfn (C++: func_t *) - @param reg (C++: int) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - append_func_tail(pfn, ea1, ea2) -> bool - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) + apply_idasgn_to(signame, ea, is_startup) -> int Apply a signature file to the specified address. - apply_idasgn_to(signame, ea, is_startup) -> int - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) + apply_startup_sig(ea, startup) -> bool Apply a startup signature file to the specified address. - apply_startup_sig(ea, startup) -> bool - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) - Calculate function size. This function takes into account all - fragments of the function. - calc_func_size(pfn) -> asize_t - @param pfn: ptr to function structure (C++: func_t *) + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) + calc_idasgn_state(n) -> int Get state of a signature in the list of planned signatures - calc_idasgn_state(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t Calculate target of a thunk function. - calc_thunk_func_target(pfn) -> ea_t - @param pfn: pointer to function (may not be nullptr) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) + del_idasgn(n) -> int Remove signature from the list of planned signatures. - del_idasgn(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED Help on class dyn_ea_array in module ida_funcs: @@ -12345,12 +11945,14 @@ class dyn_ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_ea_array - | _data: unsigned-ea-like-numeric-type *↗ - | _count: size_t + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12362,8 +11964,9 @@ class dyn_ea_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12375,10 +11978,10 @@ class dyn_ea_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_ea_array_count_get(self) -> size_t + | count | | data - | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | data | | thisown | The membership flag @@ -12398,12 +12001,14 @@ class dyn_range_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_range_array - | _data: range_t * - | _count: size_t + | + | @param _data: range_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12415,8 +12020,9 @@ class dyn_range_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12428,10 +12034,10 @@ class dyn_range_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_range_array_count_get(self) -> size_t + | count | | data - | dyn_range_array_data_get(self) -> range_t + | data | | thisown | The membership flag @@ -12451,12 +12057,14 @@ class dyn_regarg_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regarg_array - | _data: regarg_t * - | _count: size_t + | + | @param _data: regarg_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12468,8 +12076,9 @@ class dyn_regarg_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regarg_t const & + | + | @param i: size_t + | @param v: regarg_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12481,10 +12090,10 @@ class dyn_regarg_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_regarg_array_count_get(self) -> size_t + | count | | data - | dyn_regarg_array_data_get(self) -> regarg_t + | data | | thisown | The membership flag @@ -12504,12 +12113,14 @@ class dyn_regvar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regvar_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regvar_array - | _data: regvar_t * - | _count: size_t + | + | @param _data: regvar_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12521,8 +12132,9 @@ class dyn_regvar_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regvar_t const & + | + | @param i: size_t + | @param v: regvar_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12534,10 +12146,10 @@ class dyn_regvar_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_regvar_array_count_get(self) -> size_t + | count | | data - | dyn_regvar_array_data_get(self) -> regvar_t * + | data | | thisown | The membership flag @@ -12557,12 +12169,14 @@ class dyn_stkpnt_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> stkpnt_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_stkpnt_array - | _data: stkpnt_t * - | _count: size_t + | + | @param _data: stkpnt_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12574,8 +12188,9 @@ class dyn_stkpnt_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: stkpnt_t const & + | + | @param i: size_t + | @param v: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12587,10 +12202,10 @@ class dyn_stkpnt_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_stkpnt_array_count_get(self) -> size_t + | count | | data - | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | data | | thisown | The membership flag @@ -12604,52 +12219,51 @@ class dyn_stkpnt_array(__builtin__.object) Help on function f_any in module ida_funcs: f_any(*args) + f_any(arg1, arg2) -> bool Helper function to accept any address. - f_any(arg1, arg2) -> bool - arg1: flags_t - arg2: void * + @param arg1: flags_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - find_func_bounds(nfn, flags) -> int - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes Help on function free_regarg in module ida_funcs: free_regarg(*args) free_regarg(v) - @param v (C++: struct regarg_t *) + + @param v: regarg_t * Help on function func_contains in module ida_funcs: func_contains(*args) + func_contains(pfn, ea) -> bool Does the given function contain the given address? - func_contains(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - func_does_return(callee) -> bool - @param callee (C++: ea_t) + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -12660,34 +12274,54 @@ class func_item_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | pfn: func_t * - | _ea: ea_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) | __next__(self, func) -> bool - | func: testf_t * + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) | decode_preceding_insn(self, visited, p_farref, out) -> bool - | @param visited (C++: eavec_t *) - | @param p_farref (C++: bool *) - | @param out (C++: insn_t *) + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) | decode_prev_insn(self, out) -> bool - | @param out (C++: insn_t *) + | + | @param out: insn_t * | | first(self, *args) | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) | last(self) -> bool | @@ -12708,9 +12342,13 @@ class func_item_iterator_t(__builtin__.object) | next_not_tail(self, *args) | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) | prev(self, func) -> bool - | @param func (C++: testf_t *) + | + | @param func: testf_t * | | prev_addr(self, *args) | prev_addr(self) -> bool @@ -12728,19 +12366,28 @@ class func_item_iterator_t(__builtin__.object) | prev_not_tail(self) -> bool | | set(self, *args) - | Set a function range. if pfn == nullptr then a segment range will be - | set. - | | set(self, pfn, _ea=BADADDR) -> bool - | @param pfn (C++: func_t *) - | @param _ea (C++: ea_t) + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) + | set_range(self, ea1, ea2) -> bool | Set an arbitrary range. | - | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12764,8 +12411,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) func_parent_iterator_set(fpi, pfn) -> bool - fpi: func_parent_iterator_t * - pfn: func_t * + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -12776,7 +12424,12 @@ class func_parent_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | _fnt: func_t * + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) | __next__(self) -> bool @@ -12799,11 +12452,13 @@ class func_parent_iterator_t(__builtin__.object) | | reset_fnt(self, *args) | reset_fnt(self, _fnt) - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | set(self, *args) | set(self, _fnt) -> bool - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12852,53 +12507,61 @@ class func_t(ida_range.range_t) | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t - | start: ea_t - | end: ea_t - | f: flags_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | analyzed_sp(self, *args) + | analyzed_sp(self) -> bool | Has SP-analysis been performed? | | does_return(self, *args) + | does_return(self) -> bool | Does function return? | | is_far(self, *args) + | is_far(self) -> bool | Is a far function? | | need_prolog_analysis(self, *args) + | need_prolog_analysis(self) -> bool | Needs prolog analysis? | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points | __get_points__(self) -> dyn_stkpnt_array @@ -12907,22 +12570,22 @@ class func_t(ida_range.range_t) | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails | __get_tails__(self) -> dyn_range_array @@ -12941,66 +12604,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13014,33 +12683,36 @@ class func_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) func_t__from_ptrval__(ptrval) -> func_t - ptrval: size_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) func_tail_iterator_set(fti, pfn, ea) -> bool - fti: func_tail_iterator_t * - pfn: func_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) func_tail_iterator_set_ea(fti, ea) -> bool - fti: func_tail_iterator_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -13051,8 +12723,13 @@ class func_tail_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | _pfn: func_t * - | ea: ea_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) | __next__(self) -> bool @@ -13078,17 +12755,20 @@ class func_tail_iterator_t(__builtin__.object) | | set(self, *args) | set(self, _pfn, ea=BADADDR) -> bool - | @param _pfn (C++: func_t *) - | @param ea (C++: ea_t) + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) | set_ea(self, ea) -> bool - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_range(self, *args) | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13111,140 +12791,145 @@ class func_tail_iterator_t(__builtin__.object) Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) + get_current_idasgn() -> int Get number of the the current signature. + + @return: 0..n-1 Help on function get_fchunk in module ida_funcs: get_fchunk(*args) + get_fchunk(ea) -> func_t Get pointer to function chunk structure by address. - get_fchunk(ea) -> func_t - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) - Get ordinal number of a function chunk in the global list of function - chunks. - get_fchunk_num(ea) -> int - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) + get_fchunk_qty() -> size_t Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) + get_func(ea) -> func_t Get pointer to function structure by address. - get_func(ea) -> func_t - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) + get_func_bitness(pfn) -> int Get function bitness (which is equal to the function segment bitness). pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - get_func_bitness(pfn) -> int - @param pfn (C++: const func_t *) - @retval: 0 - 16 - @retval: 1 - 32 - @retval: 2 - 64 + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) + get_func_bits(pfn) -> int Get number of bits in the function addressing. - get_func_bits(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) + get_func_bytes(pfn) -> int Get number of bytes in the function addressing. - get_func_bytes(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) - Get the containing tail chunk of 'ea'. - get_func_chunknum(pfn, ea) -> int - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - @retval: -1 - means 'does not contain ea' - @retval: 0 - means the 'pfn' itself contains ea - @retval: >0 - the number of the containing function tail chunk + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) + get_func_cmt(pfn, repeatable) -> str Get function comment. - get_func_cmt(pfn, repeatable) -> str - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) + get_func_name(ea) -> str Get function name. - get_func_name(ea) -> str - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + @param ea: (C++: ea_t) any address in the function + @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) + get_func_num(ea) -> int Get ordinal number of a function. - get_func_num(ea) -> int - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) + get_func_qty() -> size_t Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) + get_func_ranges(ranges, pfn) -> ea_t Get function ranges. - get_func_ranges(ranges, pfn) -> ea_t - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) - get_idasgn_desc(n) -> PyObject * + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -13256,7 +12941,7 @@ get_idasgn_desc(*args) Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) - get_idasgn_desc_with_matches(n) -> PyObject * + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -13266,140 +12951,141 @@ get_idasgn_desc_with_matches(*args) Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) - Get number of signatures in the list of planned and applied - signatures. + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) + get_idasgn_title(name) -> str Get full description of the signature by its short name. - get_idasgn_title(name) -> str - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) + get_next_fchunk(ea) -> func_t Get pointer to the next function chunk in the global list. - get_next_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if next function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) + get_next_func(ea) -> func_t Get pointer to the next function. - get_next_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) get_next_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) + get_prev_fchunk(ea) -> func_t Get pointer to the previous function chunk in the global list. - get_prev_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) + get_prev_func(ea) -> func_t Get pointer to the previous function. - get_prev_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) get_prev_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) + getn_fchunk(n) -> func_t Get pointer to function chunk structure by number. - getn_fchunk(n) -> func_t - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) + getn_func(n) -> func_t Get pointer to function structure by number. - getn_func(n) -> func_t - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - is_finally_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) + is_func_entry(pfn) -> bool Does function describe a function entry chunk? - is_func_entry(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) + is_func_locked(pfn) -> bool Is the function pointer locked? - is_func_locked(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) + is_func_tail(pfn) -> bool Does function describe a function tail chunk? - is_func_tail(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) + is_same_func(ea1, ea2) -> bool Do two addresses belong to the same function? - is_same_func(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) + is_visible_func(pfn) -> bool Is the function visible (not hidden)? - is_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -13410,7 +13096,8 @@ class lock_func(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func - | _pfn: func_t const * + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -13435,55 +13122,52 @@ class lock_func(__builtin__.object) Help on function lock_func_range in module ida_funcs: lock_func_range(*args) - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_func_range(pfn, lock) - @param pfn (C++: const func_t *) - @param lock (C++: bool) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) read_regargs(pfn) - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - reanalyze_noret_flag(ea) -> bool - @param ea (C++: ea_t) + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -13494,13 +13178,16 @@ class regarg_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> regarg_t - | r: regarg_t const & + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: regarg_t &) + | + | @param r: regarg_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13512,16 +13199,16 @@ class regarg_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -13532,306 +13219,115 @@ class regarg_t(__builtin__.object) Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - remove_func_tail(pfn, tail_ea) -> bool - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) + @param tail_ea: (C++: ea_t) Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) + set_func_cmt(pfn, cmt, repeatable) -> bool Set function comment. This function works with function chunks too. - set_func_cmt(pfn, cmt, repeatable) -> bool - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) - Give a meaningful name to function if it consists of only 'jump' - instruction. - set_func_name_if_jumpfunc(pfn, oldname) -> int - @param pfn: pointer to function (may be nullptr) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass nullptr. (C++: const char - *) - @return: success + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) + set_func_start(ea, newstart) -> int Move function chunk start address. - set_func_start(ea, newstart) -> int - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - set_noret_insn(insn_ea, noret) -> bool - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - set_tail_owner(fnt, func_start) -> bool - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + Set a function as the possessing function of a function tail. The function + should already refer to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) + @param func_start: (C++: ea_t) Help on function set_visible_func in module ida_funcs: set_visible_func(*args) + set_visible_func(pfn, visible) Set visibility of function. - set_visible_func(pfn, visible) - @param pfn (C++: func_t *) - @param visible (C++: bool) + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - try_to_add_libfunc(ea) -> int - @param ea: any address in the program (C++: ea_t) - @return: Library function codes + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - update_func(pfn) -> bool - @param pfn: ptr to function structure (C++: func_t *) - @return: success + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -function exists already. its bounds are returned in 'nfn'. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -do not modify incoming function boundaries, just create instructions -inside the boundaries. -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -function has instructions that pass execution flow to unexplored -bytes. nfn->end_ea will have the address of the unexplored byte. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -Function changes SP in untraceable way, for example: and esp, -0FFFFFFF0h -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -Function 'non-return' analysis must be performed. This flag is -verified upon 'func_does_return()' -""" - -ida_funcs.FUNC_PROLOG_OK -""" -Prolog analysis has be performed by last SP-analysis -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -User has specified far-ness of the function -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(__builtin__.object) @@ -13913,7 +13409,8 @@ class cancellable_graph_t(gdl_graph_t) | | __init__(self, *args) | __init__(self) -> cancellable_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -13921,7 +13418,7 @@ class cancellable_graph_t(gdl_graph_t) | Data descriptors defined here: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | thisown | The membership flag @@ -13940,9 +13437,10 @@ class cancellable_graph_t(gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -13955,7 +13453,8 @@ class cancellable_graph_t(gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -13965,65 +13464,77 @@ class cancellable_graph_t(gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14037,13 +13548,14 @@ class cancellable_graph_t(gdl_graph_t) Help on function display_gdl in module ida_gdl: display_gdl(*args) - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - display_gdl(fname) -> int - @param fname (C++: const char *) - @return: error code from os, 0 if ok + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok Help on class gdl_graph_t in module ida_gdl: @@ -14056,7 +13568,8 @@ class gdl_graph_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14065,9 +13578,10 @@ class gdl_graph_t(__builtin__.object) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -14080,7 +13594,8 @@ class gdl_graph_t(__builtin__.object) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -14090,65 +13605,77 @@ class gdl_graph_t(__builtin__.object) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14171,84 +13698,81 @@ class gdl_graph_t(__builtin__.object) Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool Build and display a complex xref graph. - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool Build and display a flow graph. - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) + gen_gdl(g, fname) Create GDL file for graph. - gen_gdl(g, fname) - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) + gen_simple_call_chart(filename, wait, title, gflags) -> bool Build and display a simple function call graph. - gen_simple_call_chart(filename, wait, title, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) + is_noret_block(btype) -> bool Does this block never return? - is_noret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) + is_ret_block(btype) -> bool Does this block return? - is_ret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -14259,16 +13783,19 @@ class node_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator - | _g: gdl_graph_t const * - | n: int + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -14327,66 +13854,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -14400,12 +13933,12 @@ class qbasic_block_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class qflow_chart_t in module ida_gdl: @@ -14422,73 +13955,86 @@ class qflow_chart_t(cancellable_graph_t) | | __getitem__(self, *args) | __getitem__(self, n) -> qbasic_block_t - | n: int + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | _title: char const * - | _pfn: func_t * - | _ea1: ea_t - | _ea2: ea_t - | _flags: int + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | | append_to_flowchart(self, *args) | append_to_flowchart(self, ea1, ea2) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) | calc_block_type(self, blknum) -> fc_block_type_t - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | create(self, *args) | create(self, _title, _pfn, _ea1, _ea2, _flags) - | @param _title (C++: const char *) - | @param _pfn (C++: func_t *) - | @param _ea1 (C++: ea_t) - | @param _ea2 (C++: ea_t) - | @param _flags (C++: int) | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | create(self, _title, ranges, _flags) - | @param _title (C++: const char *) - | ranges: rangevec_t const & - | @param _flags (C++: int) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | is_noret_block(self, *args) | is_noret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | is_ret_block(self, *args) | is_ret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_names(self, *args) | print_names(self) -> bool | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) | refresh(self) @@ -14498,29 +14044,30 @@ class qflow_chart_t(cancellable_graph_t) | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bounds - | qflow_chart_t_bounds_get(self) -> range_t + | bounds | | flags - | qflow_chart_t_flags_get(self) -> int + | flags | | nproper - | qflow_chart_t_nproper_get(self) -> int + | nproper | | pfn - | qflow_chart_t_pfn_get(self) -> func_t * + | pfn | | thisown | The membership flag | | title - | qflow_chart_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14537,7 +14084,7 @@ class qflow_chart_t(cancellable_graph_t) | Data descriptors inherited from cancellable_graph_t: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | ---------------------------------------------------------------------- | Methods inherited from gdl_graph_t: @@ -14547,9 +14094,10 @@ class qflow_chart_t(cancellable_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -14562,7 +14110,8 @@ class qflow_chart_t(cancellable_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -14572,35 +14121,41 @@ class qflow_chart_t(cancellable_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14611,101 +14166,10 @@ class qflow_chart_t(cancellable_graph_t) | __weakref__ | list of weak references to the object (if defined) -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CALL_ENDS -""" -call instructions terminate basic blocks -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_NOPREDS -""" -do not compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -14909,10 +14373,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -14941,33 +14405,39 @@ class TPointDouble(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | a: double - | b: double + | __init__(self, a, b) -> TPointDouble | + | @param a: double + | @param b: double | | __init__(self, r) -> TPointDouble - | r: point_t const & + | + | @param r: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14982,10 +14452,10 @@ class TPointDouble(__builtin__.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15009,58 +14479,64 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | create_circle_layout(self, *args) | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) | create_tree_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | thisown | The membership flag | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15076,9 +14552,10 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -15091,7 +14568,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -15101,65 +14579,77 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -15173,88 +14663,86 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) Help on function calc_dist in module ida_graph: calc_dist(*args) + calc_dist(p, q) -> double Calculate distance between p and q. - calc_dist(p, q) -> double - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) + clr_node_info(gid, node, flags) Clear node info for the given node. - clr_node_info(gid, node, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) - Create a graph for the function that contains 'ea'. - create_disasm_graph(ea) -> mutable_graph_t - @param ea (C++: ea_t) + Create a graph using an arbitrary set of ranges. + @param ea: ea_t create_disasm_graph(ranges) -> mutable_graph_t - ranges: rangevec_t const & + + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * Create a custom graph viewer. - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) + @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) + create_mutable_graph(id) -> mutable_graph_t Create a new empty graph with given id. - create_mutable_graph(id) -> mutable_graph_t - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - create_user_graph_place(node, lnnum) -> user_graph_place_t - @param node (C++: int) - @param lnnum (C++: int) + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) - Delete the 'node_info_t' for the given node. - del_node_info(gid, node) - @param gid (C++: graph_id_t) - @param node (C++: int) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - delete_mutable_graph(g) - @param g (C++: mutable_graph_t *) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -15281,22 +14769,22 @@ class edge_info_t(__builtin__.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15328,7 +14816,7 @@ class edge_infos_wrapper_t(__builtin__.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -15342,26 +14830,31 @@ class edge_layout_point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | r: edge_layout_point_t const & + | __init__(self, r) -> edge_layout_point_t | + | @param r: edge_layout_point_t const & | | __init__(self, _e, _pidx) -> edge_layout_point_t - | _e: edge_t const & - | _pidx: int + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | @param r (C++: const edge_layout_point_t &) + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15373,10 +14866,10 @@ class edge_layout_point_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -15399,7 +14892,8 @@ class edge_segment_t(__builtin__.object) | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: edge_segment_t const & + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -15419,19 +14913,19 @@ class edge_segment_t(__builtin__.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15448,20 +14942,25 @@ class edge_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | x: int - | y: int + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) | __lt__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __ne__(self, *args) | __ne__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -15475,10 +14974,10 @@ class edge_t(__builtin__.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -15492,29 +14991,29 @@ class edge_t(__builtin__.object) Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) + get_graph_viewer(parent) -> graph_viewer_t * Get custom graph viewer for given form. - get_graph_viewer(parent) -> graph_viewer_t * - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) + get_node_info(out, gid, node) -> bool Get node info. - get_node_info(out, gid, node) -> bool - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) + get_viewer_graph(gv) -> mutable_graph_t Get graph object for given custom graph viewer. - get_viewer_graph(gv) -> mutable_graph_t - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -15544,25 +15043,25 @@ class graph_item_t(__builtin__.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15581,37 +15080,39 @@ class graph_node_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | is_forbidden_edge(self, *args) + | is_forbidden_edge(self, arg0, arg1) -> bool | Should the edge between 'n' and 'm' be ignored? | - | is_forbidden_edge(self, arg0, arg1) -> bool - | arg0: int - | arg1: int + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) + | is_visited(self, n) -> bool | Have we already visited the given node? | - | is_visited(self, n) -> bool - | @param n (C++: int) + | @param n: (C++: int) | | reinit(self, *args) + | reinit(self) | Reset visited nodes. | | set_visited(self, *args) + | set_visited(self, n) | Mark node as visited. | - | set_visited(self, n) - | @param n (C++: int) + | @param n: (C++: int) | | visit_node(self, *args) + | visit_node(self, arg0) -> int | Implements action to take when a node is visited. | - | visit_node(self, arg0) -> int - | arg0: int + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15642,17 +15143,20 @@ class graph_path_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | walk_backward(self, *args) | walk_backward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | walk_forward(self, *args) | walk_forward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15664,10 +15168,10 @@ class graph_path_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -15689,19 +15193,22 @@ class graph_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_edge(self, *args) | visit_edge(self, arg2, arg3) -> int - | arg2: edge_t - | arg3: edge_info_t * + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) | visit_node(self, arg2, arg3) -> int - | arg2: int - | arg3: rect_t & + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15743,10 +15250,10 @@ class group_crinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -15766,44 +15273,52 @@ class interval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | y0: int - | y1: int + | __init__(self, y0, y1) -> interval_t | + | @param y0: int + | @param y1: int | | __init__(self, s) -> interval_t - | s: edge_segment_t const & + | + | @param s: edge_segment_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | | contains(self, *args) | contains(self, x) -> bool - | @param x (C++: int) + | + | @param x: int | | empty(self, *args) | empty(self) -> bool | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | length(self, *args) | length(self) -> int | | make_union(self, *args) | make_union(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | move_by(self, *args) | move_by(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15818,10 +15333,10 @@ class interval_t(__builtin__.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15848,266 +15363,317 @@ class mutable_graph_t(abstract_graph_t) | | add_edge(self, *args) | add_edge(self, i, j, ei) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param ei (C++: const edge_info_t *) + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * | | add_node(self, *args) + | add_node(self, r) -> int | Add a node, possibly with a specific geometry | - | add_node(self, r) -> int - | @param r: the node geometry (can be nullptr) (C++: const rect_t *) - | @return: the new node + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node | | calc_group_ea(self, *args) | calc_group_ea(self, arg2) -> ea_t - | arg2: intvec_t const & + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) + | change_group_visibility(self, group, expand) -> bool | Expand/collapse a group node | - | change_group_visibility(self, group, expand) -> bool - | @param group: the group node (C++: int) - | @param expand: whether to expand or collapse (C++: bool) - | @return: success + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) | create_digraph_layout(self) -> bool | | create_group(self, *args) + | create_group(self, nodes) -> int | Create a new group node, that will contain all the nodes in 'nodes'. | - | create_group(self, nodes) -> int - | @param nodes: the nodes that will be part of the group (C++: const - | intvec_t &) - | @return: the group node, or -1 in case of error + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) | del_custom_layout(self) | | del_edge(self, *args) | del_edge(self, i, j) -> bool - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | del_node(self, *args) + | del_node(self, n) -> ssize_t | Delete a node | - | del_node(self, n) -> ssize_t - | @param n: the node to delete (C++: int) - | @return: the number of deleted edges + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges | | delete_group(self, *args) - | Delete a group node.This deletes the group node only; it does not - | delete nodes that are part of the group. - | | delete_group(self, group) -> bool - | @param group: the group node (C++: int) - | @return: success + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) + | empty(self) -> bool | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) + | exists(self, node) -> bool | Is the node visible? | - | exists(self, node) -> bool - | @param node: the node number (C++: int) - | @return: success + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) | get_custom_layout(self) -> bool | | get_first_subgraph_node(self, *args) | get_first_subgraph_node(self, group) -> int - | @param group (C++: int) + | + | @param group: int | | get_graph_groups(self, *args) | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) | get_next_subgraph_node(self, group, current) -> int - | @param group (C++: int) - | @param current (C++: int) + | + | @param group: int + | @param current: int | | get_node_group(self, *args) | get_node_group(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | get_node_representative(self, *args) - | Get the node that currently visually represents 'node'. This will find - | the "closest" parent group node that's visible, by attempting to walk - | up the group nodes that contain 'node', and will stop when it finds a - | node that is currently visible.See also get_group_node() - | | get_node_representative(self, node) -> int - | @param node: the node (C++: int) - | @return: the node that represents 'node', or 'node' if it's not part - | of any group + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) | is_collapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_deleted_node(self, *args) | is_deleted_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_displayable_node(self, *args) | is_displayable_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_dot_node(self, *args) | is_dot_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_group_node(self, *args) | is_group_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_simple_node(self, *args) | is_simple_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_subgraph_node(self, *args) | is_subgraph_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_uncollapsed_node(self, *args) | is_uncollapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_user_graph(self, *args) | is_user_graph(self) -> bool | | is_visible_node(self, *args) - | Is the node currently visible?An invisible node is a node that's part - | of a group that's currently collapsed. - | | is_visible_node(self, node) -> bool - | @param node: the node (C++: int) - | @return: success + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) - | Get the number of visible nodes (the list can be retrieved using - | 'gdl.hpp' 's 'node_iterator' )See also size() + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) | npred(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | nsucc(self, *args) | nsucc(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | pred(self, *args) | pred(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | predset(self, *args) | predset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | redo_layout(self, *args) + | redo_layout(self) -> bool | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success | | refresh(self, *args) - | Refresh the graphA graph needs refreshing when it's "backing data". - | E.g., if the number (or contents) of the objects in the above example, - | change.Let's say the user's plugin ends up finding a 5th piece of - | scattered data. It should then add it to its internal list of known - | objects, and tell IDA that the graph needs to be refreshed, using - | 'refresh_viewer()' . This will cause IDA to:discard all its internal - | rendering information,call 'mutable_graph_t::refresh()' on the graph - | so that the user's plugin has a chance to "sync" the number of nodes & - | edges that this graph contains, to the information that the plugin has - | collected so farre-create internal rendering information, andrepaint - | the view + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success | | replace_edge(self, *args) | replace_edge(self, i, j, x, y) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param x (C++: int) - | @param y (C++: int) + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) | reset(self) | | resize(self, *args) + | resize(self, n) | Resize the graph to 'n' nodes | - | resize(self, n) - | @param n: the new size (C++: int) + | @param n: (C++: int) the new size | | set_custom_layout(self, *args) | set_custom_layout(self) | | set_deleted_node(self, *args) | set_deleted_node(self, node) - | @param node (C++: int) + | + | @param node: int | | set_edge(self, *args) | set_edge(self, e, ei) -> bool - | @param e (C++: edge_t) - | @param ei (C++: const edge_info_t *) + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) | set_graph_groups(self) | | set_node_group(self, *args) | set_node_group(self, node, group) - | @param node (C++: int) - | @param group (C++: int) + | + | @param node: int + | @param group: int | | set_nrect(self, *args) | set_nrect(self, n, r) -> bool - | @param n (C++: int) - | @param r (C++: const rect_t &) + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) - | Get the total number of nodes (including group nodes, and including - | hidden nodes.)See also node_qty() + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) | succ(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | succset(self, *args) | succset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * + | belongs | | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t + | edges | | gid - | mutable_graph_t_gid_get(self) -> uval_t + | gid | | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * + | node_flags | | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t + | nodes | | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t * + | org_preds | | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t * + | org_succs | | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t * + | preds | | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t * + | succs | | thisown | The membership flag @@ -16125,49 +15691,54 @@ class mutable_graph_t(abstract_graph_t) | | create_circle_layout(self, *args) | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) | create_tree_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors inherited from abstract_graph_t: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -16177,9 +15748,10 @@ class mutable_graph_t(abstract_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | end(self, *args) | end(self) -> node_iterator @@ -16195,41 +15767,49 @@ class mutable_graph_t(abstract_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -16253,23 +15833,28 @@ class node_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_flags_for_valid(self, *args) - | Get combination of 'Node info flags' describing which attributes are - | valid. + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) - | Has valid 'bg_color' ? + | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) - | Has valid 'ea' ? + | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) - | Has valid 'flags' ? + | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) - | Has valid 'frame_color' ? + | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) - | Has non-empty 'text' ? + | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16281,19 +15866,19 @@ class node_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -16313,15 +15898,19 @@ class node_layout_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rect_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | x: qvector< rect_t > const & + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16331,33 +15920,39 @@ class node_layout_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: rect_t const & + | + | @param i: size_t + | @param v: rect_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: rect_t const & + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | at(self, *args) | at(self, _idx) -> rect_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16370,78 +15965,85 @@ class node_layout_t(__builtin__.object) | | end(self, *args) | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) | erase(self, it) -> rect_t - | it: qvector< rect_t >::iterator | + | @param it: qvector< rect_t >::iterator | | erase(self, first, last) -> rect_t - | first: qvector< rect_t >::iterator - | last: qvector< rect_t >::iterator + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) | extract(self) -> rect_t | | find(self, *args) | find(self, x) -> rect_t - | x: rect_t const & | - | - | find(self, x) -> rect_t - | x: rect_t const & + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rect_t()) - | x: rect_t const & + | + | @param x: rect_t const & | | has(self, *args) | has(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | inject(self, *args) | inject(self, s, len) - | s: rect_t * - | len: size_t + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> rect_t - | it: qvector< rect_t >::iterator - | x: rect_t const & + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: rect_t const & + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: rect_t const & | + | @param _newsize: size_t + | @param x: rect_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< rect_t > & + | + | @param r: qvector< rect_t > & | | truncate(self, *args) | truncate(self) @@ -16481,24 +16083,29 @@ class node_ordering_t(__builtin__.object) | | clr(self, *args) | clr(self, _node) -> bool - | @param _node (C++: int) + | + | @param _node: int | | node(self, *args) | node(self, _order) -> int - | @param _order (C++: size_t) + | + | @param _order: size_t | | order(self, *args) | order(self, _node) -> int - | @param _node (C++: int) + | + | @param _node: int | | resize(self, *args) | resize(self, n) - | @param n (C++: int) + | + | @param n: int | | set(self, *args) | set(self, _node, num) - | @param _node (C++: int) - | @param num (C++: int) + | + | @param _node: int + | @param num: int | | size(self, *args) | size(self) -> size_t @@ -16530,29 +16137,35 @@ class point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | _x: int - | _y: int + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16567,10 +16180,10 @@ class point_t(__builtin__.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16612,11 +16225,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16626,31 +16241,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16663,78 +16284,85 @@ class pointseq_t(pointvec_t) | | end(self, *args) | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -16757,15 +16385,19 @@ class pointvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | x: qvector< point_t > const & + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16775,33 +16407,39 @@ class pointvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) | capacity(self) -> size_t @@ -16814,78 +16452,85 @@ class pointvec_t(__builtin__.object) | | end(self, *args) | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -16912,20 +16557,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) pyg_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) pyg_select_node(_self, nid) - self: PyObject * - nid: int + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) pyg_show(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -16936,23 +16584,27 @@ class rect_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | l: int - | t: int - | r: int - | b: int + | __init__(self, l, t, r, b) -> rect_t | + | @param l: int + | @param t: int + | @param r: int + | @param b: int | | __init__(self, p0, p1) -> rect_t - | p0: point_t const & - | p1: point_t const & + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -16967,37 +16619,44 @@ class rect_t(__builtin__.object) | | contains(self, *args) | contains(self, p) -> bool - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | empty(self, *args) | empty(self) -> bool | | grow(self, *args) | grow(self, delta) - | @param delta (C++: int) + | + | @param delta: int | | height(self, *args) | height(self) -> int | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) | is_intersection_empty(self, r) -> bool - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | make_union(self, *args) | make_union(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | move_by(self, *args) | move_by(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | move_to(self, *args) | move_to(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | topleft(self, *args) | topleft(self) -> point_t @@ -17015,19 +16674,19 @@ class rect_t(__builtin__.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17038,10 +16697,10 @@ class rect_t(__builtin__.object) Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) + refresh_viewer(gv) Redraw the graph in the given view. - refresh_viewer(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -17068,16 +16727,16 @@ class row_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17094,15 +16753,19 @@ class screen_graph_selection_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | x: qvector< selection_item_t > const & + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17112,33 +16775,39 @@ class screen_graph_selection_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -17151,78 +16820,85 @@ class screen_graph_selection_base_t(__builtin__.object) | | end(self, *args) | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -17264,33 +16940,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) | add(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) | add_node(self, node) - | @param node (C++: int) + | + | @param node: int | | add_point(self, *args) | add_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) | del_node(self, node) - | @param node (C++: int) + | + | @param node: int | | del_point(self, *args) | del_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) | has(self, item) -> bool - | @param item (C++: const selection_item_t &) + | + | @param item: selection_item_t const & | | items_count(self, *args) | items_count(self, look_for_nodes) -> size_t - | @param look_for_nodes (C++: bool) + | + | @param look_for_nodes: bool | | nodes_count(self, *args) | nodes_count(self) -> size_t @@ -17300,7 +16983,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) | sub(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17319,11 +17003,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17333,31 +17019,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -17370,74 +17062,80 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -17460,34 +17158,40 @@ class selection_item_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | n: int + | __init__(self, n) -> selection_item_t | + | @param n: int | | __init__(self, _elp) -> selection_item_t - | _elp: edge_layout_point_t & | + | @param _elp: edge_layout_point_t & | | __init__(self, e, idx) -> selection_item_t - | e: edge_t - | idx: int + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | @param r (C++: const selection_item_t &) + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17499,13 +17203,13 @@ class selection_item_t(__builtin__.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17519,23 +17223,23 @@ class selection_item_t(__builtin__.object) Help on function set_node_info in module ida_graph: set_node_info(*args) + set_node_info(gid, node, ni, flags) Set node info. - set_node_info(gid, node, ni, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) + set_viewer_graph(gv, g) Set the underlying graph object for the given viewer. - set_viewer_graph(gv, g) - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -17558,7 +17262,7 @@ class user_graph_place_t(__builtin__.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17572,201 +17276,158 @@ class user_graph_place_t(__builtin__.object) Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - viewer_attach_menu_item(g, name) -> bool - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param name: (C++: const char *) action name + @param name: (C++: const char *) action name + @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) + viewer_center_on(gv, node) Center the graph view on the given node. - viewer_center_on(gv, node) - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around 'mutable_graph_t::create_group' that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - viewer_create_groups(gv, out_group_nodes, gi) -> bool - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) - Delete node info for node in given viewer (see 'del_node_info()' ) - viewer_del_node_info(gv, n) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) - Wrapper around 'mutable_graph_t::delete_group' . This function - will:clone the current graphattempt deleting the groups in that new - graphif successful, animate to that new graph. - viewer_delete_groups(gv, groups, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) + viewer_fit_window(gv) Fit graph viewer to its parent form. - viewer_fit_window(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) + viewer_get_curnode(gv) -> int Get number of currently selected node (-1 if none) - viewer_get_curnode(gv) -> int - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - viewer_get_gli(out, gv, flags=0) -> bool - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) - Get node info for node in given viewer (see 'get_node_info()' ) - viewer_get_node_info(gv, out, n) -> bool - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) + viewer_get_selection(gv, sgs) -> bool Get currently selected items for graph viewer. - viewer_get_selection(gv, sgs) -> bool - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - viewer_set_gli(gv, gli, flags=0) - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) - Wrapper around 'mutable_graph_t::change_visibility' . This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) - Set node info for node in given viewer (see 'set_node_info()' ) - viewer_set_node_info(gv, n, ni, flags) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) - Set height of node title bars ( 'grcode_set_titlebar_height' ) - viewer_set_titlebar_height(gv, height) -> int - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" -'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" -'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" -'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" -'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" -'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(exceptions.Exception) @@ -17849,260 +17510,248 @@ class Hexrays_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | build_callinfo(self, *args) + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | cmt_changed(self, *args) + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | flowchart(self, *args) + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) | hook(self) -> bool | | interr(self, *args) + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | right_click(self, *args) - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) | unhook(self) -> bool @@ -18180,142 +17829,134 @@ class __cbhooks_t(Hexrays_Hooks) | __repr__ = _swig_repr(self) | | build_callinfo(self, *args) + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | cmt_changed(self, *args) + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | flowchart(self, *args) + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) | hook(self) -> bool | | locopt(self, *args) + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | stkpnts(self, *args) + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -18347,54 +17988,75 @@ Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: _kludge_force_declare_TPopupMenu(*args) _kludge_force_declare_TPopupMenu(arg1) - arg1: TPopupMenu const * + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) _ll_call_helper(rettype, args, format) -> cexpr_t - rettype: tinfo_t const & - args: carglist_t * - format: char const * + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) _ll_create_helper(standalone, type, format) -> cexpr_t - standalone: bool - type: tinfo_t const & - format: char const * + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - e: cexpr_t * - ptrsize: int - is_flt: bool + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) _ll_lnot(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - n: uint64 - func: cfunc_t * - ea: ea_t - opnum: int - sign: type_sign_t - size: int + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) _ll_make_ref(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -18409,27 +18071,28 @@ _map_as_dict(maptype, name, keytype, valuetype) Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) + accepts_small_udts(op) -> bool Is the operator allowed on small structure or union? - accepts_small_udts(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) accepts_udts(op) -> bool - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) + arglocs_overlap(loc1, w1, loc2, w2) -> bool Do two arglocs overlap? - arglocs_overlap(loc1, w1, loc2, w2) -> bool - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -18440,15 +18103,19 @@ class array_of_bitsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bitset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | x: qvector< bitset_t > const & + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18458,33 +18125,39 @@ class array_of_bitsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bitset_t const & + | + | @param i: size_t + | @param v: bitset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: bitset_t const & + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | at(self, *args) | at(self, _idx) -> bitset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -18497,78 +18170,85 @@ class array_of_bitsets(__builtin__.object) | | end(self, *args) | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) | erase(self, it) -> bitset_t - | it: qvector< bitset_t >::iterator | + | @param it: qvector< bitset_t >::iterator | | erase(self, first, last) -> bitset_t - | first: qvector< bitset_t >::iterator - | last: qvector< bitset_t >::iterator + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) | extract(self) -> bitset_t | | find(self, *args) | find(self, x) -> bitset_t - | x: bitset_t const & | - | - | find(self, x) -> bitset_t - | x: bitset_t const & + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bitset_t()) - | x: bitset_t const & + | + | @param x: bitset_t const & | | has(self, *args) | has(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | inject(self, *args) | inject(self, s, len) - | s: bitset_t * - | len: size_t + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> bitset_t - | it: qvector< bitset_t >::iterator - | x: bitset_t const & + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bitset_t const & + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bitset_t const & | + | @param _newsize: size_t + | @param x: bitset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bitset_t > & + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) | truncate(self) @@ -18600,15 +18280,19 @@ class array_of_ivlsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ivlset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | x: qvector< ivlset_t > const & + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18618,33 +18302,39 @@ class array_of_ivlsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ivlset_t const & + | + | @param i: size_t + | @param v: ivlset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ivlset_t const & + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | at(self, *args) | at(self, _idx) -> ivlset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -18657,78 +18347,85 @@ class array_of_ivlsets(__builtin__.object) | | end(self, *args) | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) | erase(self, it) -> ivlset_t - | it: qvector< ivlset_t >::iterator | + | @param it: qvector< ivlset_t >::iterator | | erase(self, first, last) -> ivlset_t - | first: qvector< ivlset_t >::iterator - | last: qvector< ivlset_t >::iterator + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) | extract(self) -> ivlset_t | | find(self, *args) | find(self, x) -> ivlset_t - | x: ivlset_t const & | - | - | find(self, x) -> ivlset_t - | x: ivlset_t const & + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ivlset_t()) - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | has(self, *args) | has(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | inject(self, *args) | inject(self, s, len) - | s: ivlset_t * - | len: size_t + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ivlset_t - | it: qvector< ivlset_t >::iterator - | x: ivlset_t const & + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ivlset_t const & + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ivlset_t const & | + | @param _newsize: size_t + | @param x: ivlset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ivlset_t > & + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) | truncate(self) @@ -18754,22 +18451,21 @@ class array_of_ivlsets(__builtin__.object) Help on function asgop in module ida_hexrays: asgop(*args) - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - asgop(cop) -> ctype_t - @param cop (C++: ctype_t) + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - asgop_revert(cop) -> ctype_t - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -18780,8 +18476,9 @@ class bit_bound_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t - | n: int - | s: int + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -18795,10 +18492,10 @@ class bit_bound_t(__builtin__.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -18818,50 +18515,59 @@ class bitset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | m: bitset_t const & + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) | back(self) -> int @@ -18874,19 +18580,24 @@ class bitset_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | dstr(self, *args) | dstr(self) -> char const * @@ -18899,77 +18610,91 @@ class bitset_t(__builtin__.object) | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18992,69 +18717,69 @@ class bitset_t(__builtin__.object) Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) - Get iterator pointing to the beginning of 'block_chains_t' . - block_chains_begin(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) - Clear 'block_chains_t' . - block_chains_clear(set) - @param set (C++: block_chains_t *) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) - Get iterator pointing to the end of 'block_chains_t' . - block_chains_end(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) - Erase current element from 'block_chains_t' . - block_chains_erase(set, p) - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) - Find the specified key in set 'block_chains_t' . - block_chains_find(set, val) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) - Delete 'block_chains_t' instance. - block_chains_free(set) - @param set (C++: block_chains_t *) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) + block_chains_get(p) -> chain_t Get reference to the current set value. - block_chains_get(p) -> chain_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) - Insert new ( 'chain_t' ) into set 'block_chains_t' . - block_chains_insert(set, val) -> block_chains_iterator_t - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -19065,14 +18790,16 @@ class block_chains_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19089,7 +18816,7 @@ class block_chains_iterator_t(__builtin__.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19100,31 +18827,32 @@ class block_chains_iterator_t(__builtin__.object) Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) - Create a new 'block_chains_t' instance. + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) + block_chains_next(p) -> block_chains_iterator_t Move to the next element. - block_chains_next(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) + block_chains_prev(p) -> block_chains_iterator_t Move to the previous element. - block_chains_prev(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) - Get size of 'block_chains_t' . - block_chains_size(set) -> size_t - @param set (C++: block_chains_t *) + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -19145,50 +18873,26 @@ class block_chains_t(__builtin__.object) | dstr(self) -> char const * | | get_chain(self, *args) - | Get chain for the specified value offset. - | | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) - | - | - | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) | + | @param k: voff_t const & + | @param width: int | | get_chain(self, ch) -> chain_t - | ch: chain_t const & | - | - | get_chain(self, ch) -> chain_t - | ch: chain_t const & + | @param ch: chain_t const & | | get_reg_chain(self, *args) - | Get chain for the specified register - | | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) | - | - | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) - | Get chain for the specified stack offset - | | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) | - | - | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19217,11 +18921,14 @@ class block_chains_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | x: qvector< block_chains_t > const & + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -19233,19 +18940,20 @@ class block_chains_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) | capacity(self) -> size_t @@ -19258,16 +18966,16 @@ class block_chains_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -19277,47 +18985,56 @@ class block_chains_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< block_chains_t > & + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) | truncate(self) @@ -19343,70 +19060,70 @@ class block_chains_vec_t(__builtin__.object) Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) + boundaries_begin(map) -> boundaries_iterator_t Get iterator pointing to the beginning of boundaries_t. - boundaries_begin(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) + boundaries_clear(map) Clear boundaries_t. - boundaries_clear(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) + boundaries_end(map) -> boundaries_iterator_t Get iterator pointing to the end of boundaries_t. - boundaries_end(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) + boundaries_erase(map, p) Erase current element from boundaries_t. - boundaries_erase(map, p) - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) + boundaries_find(map, key) -> boundaries_iterator_t Find the specified key in boundaries_t. - boundaries_find(map, key) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) + boundaries_first(p) -> cinsn_t Get reference to the current map key. - boundaries_first(p) -> cinsn_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) + boundaries_free(map) Delete boundaries_t instance. - boundaries_free(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - boundaries_insert(map, key, val) -> boundaries_iterator_t - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -19417,14 +19134,16 @@ class boundaries_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19441,7 +19160,7 @@ class boundaries_iterator_t(__builtin__.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19452,39 +19171,40 @@ class boundaries_iterator_t(__builtin__.object) Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) + boundaries_new() -> boundaries_t Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) + boundaries_next(p) -> boundaries_iterator_t Move to the next element. - boundaries_next(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) + boundaries_prev(p) -> boundaries_iterator_t Move to the previous element. - boundaries_prev(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) + boundaries_second(p) -> rangeset_t Get reference to the current map value. - boundaries_second(p) -> rangeset_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) + boundaries_size(map) -> size_t Get size of boundaries_t. - boundaries_size(map) -> size_t - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -19518,7 +19238,8 @@ class boundaries_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> rangeset_t - | _Keyval: cinsn_t *const & + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -19668,6 +19389,7 @@ class boundaries_t(__builtin__.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -19684,49 +19406,57 @@ class carg_t(cexpr_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: carg_t const & + | + | @param r: carg_t const & | | consume_cexpr(self, *args) | consume_cexpr(self, e) - | @param e (C++: cexpr_t *) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -19750,7 +19480,7 @@ class carg_t(cexpr_t) | _get_fpc(self) -> fnumber_t | | _get_helper(self, *args) - | _get_helper(self) -> char * + | _get_helper(self) -> char const * | | _get_insn(self, *args) | _get_insn(self) -> cinsn_t @@ -19771,7 +19501,7 @@ class carg_t(cexpr_t) | _get_refwidth(self) -> int | | _get_string(self, *args) - | _get_string(self) -> char * + | _get_string(self) -> char const * | | _get_x(self, *args) | _get_x(self) -> cexpr_t @@ -19787,194 +19517,238 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -19986,29 +19760,35 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) @@ -20018,63 +19798,62 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -20082,7 +19861,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -20108,7 +19887,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -20156,36 +19935,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -20200,19 +19980,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20239,47 +20019,56 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | ftype: tinfo_t const & - | fl: int + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: carglist_t const & + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -20295,7 +20084,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20305,31 +20095,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -20342,78 +20140,85 @@ class carglist_t(qvector_carg_t) | | end(self, *args) | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -20441,41 +20246,49 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t - | ea: ea_t | + | @param ea: ea_t | | __init__(self, r) -> casm_t - | r: casm_t const & + | + | @param r: casm_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: casm_t const & + | + | @param r: casm_t const & | | one_insn(self, *args) | one_insn(self) -> bool @@ -20497,7 +20310,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20507,24 +20321,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20548,70 +20371,81 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ | + | @param x: unsigned-ea-like-numeric-type const &↗ | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) | inject(self, s, len) - | s: unsigned-ea-like-numeric-type *↗ - | len: size_t + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned-ea-like-numeric-type const &↗ | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) | truncate(self) @@ -20627,42 +20461,48 @@ class casm_t(ida_pro.eavec_t)↗ Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | __builtin__.object | | Methods defined here: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -20671,7 +20511,8 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) | compare(self, r) -> int - | r: cblock_t const & + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20686,11 +20527,12 @@ class cblock_t(qlist_cinsn_t) | delete_cblock_t(self) | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20700,8 +20542,9 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & + | + | @param i: size_t + | @param v: cinsn_t const & | | at(self, index) | @@ -20709,7 +20552,7 @@ class cblock_t(qlist_cinsn_t) | # ----------------------------------------------------------------------- | | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) | clear(self) @@ -20718,20 +20561,12 @@ class cblock_t(qlist_cinsn_t) | empty(self) -> bool | | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | | erase(self, p) - | p: qlist_cinsn_t_iterator + | + | @param p: cinsn_list_t_iterator | | find(self, item) | @@ -20741,23 +20576,15 @@ class cblock_t(qlist_cinsn_t) | index(self, item) | | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | | insert(self, i, v) - | i: size_t - | v: cinsn_t const & | + | @param i: size_t + | @param v: cinsn_t const & | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -20767,11 +20594,15 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) | push_back(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t | | push_front(self, *args) | push_front(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & | | rbegin(self, *args) | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -20779,7 +20610,8 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) | remove(self, v) -> bool - | v: cinsn_t const & + | + | @param v: cinsn_t const & | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -20790,10 +20622,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) | swap(self, x) - | x: qlist< cinsn_t > & + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -20816,43 +20649,51 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ccase_t const & + | + | @param r: ccase_t const & | | size(self, *args) | size(self) -> size_t | | value(self, *args) | value(self, i) -> uint64 const & - | @param i (C++: int) + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20861,7 +20702,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -20907,137 +20748,175 @@ class ccase_t(cinsn_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -21045,7 +20924,8 @@ class ccase_t(cinsn_t) | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -21113,36 +20993,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -21157,16 +21038,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21193,36 +21074,43 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ccases_t const & + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21241,7 +21129,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21251,31 +21140,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) | capacity(self) -> size_t @@ -21288,78 +21185,85 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -21382,11 +21286,12 @@ class cdg_insn_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self, mba_) -> cdg_insn_iterator_t - | mba_: mba_t const * | + | @param mba_: mba_t const * | | __init__(self, r) -> cdg_insn_iterator_t - | r: cdg_insn_iterator_t const & + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -21401,14 +21306,16 @@ class cdg_insn_iterator_t(__builtin__.object) | | next(self, *args) | next(self, ins) -> merror_t - | @param ins (C++: insn_t *) + | + | @param ins: insn_t * | | ok(self, *args) | ok(self) -> bool | | start(self, *args) | start(self, rng) - | @param rng (C++: const range_t &) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21420,25 +21327,25 @@ class cdg_insn_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | | mba - | cdg_insn_iterator_t_mba_get(self) -> mba_t + | mba | | severed_branch - | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t + | severed_branch | | thisown | The membership flag @@ -21464,36 +21371,43 @@ class cdo_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cdo_t const & + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21512,7 +21426,8 @@ class cdo_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -21521,7 +21436,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -21533,7 +21448,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -21557,7 +21472,7 @@ class ceinsn_t(__builtin__.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -21587,49 +21502,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * + | __init__(self, cop, _x) -> cexpr_t | + | @param cop: enum ctype_t + | @param _x: cexpr_t * | | __init__(self, cop, _x, _y) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * | | __init__(self, cop, _x, _y, _z) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * - | _z: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * | | __init__(self, r) -> cexpr_t - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -21643,7 +21566,7 @@ class cexpr_t(citem_t) | _get_fpc(self) -> fnumber_t | | _get_helper(self, *args) - | _get_helper(self) -> char * + | _get_helper(self) -> char const * | | _get_insn(self, *args) | _get_insn(self) -> cinsn_t @@ -21664,7 +21587,7 @@ class cexpr_t(citem_t) | _get_refwidth(self) -> int | | _get_string(self, *args) - | _get_string(self) -> char * + | _get_string(self) -> char const * | | _get_x(self, *args) | _get_x(self) -> cexpr_t @@ -21680,198 +21603,243 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) | compare(self, r) -> int - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | contains_comma(self, *args) + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -21883,29 +21851,35 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) @@ -21915,63 +21889,62 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21979,7 +21952,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -22008,7 +21981,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -22059,36 +22032,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -22103,19 +22077,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -22143,45 +22117,52 @@ class cfor_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cfor_t const & + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -22197,7 +22178,8 @@ class cfor_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -22206,7 +22188,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22218,7 +22200,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -22237,30 +22219,29 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t - | f: cfunc_t * - | post: bool + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | | calc_rvalue_type(self, *args) - | Calculate rvalue type. This function tries to determine the type of - | the specified item based on its context. For example, if the current - | expression is the right side of an assignment operator, the type of - | its left side will be returned. This function can be used to determine - | the 'best' type of the specified expression. - | | calc_rvalue_type(self, target, e) -> bool - | @param target: 'best' type of the expression will be returned here - | (C++: tinfo_t *) - | @param e: expression to determine the desired type (C++: const - | cexpr_t *) - | @return: false if failed + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -22274,113 +22255,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -22392,10 +22384,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -22412,189 +22404,208 @@ class cfunc_t(__builtin__.object) | __str__(self) -> qstring | | build_c_tree(self, *args) - | Generate the function body. This function (re)generates the function - | body from the underlying microcode. + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) - | Delete all orphan comments. The 'save_user_cmts()' function must be - | called after this call. + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool - | @param item (C++: const citem_t *) - | @param px (C++: int *) - | @param py (C++: int *) | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | | find_item_coords(self, item) -> PyObject * - | @param item (C++: const citem_t *) + | + | @param item: citem_t const * | | find_label(self, *args) + | find_label(self, label) -> citem_t | Find the label. | - | find_label(self, label) -> citem_t - | @param label (C++: int) - | @return: pointer to the ctree item with the specified label number. + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool - | @param ci (C++: const ctree_item_t &) - | @param udm (C++: udt_type_data_t *) + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) + | get_func_type(self, type) -> bool | Get the function type. | - | get_func_type(self, type) -> bool - | @param type: variable where the function type is returned (C++: - | tinfo_t *) - | @return: false if failure + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) - | Get ctree item for the specified cursor position. - | 'vdui_t::get_current_item()' - | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | @param line: line of decompilation text (element of sv ) (C++: const - | char *) - | @param x: x cursor coordinate in the line (C++: int) - | @param is_ctree_line: does the line belong to statement area? (if not, - | it is assumed to belong to the declaration area) - | (C++: bool) - | @param phead: ptr to the first item on the line (used to attach block - | comments). May be NULL (C++: ctree_item_t *) - | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t - | *) - | @param ptail: ptr to the last item on the line (used to attach - | indented comments). May be NULL (C++: ctree_item_t *) - | @return: false if failed to get the current item + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) + | get_stkoff_delta(self) -> sval_t | Get stack offset delta. The local variable stack offsets retrieved by - | v.location.stkoff() should be adjusted before being used as stack - | frame offsets in IDA. + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) + | get_user_cmt(self, loc, rt) -> char const * | Retrieve a user defined comment. | - | get_user_cmt(self, loc, rt) -> char const * - | @param loc: ctree location (C++: const treeloc_t &) - | @param rt: should already retrieved comments retrieved again? (C++: - | cmt_retrieval_type_t) - | @return: pointer to the comment string or NULL + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) + | get_user_iflags(self, loc) -> int32 | Retrieve citem iflags. | - | get_user_iflags(self, loc) -> int32 - | @param loc: citem locator (C++: const citem_locator_t &) - | @return: ctree item iflags bits or 0 + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) + | get_user_union_selection(self, ea, path) -> bool | Retrieve a user defined union field selection. | - | get_user_union_selection(self, ea, path) -> bool - | @param ea: address (C++: ea_t) - | @param path: out: path describing the union selection. (C++: intvec_t - | *) - | @return: pointer to the path or NULL + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) + | has_orphan_cmts(self) -> bool | Check if there are orphan comments. | | locked(self, *args) | locked(self) -> bool | | print_dcl(self, *args) + | print_dcl(self) | Print function prototype. | | print_func(self, *args) + | print_func(self, vp) | Print function text. | - | print_func(self, vp) - | @param vp: printer helper class to receive the generated text. (C++: - | vc_printer_t &) + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) - | Refresh ctext after a ctree modification. This function informs the - | decompiler that ctree ( 'body' ) have been modified and ctext ( 'sv' ) - | does not correspond to it anymore. It also refreshes the pseudocode - | windows if there is any. + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) | release(self) | | remove_unused_labels(self, *args) - | Remove unused labels. This function check what labels are really used - | by the function and removes the unused ones. + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) + | save_user_cmts(self) | Save user-defined comments into the database. | | save_user_iflags(self, *args) + | save_user_iflags(self) | Save user-defined iflags into the database. | | save_user_labels(self, *args) + | save_user_labels(self) | Save user-defined labels into the database. | | save_user_numforms(self, *args) + | save_user_numforms(self) | Save user-defined number formats into the database. | | save_user_unions(self, *args) + | save_user_unions(self) | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) - | Set a user defined comment. This function stores the specified comment - | in the 'cfunc_t' structure. The 'save_user_cmts()' function must be - | called after it. - | | set_user_cmt(self, loc, cmt) - | @param loc: ctree location (C++: const treeloc_t &) - | @param cmt: new comment. if empty or NULL, then an existing comment is - | deleted. (C++: const char *) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) + | set_user_iflags(self, loc, iflags) | Set citem iflags. | - | set_user_iflags(self, loc, iflags) - | @param loc: citem locator (C++: const citem_locator_t &) - | @param iflags: new iflags (C++: int32) + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) - | Set a union field selection. The 'save_user_unions()' function must be - | called after calling this function. - | | set_user_union_selection(self, ea, path) - | @param ea: address (C++: ea_t) - | @param path: in: path describing the union selection. (C++: const - | intvec_t &) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) - | Verify the ctree. This function verifies the ctree. If the ctree is - | malformed, an internal error is generated. Use it to verify the ctree - | after your modifications. - | | verify(self, aul, even_without_debugger) - | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) - | @param even_without_debugger: if false and there is no debugger, the - | verification will be skipped (C++: bool) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22606,72 +22617,83 @@ class cfunc_t(__builtin__.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mba_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -22698,11 +22720,12 @@ class cfuncptr_t(__builtin__.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t - | p: cfunc_t * | + | @param p: cfunc_t * | | __init__(self, r) -> cfuncptr_t - | r: qrefcnt_t< cfunc_t > const & + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) | __ptrval__(self) -> size_t @@ -22722,22 +22745,25 @@ class cfuncptr_t(__builtin__.object) | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool - | item: citem_t const * - | px: int * - | py: int * | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | - | find_item_coords(self, item) -> PyObject * - | item: citem_t const * + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) | find_label(self, label) -> citem_t - | label: int + | + | @param label: int | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool - | ci: ctree_item_t const & - | udm: udt_type_data_t * + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) | get_boundaries(self) -> boundaries_t @@ -22747,16 +22773,18 @@ class cfuncptr_t(__builtin__.object) | | get_func_type(self, *args) | get_func_type(self, type) -> bool - | type: tinfo_t * + | + | @param type: tinfo_t * | | get_line_item(self, *args) | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | line: char const * - | x: int - | is_ctree_line: bool - | phead: ctree_item_t * - | pitem: ctree_item_t * - | ptail: ctree_item_t * + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) | get_lvars(self) -> lvars_t @@ -22769,17 +22797,20 @@ class cfuncptr_t(__builtin__.object) | | get_user_cmt(self, *args) | get_user_cmt(self, loc, rt) -> char const * - | loc: treeloc_t const & - | rt: enum cmt_retrieval_type_t + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) | get_user_iflags(self, loc) -> int32 - | loc: citem_locator_t const & + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) | get_user_union_selection(self, ea, path) -> bool - | ea: ea_t - | path: intvec_t * + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) | get_warnings(self) -> hexwarns_t @@ -22795,7 +22826,8 @@ class cfuncptr_t(__builtin__.object) | | print_func(self, *args) | print_func(self, vp) - | vp: vc_printer_t & + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) | refresh_func_ctext(self) @@ -22826,23 +22858,27 @@ class cfuncptr_t(__builtin__.object) | | set_user_cmt(self, *args) | set_user_cmt(self, loc, cmt) - | loc: treeloc_t const & - | cmt: char const * + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) | set_user_iflags(self, loc, iflags) - | loc: citem_locator_t const & - | iflags: int32 + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) | set_user_union_selection(self, ea, path) - | ea: ea_t - | path: intvec_t const & + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) | verify(self, aul, even_without_debugger) - | aul: enum allow_unused_labels_t - | even_without_debugger: bool + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22854,61 +22890,61 @@ class cfuncptr_t(__builtin__.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mba_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings | @@ -22927,36 +22963,43 @@ class cgoto_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22968,7 +23011,7 @@ class cgoto_t(__builtin__.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -22988,7 +23031,8 @@ class chain_keeper_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t - | _gc: graph_chains_t * + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -22997,8 +23041,9 @@ class chain_keeper_t(__builtin__.object) | | for_all_chains(self, *args) | for_all_chains(self, cv, gca) -> int - | @param cv (C++: chain_visitor_t &) - | @param gca (C++: int) + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) | front(self) -> block_chains_t @@ -23035,19 +23080,22 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | t: mopt_t - | off: sval_t - | w: int - | v: int + | __init__(self, t, off, w=1, v=-1) -> chain_t | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int | | __init__(self, _k, w=1) -> chain_t - | _k: voff_t const & - | w: int + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: chain_t const & + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -23055,11 +23103,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) + | append_list(self, mba, list) | Append the contents of the chain to the specified list of locations. | - | append_list(self, mba, list) - | @param mba (C++: const mba_t *) - | @param list (C++: mlist_t *) + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) | clear_varnum(self) @@ -23078,7 +23126,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) | includes(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | is_fake(self, *args) | is_fake(self) -> bool @@ -23109,42 +23158,48 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) | overlap(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | set_inited(self, *args) | set_inited(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_overlapped(self, *args) | set_overlapped(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_replaced(self, *args) | set_replaced(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_term(self, *args) | set_term(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_value(self, *args) | set_value(self, r) - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -23157,11 +23212,13 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23171,28 +23228,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | at = __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23216,70 +23283,81 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -23304,14 +23382,16 @@ class chain_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_chain(self, *args) | visit_chain(self, nblock, ch) -> int - | @param nblock (C++: int) - | @param ch (C++: chain_t &) + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23323,7 +23403,7 @@ class chain_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -23337,17 +23417,16 @@ class chain_visitor_t(__builtin__.object) Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - checkout_hexrays_license(silent) -> bool - @param silent: silently fail if the license cannot be checked out. - (C++: bool) - @return: false if failed + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -23363,53 +23442,63 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | r: cif_t const & + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cif_t - | @param r (C++: const cif_t &) + | + | @param r: cif_t const & | | cleanup(self, *args) | cleanup(self) | | compare(self, *args) | compare(self, r) -> int - | r: cif_t const & + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -23430,13 +23519,200 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(__builtin__.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | pop_front(self, *args) + | pop_front(self) + | + | push_back(self, *args) + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_cinsn_list_t> + | delete_cinsn_list_t(self) + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(__builtin__.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | next = __next__(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_cinsn_list_t_iterator> + | delete_cinsn_list_t_iterator(self) + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -23451,31 +23727,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | r: cinsn_t const & + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -23514,141 +23798,180 @@ class cinsn_t(citem_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) | compare(self, r) -> int - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -23656,7 +23979,8 @@ class cinsn_t(citem_t) | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23730,36 +24054,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -23774,16 +24099,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -23800,7 +24125,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) cinsn_t_insn_is_epilog(insn) -> bool - insn: cinsn_t const * + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -23811,15 +24137,19 @@ class cinsnptrvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | x: qvector< cinsn_t * > const & + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23828,22 +24158,28 @@ class cinsnptrvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t *const & + | + | @param i: size_t + | @param v: cinsn_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: cinsn_t *const & + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) | @@ -23871,70 +24207,81 @@ class cinsnptrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator | + | @param it: qvector< cinsn_t * >::iterator | | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | first: qvector< cinsn_t * >::iterator - | last: qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) | extract(self) -> cinsn_t ** | | find(self, *args) | find(self, x) -> qvector< cinsn_t * >::iterator - | x: cinsn_t *const & | + | @param x: cinsn_t *const & | | find(self, x) -> qvector< cinsn_t * >::const_iterator - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | inject(self, *args) | inject(self, s, len) - | s: cinsn_t ** - | len: size_t + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator - | x: cinsn_t *const & + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: cinsn_t *const & | + | @param _newsize: size_t + | @param x: cinsn_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< cinsn_t * > & + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) | truncate(self) @@ -23966,7 +24313,9 @@ class citem_cmt_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | s: char const * + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -23989,7 +24338,7 @@ class citem_cmt_t(__builtin__.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24006,42 +24355,50 @@ class citem_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t - | _ea: ea_t - | _op: enum ctype_t | + | @param _ea: ea_t + | @param _op: enum ctype_t | | __init__(self, i) -> citem_locator_t - | i: citem_t const * + | + | @param i: citem_t const * | | __le__(self, *args) | __le__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24053,10 +24410,10 @@ class citem_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -24075,8 +24432,9 @@ class citem_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | o: enum ctype_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -24110,53 +24468,54 @@ class citem_t(__builtin__.object) | | _set_op(self, *args) | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) + | is_expr(self) -> bool | Is an expression? | | print1(self, *args) + | print1(self, func) | Print item into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) - | @return: length of the generated text. + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) - | Swap two 'citem_t' . - | | swap(self, r) - | @param r (C++: citem_t &) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24168,19 +24527,19 @@ class citem_t(__builtin__.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -24210,6 +24569,7 @@ citem_to_specific_type(self) Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) + clear_cached_cfuncs() Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -24226,17 +24586,20 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | b: cinsn_t * + | __init__(self, b) -> cloop_t | + | @param b: cinsn_t * | | __init__(self, r) -> cloop_t - | r: cloop_t const & + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -24245,7 +24608,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -24266,22 +24629,23 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function close_hexrays_waitbox in module ida_hexrays: close_hexrays_waitbox(*args) - Close the waitbox displayed by the decompiler. Useful if - DECOMP_NO_HIDE was used during decompilation. + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) + close_pseudocode(f) -> bool Close pseudocode window. - close_pseudocode(f) -> bool - @param f: pointer to window (C++: TWidget *) - @return: false if failed + @param f: (C++: TWidget *) pointer to window + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -24292,58 +24656,69 @@ class cnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t - | _opnum: int + | + | @param _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, type, parent=None, nice_stroff=None) - | type: tinfo_t const & - | parent: citem_t const * - | nice_stroff: bool * + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) + | assign(self, v, nbytes, sign) | Assign new value | - | assign(self, v, nbytes, sign) - | @param v: new value (C++: uint64) - | @param nbytes: size of the new value in bytes (C++: int) - | @param sign: sign of the value (C++: type_sign_t) + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) | compare(self, r) -> int - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | value(self, *args) - | Get value. This function will properly extend the number sign to - | 64bits depending on the type sign. - | | value(self, type) -> uint64 - | @param type (C++: const tinfo_t &) + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24355,10 +24730,10 @@ class cnumber_t(__builtin__.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -24381,92 +24756,94 @@ class codegen_t(__builtin__.object) | __repr__ = _swig_repr(self) | | analyze_prolog(self, *args) - | Analyze prolog/epilog of the function to decompile. If prolog is - | found, allocate and fill 'mba->pi' structure. - | | analyze_prolog(self, fc, reachable) -> merror_t - | @param fc: flow chart (C++: const class qflow_chart_t &) - | @param reachable: bitmap of reachable blocks (C++: const class - | bitset_t &) - | @return: error code + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) - | Emit one microinstruction. The L, R, D arguments usually mean the - | register number. However, they depend on CODE. For example:for m_goto - | and m_jcnd L is the target addressfor m_ldc L is the constant value to - | load - | | emit(self, code, width, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param width (C++: int) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int | | emit(self, code, l, r, d) -> minsn_t - | @param code (C++: mcode_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t | Emit one microinstruction. This variant takes a data type not a size. | - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param dtype (C++: op_dtype_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) + | gen_micro(self) -> merror_t | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal | | load_effective_address(self, *args) + | load_effective_address(self, n, flags=0) -> mreg_t | Generate microcode to calculate the address of a memory operand. | - | load_effective_address(self, n, flags=0) -> mreg_t - | @param n: - number of INSN operand (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand address. mr_none - failed - | (not a memory operand) + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) + | load_operand(self, opnum, flags=0) -> mreg_t | Generate microcode to load one operand. | - | load_operand(self, opnum, flags=0) -> mreg_t - | @param opnum (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand. + | @param opnum: (C++: int) + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand. | | microgen_completed(self, *args) + | microgen_completed(self) | This method is called when the microcode generation is done. | | prepare_gen_micro(self, *args) - | Setup internal data to handle new instruction. This method should be - | called before calling 'gen_micro()' . Usually 'gen_micro()' is called - | by the decompiler. You have to call this function explicitly only if - | you yourself call 'gen_micro()' . The instruction is in INSN + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal | | store_operand(self, *args) - | Generate microcode to store an operand. In case of success an - | arbitrary number of instructions can be generated (and even no - | instruction if the source and target are the same) - | | store_operand(self, n, mop, flags=0, outins=None) -> bool - | @param n: - number of target INSN operand (C++: int) - | @param mop: - operand to be stored (C++: const mop_t &) - | @param flags: - reserved for future use (C++: int) - | @param outins: - (OUT) the last generated instruction (C++: minsn_t - | **) - | @return: success + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24478,19 +24855,19 @@ class codegen_t(__builtin__.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -24504,51 +24881,49 @@ class codegen_t(__builtin__.object) Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) + convert_to_user_call(udc, cdg) -> merror_t try to generate user-defined call for an instruction - convert_to_user_call(udc, cdg) -> merror_t - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) Help on function create_cfunc in module ida_hexrays: create_cfunc(*args) - Create a new 'cfunc_t' object. - create_cfunc(mba) -> cfuncptr_t - @param mba: microcode object. After creating the cfunc object it takes - the ownership of MBA. (C++: mba_t *) + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. Help on function create_field_name in module ida_hexrays: create_field_name(*args) create_field_name(type, offset=BADADDR) -> qstring - @param type (C++: const tinfo_t &) - @param offset (C++: uval_t) + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) - Create a reference to a named type. - create_typedef(name) -> tinfo_t - @param name: type name (C++: const char *) - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + Create a reference to an ordinal type. + @param name: char const * + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - n: int - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + + @param n: int Help on class creturn_t in module ida_hexrays: @@ -24564,36 +24939,43 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: creturn_t const & + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24617,7 +24999,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -24633,45 +25015,52 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -24692,7 +25081,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -24703,45 +25092,53 @@ class ctext_position_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | _lnnum: int - | _x: int - | _y: int + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24753,16 +25150,16 @@ class ctext_position_t(__builtin__.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24816,7 +25213,7 @@ class ctree_anchor_t(__builtin__.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24852,31 +25249,36 @@ class ctree_item_t(__builtin__.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) + | get_ea(self) -> ea_t | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) + | get_label_num(self, gln_flags) -> int | Get label number of the current item. | - | get_label_num(self, gln_flags) -> int - | @param gln_flags: Combination of get_label_num control bits (C++: - | int) - | @return: -1 if failed or no label + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) - | Get pointer to local variable. If the current item is a local - | variable, this function will return pointer to its definition. + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) - | Get pointer to structure member. If the current item is a structure - | field, this function will return pointer to its definition. - | | get_memptr(self, p_sptr=None) -> member_t * - | @param p_sptr: pointer to the variable where the pointer to the parent - | structure is returned. This parameter can be NULL. - | (C++: struc_t **) - | @return: NULL if failed + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) + | is_citem(self) -> bool | Is the current item is a ctree item? | | ---------------------------------------------------------------------- @@ -24889,7 +25291,7 @@ class ctree_item_t(__builtin__.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -24902,7 +25304,7 @@ class ctree_item_t(__builtin__.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -24922,15 +25324,19 @@ class ctree_items_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> citem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | x: qvector< citem_t * > const & + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -24939,22 +25345,28 @@ class ctree_items_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: citem_t *const & + | + | @param i: size_t + | @param v: citem_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: citem_t *const & + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | append = push_back(self, *args) | @@ -24982,70 +25394,81 @@ class ctree_items_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator | + | @param it: qvector< citem_t * >::iterator | | erase(self, first, last) -> qvector< citem_t * >::iterator - | first: qvector< citem_t * >::iterator - | last: qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) | extract(self) -> citem_t ** | | find(self, *args) | find(self, x) -> qvector< citem_t * >::iterator - | x: citem_t *const & | + | @param x: citem_t *const & | | find(self, x) -> qvector< citem_t * >::const_iterator - | x: citem_t *const & + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | inject(self, *args) | inject(self, s, len) - | s: citem_t ** - | len: size_t + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator - | x: citem_t *const & + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: citem_t *const & + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: citem_t *const & | + | @param _newsize: size_t + | @param x: citem_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< citem_t * > & + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) | truncate(self) @@ -25084,17 +25507,25 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t - | post: bool + | + | @param post: bool | | __repr__ = _swig_repr(self) | + | get_block(self, *args) + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25112,101 +25543,105 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -25218,10 +25653,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -25234,106 +25669,111 @@ class ctree_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t - | _flags: int + | + | @param _flags: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25345,10 +25785,10 @@ class ctree_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -25374,36 +25814,43 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25422,7 +25869,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) | cleanup(self) @@ -25431,7 +25879,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -25443,14 +25891,15 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) debug_hexrays_ctree(level, msg) - level: int - msg: char const * + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: @@ -25460,121 +25909,123 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) - Decompile a function. Multiple decompilations of the same function - return the same object. - decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) + decompile_many(outfile, funcaddrs, flags) -> bool Batch decompilation. Decompile all or the specified functions - decompile_many(outfile, funcaddrs, flags) -> bool - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - dstr(tif) -> char const * - @param tif (C++: const tinfo_t *) + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t Generate a dummy pointer type - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) + eamap_begin(map) -> eamap_iterator_t Get iterator pointing to the beginning of eamap_t. - eamap_begin(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) + eamap_clear(map) Clear eamap_t. - eamap_clear(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) + eamap_end(map) -> eamap_iterator_t Get iterator pointing to the end of eamap_t. - eamap_end(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) + eamap_erase(map, p) Erase current element from eamap_t. - eamap_erase(map, p) - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) + eamap_find(map, key) -> eamap_iterator_t Find the specified key in eamap_t. - eamap_find(map, key) -> eamap_iterator_t - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) + eamap_first(p) -> ea_t const & Get reference to the current map key. - eamap_first(p) -> ea_t const & - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) + eamap_free(map) Delete eamap_t instance. - eamap_free(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) + eamap_insert(map, key, val) -> eamap_iterator_t Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - eamap_insert(map, key, val) -> eamap_iterator_t - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -25585,14 +26036,16 @@ class eamap_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -25609,7 +26062,7 @@ class eamap_iterator_t(__builtin__.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -25620,39 +26073,40 @@ class eamap_iterator_t(__builtin__.object) Help on function eamap_new in module ida_hexrays: eamap_new(*args) + eamap_new() -> eamap_t Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) + eamap_next(p) -> eamap_iterator_t Move to the next element. - eamap_next(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) + eamap_prev(p) -> eamap_iterator_t Move to the previous element. - eamap_prev(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) + eamap_second(p) -> cinsnptrvec_t Get reference to the current map value. - eamap_second(p) -> cinsnptrvec_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) + eamap_size(map) -> size_t Get size of eamap_t. - eamap_size(map) -> size_t - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -25686,7 +26140,8 @@ class eamap_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> cinsnptrvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -25854,30 +26309,36 @@ class fnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -25886,7 +26347,8 @@ class fnumber_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) | dereference_const_uint16(self) -> uint16 const * @@ -25904,10 +26366,10 @@ class fnumber_t(__builtin__.object) | list of weak references to the object (if defined) | | fnum - | fnumber_t_fnum_get(self) -> fpvalue_t + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -25931,16 +26393,17 @@ class gco_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | append_to_list(self, *args) - | Append operand info to LIST. This function converts IDA register - | number or stack offset to a decompiler list. - | | append_to_list(self, list, mba) -> bool - | @param list: list to append to (C++: mlist_t *) - | @param mba: microcode object (C++: const mba_t *) + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object | | cvt_to_ivl(self, *args) - | Convert operand info to VIVL. The returned VIVL can be used, for - | example, in a call of get_valranges(). + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) | is_def(self) -> bool @@ -25961,13 +26424,19 @@ class gco_info_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag @@ -25981,172 +26450,171 @@ class gco_info_t(__builtin__.object) Help on function gen_microcode in module ida_hexrays: gen_microcode(*args) + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) get_ctype_name(op) -> char const * - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - returns true. - get_current_operand(out) -> bool - @param out (C++: gco_info_t *) + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) + get_float_type(width) -> tinfo_t Get a type of a floating point value with the specified width - get_float_type(width) -> tinfo_t - @param width: width of the desired type (C++: int) - @return: type info object + @param width: (C++: int) width of the desired type + @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) + get_hexrays_version() -> char const * Get decompiler version. The returned string is of the form <major>.<minor>.<revision>.<build-date> + + @return: pointer to version string. For example: "2.0.0.140605" Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - get_member_type(mptr, type) -> bool - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) + get_merror_desc(code, mba) -> str Get textual description of an error code - get_merror_desc(code, mba) -> str - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mba_t *) - @return: the error address + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) + get_mreg_name(reg, width, ud=None) -> str Get the microregister name. - get_mreg_name(reg, width, ud=None) -> str - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param out: (C++: qstring *) output buffer, may be nullptr + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - get_op_signness(op) -> type_sign_t - @param op (C++: ctype_t) + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) get_signed_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) + get_type(id, tif, guess) -> bool Get a global type. Global types are types of addressable objects and struct/union/enum types - get_type(id, tif, guess) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - get_unk_type(size) -> tinfo_t - @param size: size of the type in bytes (C++: int) + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) get_unsigned_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) - Get the 'vdui_t' instance associated to the TWidget - get_widget_vdui(f) -> vdui_t - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) - Skip assertions backward. - getb_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) - Skip assertions forward. - getf_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -26166,26 +26634,30 @@ class graph_chains_t(block_chains_vec_t) | __repr__ = _swig_repr(self) | | acquire(self, *args) + | acquire(self) | Lock the chains. | | for_all_chains(self, *args) + | for_all_chains(self, cv, gca_flags) -> int | Visit all chains | - | for_all_chains(self, cv, gca_flags) -> int - | @param cv: chain visitor (C++: chain_visitor_t &) - | @param gca_flags: combination of GCA_ bits (C++: int) + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) - | Are the chains locked? It is a good idea to lock the chains before - | using them. This ensures that they won't be recalculated and - | reallocated during the use. See the 'chain_keeper_t' class for that. + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) + | release(self) | Unlock the chains. | | swap(self, *args) | swap(self, r) - | @param r (C++: graph_chains_t &) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26204,7 +26676,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26214,19 +26687,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26239,16 +26713,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -26258,40 +26732,48 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -26311,22 +26793,24 @@ class graph_chains_t(block_chains_vec_t) Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) + has_cached_cfunc(ea) -> bool Do we have a cached decompilation result for 'ea'? - has_cached_cfunc(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function has_mcode_seloff in module ida_hexrays: has_mcode_seloff(*args) has_mcode_seloff(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) hexrays_alloc(size) -> void * - @param size (C++: size_t) + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -26337,15 +26821,17 @@ class hexrays_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, c, ea, buf=None) -> hexrays_failure_t | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, c, ea, buf) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: qstring const & + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -26364,13 +26850,13 @@ class hexrays_failure_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -26385,7 +26871,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) hexrays_free(ptr) - @param ptr (C++: void *) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -26396,36 +26883,43 @@ class hexwarn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26437,13 +26931,13 @@ class hexwarn_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -26463,15 +26957,19 @@ class hexwarns_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> hexwarn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | x: qvector< hexwarn_t > const & + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26480,22 +26978,28 @@ class hexwarns_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: hexwarn_t const & + | + | @param i: size_t + | @param v: hexwarn_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: hexwarn_t const & + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) | @@ -26506,7 +27010,6 @@ class hexwarns_t(__builtin__.object) | | begin(self, *args) | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26519,78 +27022,85 @@ class hexwarns_t(__builtin__.object) | | end(self, *args) | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) | erase(self, it) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator | + | @param it: qvector< hexwarn_t >::iterator | | erase(self, first, last) -> hexwarn_t - | first: qvector< hexwarn_t >::iterator - | last: qvector< hexwarn_t >::iterator + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) | extract(self) -> hexwarn_t | | find(self, *args) | find(self, x) -> hexwarn_t - | x: hexwarn_t const & | - | - | find(self, x) -> hexwarn_t - | x: hexwarn_t const & + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=hexwarn_t()) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | has(self, *args) | has(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | inject(self, *args) | inject(self, s, len) - | s: hexwarn_t * - | len: size_t + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator - | x: hexwarn_t const & + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: hexwarn_t const & | + | @param _newsize: size_t + | @param x: hexwarn_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< hexwarn_t > & + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) | truncate(self) @@ -26627,15 +27137,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | _ea: ea_t - | _lnnum: int - | _x: int - | _y: int | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __init__(self, _ea, p) -> history_item_t - | _ea: ea_t - | p: ctext_position_t const & + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -26643,10 +27154,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -26662,37 +27173,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | compare(self, *args) | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -26704,13 +27222,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y Help on class history_t in module ida_hexrays: @@ -26737,22 +27255,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | pop(self, *args) | pop(self) -> history_item_t | | push(self, *args) | push(self, v) - | v: history_item_t const & + | + | @param v: history_item_t const & | | top(self, *args) | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26771,35 +27293,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -26812,78 +27341,85 @@ class history_t(qvector_history_t) | | end(self, *args) | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -26900,314 +27436,329 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) - Check that your plugin is compatible with hex-rays decompiler. This - function must be called before calling any other decompiler function. - init_hexrays_plugin(flags=0) -> bool - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and is compatible with your - plugin + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: install_microcode_filter(*args) + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - install_microcode_filter(filter, install=True) -> bool - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - @return: success + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) + is_additive(op) -> bool Is additive operator? - is_additive(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) + is_assignment(op) -> bool Is assignment operator? - is_assignment(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) + is_binary(op) -> bool Is binary operator? - is_binary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) + is_bitop(op) -> bool Is bit related operator? - is_bitop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) + is_bool_type(type) -> bool Is a boolean type? - is_bool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) + is_break_consumer(op) -> bool Does a break statement influence the specified statement code? - is_break_consumer(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) + is_commutative(op) -> bool Is commutative operator? - is_commutative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) + is_inplace_def(type) -> bool Is struct/union/enum definition (not declaration)? - is_inplace_def(type) -> bool - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) - Is a kernel register? Kernel registers are temporary registers that - can be used freely. They may be used to store values that cross - instruction or basic block boundaries. Kernel registers do not map to - regular processor registers. See also 'mba_t::alloc_kreg()' - is_kreg(r) -> bool - @param r (C++: mreg_t) + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) + is_logical(op) -> bool Is logical operator? - is_logical(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) + is_loop(op) -> bool Is loop statement code? - is_loop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) + is_lvalue(op) -> bool Is Lvalue operator? - is_lvalue(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) is_may_access(maymust) -> bool - @param maymust (C++: maymust_t) + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) is_mcode_addsub(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) is_mcode_call(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) is_mcode_commutative(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) is_mcode_convertible_to_jmp(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) is_mcode_convertible_to_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) is_mcode_divmod(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) is_mcode_fpu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) is_mcode_j1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) is_mcode_jcond(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - is_mcode_propagatable(mcode) -> bool - @param mcode (C++: mcode_t) + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) is_mcode_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) is_mcode_set1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) is_mcode_shift(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) is_mcode_xdsu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) + is_multiplicative(op) -> bool Is multiplicative operator? - is_multiplicative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) + is_nonbool_type(type) -> bool Is definitely a non-boolean type? - is_nonbool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) + is_paf(t) -> bool Is a pointer, array, or function type? - is_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) + is_prepost(op) -> bool Is pre/post increment/decrement operator? - is_prepost(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) + is_ptr_or_array(t) -> bool Is a pointer or array type? - is_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) + is_relational(op) -> bool Is comparison operator? - is_relational(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) is_signed_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) + is_small_udt(tif) -> bool Is a small structure or union? - is_small_udt(tif) -> bool - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) + is_type_correct(ptr) -> bool Verify a type string. - is_type_correct(ptr) -> bool - @param ptr (C++: const type_t *) - @return: true if type string is correct + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) + is_unary(op) -> bool Is unary operator? - is_unary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) is_unsigned_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on class iterator in module ida_hexrays: @@ -27218,15 +27769,18 @@ class iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __init__(self, *args) | __init__(self, n=-1) -> iterator - | n: int + | + | @param n: int | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -27265,32 +27819,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t - | _off: uval_t - | _size: uval_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -27299,11 +27860,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) | compare(self, r) -> int - | r: ivl_t const & + | + | @param r: ivl_t const & | | contains(self, *args) | contains(self, off2) -> bool - | @param off2 (C++: uval_t) + | + | @param off2: uval_t | | dstr(self, *args) | dstr(self) -> char const * @@ -27313,19 +27876,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) | extend_to_cover(self, r) -> bool - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | includes(self, *args) | includes(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | intersect(self, *args) | intersect(self, r) - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | overlap(self, *args) | overlap(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27361,10 +27928,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -27388,16 +27955,16 @@ class ivl_with_name_t(__builtin__.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27419,31 +27986,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -27452,29 +28027,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) | add(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | add(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | add(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) | addmasked(self, ivs, mask) -> bool - | @param ivs (C++: const ivlset_t &) - | @param mask (C++: const ivl_t &) + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) | compare(self, r) -> int - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | contains(self, *args) | contains(self, off) -> bool - | @param off (C++: uval_t) + | + | @param off: uval_t | | count(self, *args) | count(self) -> asize_t @@ -27484,33 +28063,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) | has_common(self, ivl, strict=False) -> bool - | @param ivl (C++: const ivl_t &) - | @param strict (C++: bool) | + | @param ivl: ivl_t const & + | @param strict: bool | | has_common(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | includes(self, *args) | includes(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | intersect(self, *args) | intersect(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | sub(self, *args) | sub(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | sub(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | sub(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27546,7 +28129,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -27562,11 +28146,14 @@ class ivlset_t(uval_ivl_ivlset_t) | | single_value(self, *args) | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -27581,31 +28168,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) jcnd2set(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) lexcompare(a, b) -> int - a: mop_t const & - b: mop_t const & + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. Help on function locate_lvar in module ida_hexrays: locate_lvar(*args) + locate_lvar(out, func_ea, varname) -> bool Find a variable by name. - locate_lvar(out, func_ea, varname) -> bool - @param out: output buffer for the variable locator (C++: - lvar_locator_t *) - @param func_ea: function start address (C++: ea_t) - @param varname: variable name (C++: const char *) - @return: success Since VARNAME is not always enough to find the - variable, it may decompile the function. + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -27616,64 +28209,85 @@ class lvar_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -27686,10 +28300,10 @@ class lvar_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -27703,71 +28317,70 @@ class lvar_locator_t(__builtin__.object) Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) + lvar_mapping_begin(map) -> lvar_mapping_iterator_t Get iterator pointing to the beginning of lvar_mapping_t. - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) + lvar_mapping_clear(map) Clear lvar_mapping_t. - lvar_mapping_clear(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) + lvar_mapping_end(map) -> lvar_mapping_iterator_t Get iterator pointing to the end of lvar_mapping_t. - lvar_mapping_end(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) + lvar_mapping_erase(map, p) Erase current element from lvar_mapping_t. - lvar_mapping_erase(map, p) - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t Find the specified key in lvar_mapping_t. - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) + lvar_mapping_first(p) -> lvar_locator_t Get reference to the current map key. - lvar_mapping_first(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) + lvar_mapping_free(map) Delete lvar_mapping_t instance. - lvar_mapping_free(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -27778,14 +28391,16 @@ class lvar_mapping_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -27802,7 +28417,7 @@ class lvar_mapping_iterator_t(__builtin__.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27813,39 +28428,40 @@ class lvar_mapping_iterator_t(__builtin__.object) Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) + lvar_mapping_new() -> lvar_mapping_t Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) + lvar_mapping_next(p) -> lvar_mapping_iterator_t Move to the next element. - lvar_mapping_next(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) + lvar_mapping_prev(p) -> lvar_mapping_iterator_t Move to the previous element. - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) + lvar_mapping_second(p) -> lvar_locator_t Get reference to the current map value. - lvar_mapping_second(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) + lvar_mapping_size(map) -> size_t Get size of lvar_mapping_t. - lvar_mapping_size(map) -> size_t - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -27861,7 +28477,8 @@ class lvar_mapping_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> lvar_locator_t - | _Keyval: lvar_locator_t const & + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) | size(self) -> size_t @@ -27893,49 +28510,59 @@ class lvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t - | m: mba_t * - | i: int - | o: sval_t | + | @param m: mba_t * + | @param i: int + | @param o: sval_t | | __init__(self, r) -> lvar_ref_t - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: lvar_ref_t &) + | + | @param r: lvar_ref_t & | | var(self, *args) + | var(self) -> lvar_t | Retrieve the referenced variable. | | ---------------------------------------------------------------------- @@ -27948,13 +28575,13 @@ class lvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -27974,14 +28601,16 @@ class lvar_saved_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -28043,25 +28672,25 @@ class lvar_saved_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28078,15 +28707,19 @@ class lvar_saved_infos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_saved_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | x: qvector< lvar_saved_info_t > const & + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28095,22 +28728,28 @@ class lvar_saved_infos_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_saved_info_t const & + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_saved_info_t const & + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) | @@ -28121,7 +28760,6 @@ class lvar_saved_infos_t(__builtin__.object) | | begin(self, *args) | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -28134,78 +28772,85 @@ class lvar_saved_infos_t(__builtin__.object) | | end(self, *args) | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) | erase(self, it) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator | + | @param it: qvector< lvar_saved_info_t >::iterator | | erase(self, first, last) -> lvar_saved_info_t - | first: qvector< lvar_saved_info_t >::iterator - | last: qvector< lvar_saved_info_t >::iterator + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) | extract(self) -> lvar_saved_info_t | | find(self, *args) | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & | - | - | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_saved_info_t()) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_saved_info_t * - | len: size_t + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator - | x: lvar_saved_info_t const & + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_saved_info_t const & | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_saved_info_t > & + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) | truncate(self) @@ -28245,20 +28890,20 @@ class lvar_t(lvar_locator_t) | __repr__ = _swig_repr(self) | | accepts_type(self, *args) - | Check if the variable accept the specified type. Some types are - | forbidden (void, function types, wrong arrays, etc) - | | accepts_type(self, t, may_change_thisarg=False) -> bool - | @param t (C++: const tinfo_t &) - | @param may_change_thisarg (C++: bool) + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) + | append_list(self, mba, lst, pad_if_scattered=False) | Append local variable to mlist. | - | append_list(self, mba, lst, pad_if_scattered=False) - | @param mba: ptr to the current mba_t (C++: const mba_t *) - | @param lst: list to append to (C++: mlist_t *) - | @param pad_if_scattered (C++: bool) + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) | | clear_used(self, *args) | clear_used(self) @@ -28321,54 +28966,63 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) + | has_common(self, v) -> bool | Do variables overlap? | - | has_common(self, v) -> bool - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) + | has_common_bit(self, loc, width2) -> bool | Does the variable overlap with the specified location? | - | has_common_bit(self, loc, width2) -> bool - | @param loc (C++: const vdloc_t &) - | @param width2 (C++: asize_t) + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) + | has_regname(self) -> bool | Has a register name? (like _RAX) | | in_asm(self, *args) + | in_asm(self) -> bool | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) + | is_aliasable(self, mba) -> bool | Is the variable aliasable? | - | is_aliasable(self, mba) -> bool - | @param mba: ptr to the current mba_t Aliasable variables may be - | modified indirectly (through a pointer) (C++: const mba_t - | *) + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) + | is_automapped(self) -> bool | Was the variable automatically mapped to another variable? | | is_decl_unused(self, *args) + | is_decl_unused(self) -> bool | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) + | is_dummy_arg(self) -> bool | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) + | is_forced_var(self) -> bool | Is a forced variable? | | is_noptr_var(self, *args) + | is_noptr_var(self) -> bool | Variable type should not be a pointer. | | is_notarg(self, *args) + | is_notarg(self) -> bool | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) + | is_thisarg(self) -> bool | Is 'this' argument of a C++ member function? | | is_used_byref(self, *args) + | is_used_byref(self) -> bool | Was the address of the variable taken? | | set_arg_var(self, *args) @@ -28387,10 +29041,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) + | set_final_lvar_type(self, t) | Set final variable type. | - | set_final_lvar_type(self, t) - | @param t (C++: const tinfo_t &) + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) | set_floating_var(self) @@ -28399,17 +29053,16 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) - | Set variable type Note: this function does not modify the idb, only - | the lvar instance in the memory. For permanent changes see - | modify_user_lvars() Also, the variable type is not considered as final - | by the decompiler and may be modified later by the type derivation. In - | some cases set_final_var_type() may work better, but it does not do - | persistent changes to the database neither. - | | set_lvar_type(self, t, may_fail=False) -> bool - | @param t: new type (C++: const tinfo_t &) - | @param may_fail: if false and type is bad, interr (C++: bool) - | @return: success + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) | set_mapdst_var(self) @@ -28454,87 +29107,101 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) - | Change the variable width. We call the variable size 'width', it is - | represents the number of bytes. This function may change the variable - | type using 'set_lvar_type()' . - | | set_width(self, w, svw_flags=0) -> bool - | @param w: new width (C++: int) - | @param svw_flags: combination of SVW_... bits (C++: int) - | @return: success + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) - | Get variable type. + | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name + | has_nice_name(self) -> bool | Does the variable have a nice name? | | has_user_info + | has_user_info(self) -> bool | Has any user-defined information? | | has_user_name + | has_user_name(self) -> bool | Has user-defined name? | | has_user_type + | has_user_type(self) -> bool | Has user-defined type? | | is_arg_var + | is_arg_var(self) -> bool | Is the function argument? | | is_fake_var + | is_fake_var(self) -> bool | Is fake return variable? | | is_floating_var + | is_floating_var(self) -> bool | Used by a fpu insn? | | is_mapdst_var + | is_mapdst_var(self) -> bool | Other variable(s) map to this var? | | is_overlapped_var + | is_overlapped_var(self) -> bool | Is overlapped variable? | | is_result_var + | is_result_var(self) -> bool | Is the function result? | | is_spoiled_var + | is_spoiled_var(self) -> bool | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width + | is_unknown_width(self) -> bool | Do we know the width of the variable? | | mreg_done - | Have corresponding microregs been replaced by references to this - | variable? + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed + | typed(self) -> bool | Has the variable a type? | | used + | used(self) -> bool | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28547,57 +29214,76 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | compare(self, *args) | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -28610,10 +29296,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location Help on class lvar_uservec_t in module ida_hexrays: @@ -28634,20 +29320,21 @@ class lvar_uservec_t(__builtin__.object) | empty(self) -> bool | | find_info(self, *args) + | find_info(self, vloc) -> lvar_saved_info_t | find saved user settings for given var | - | find_info(self, vloc) -> lvar_saved_info_t - | @param vloc (C++: const lvar_locator_t &) + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) + | keep_info(self, v) | Preserve user settings for given var. | - | keep_info(self, v) - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: lvar_uservec_t &) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28659,19 +29346,19 @@ class lvar_uservec_t(__builtin__.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28697,37 +29384,36 @@ class lvars_t(qvector_lvar_t) | __repr__ = _swig_repr(self) | | find(self, *args) + | find(self, ll) -> lvar_t | Find variable at the specified location. | - | find(self, ll) -> lvar_t - | @param ll: variable location (C++: const lvar_locator_t &) - | @return: pointer to variable or NULL + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) + | find_input_lvar(self, argloc, _size) -> int | Find input variable at the specified location. | - | find_input_lvar(self, argloc, _size) -> int - | @param argloc: variable location (C++: const vdloc_t &) - | @param _size: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) + | find_lvar(self, location, width, defblk=-1) -> int | Find variable at the specified location. | - | find_lvar(self, location, width, defblk=-1) -> int - | @param location: variable location (C++: const vdloc_t &) - | @param width: variable size (C++: int) - | @param defblk: definition block of the lvar. -1 means any block (C++: - | int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) + | find_stkvar(self, spoff, width) -> int | Find stack variable at the specified location. | - | find_stkvar(self, spoff, width) -> int - | @param spoff: offset from the minimal sp (C++: sval_t) - | @param width: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28746,11 +29432,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28760,35 +29448,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | at = __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) | capacity(self) -> size_t @@ -28801,16 +29498,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t @@ -28820,51 +29517,61 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -28881,32 +29588,34 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - make_pointer(type) -> tinfo_t - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) - Flush the cached decompilation results. Erases a cache entry for the - specified function. - mark_cfunc_dirty(ea, close_views=False) -> bool - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -28931,7 +29640,8 @@ class mba_range_iterator_t(__builtin__.object) | | set(self, *args) | set(self, mbr) -> bool - | @param mbr (C++: const mba_ranges_t &) + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28943,10 +29653,10 @@ class mba_range_iterator_t(__builtin__.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -28966,11 +29676,12 @@ class mba_ranges_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t - | _pfn: func_t * | + | @param _pfn: func_t * | | __init__(self, r) -> mba_ranges_t - | r: rangevec_t const & + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -28999,10 +29710,10 @@ class mba_ranges_t(__builtin__.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag @@ -29029,66 +29740,62 @@ class mba_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) | _register(self) | | alloc_fict_ea(self, *args) - | Allocate a fictional address. This function can be used to allocate a - | new unique address for a new instruction, if re-using any existing - | address leads to conflicts. For example, if the last instruction of - | the function modifies R0 and falls through to the next function, it - | will be a tail call: LDM R0!, {R4,R7} end of the function start of - | another function In this case R0 generates two different lvars at the - | same address:one modified by LDManother that represents the return - | value from the tail call Another example: a third-party plugin makes a - | copy of an instruction. This may lead to the generation of two - | variables at the same address. Example 3: fictional addresses can be - | used for new instructions created while modifying the microcode. This - | function can be used to allocate a new unique address for a new - | instruction or a variable. The fictional address is selected from an - | unallocated address range. - | | alloc_fict_ea(self, real_ea) -> ea_t - | @param real_ea (C++: ea_t) - | @return: a unique fictional address + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address | | alloc_kreg(self, *args) + | alloc_kreg(self, size, check_size=True) -> mreg_t | Allocate a kernel register. | - | alloc_kreg(self, size, check_size=True) -> mreg_t - | @param size: size of the register in bytes (C++: size_t) - | @param check_size: if true, only the sizes that correspond to a size - | of a basic type will be accepted. (C++: bool) - | @return: allocated register. mr_none means failure. + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. | | alloc_lvars(self, *args) + | alloc_lvars(self) | Allocate local variables. Must be called only immediately after - | 'optimize_global()' , with no modifications to the microcode. Converts - | registers, stack variables, and similar operands into mop_l. This call - | will not fail because all necessary checks were performed in - | 'optimize_global()' . After this call the microcode reaches its final - | state. + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) + | analyze_calls(self, acflags) -> int | Analyze calls and determine calling conventions. | - | analyze_calls(self, acflags) -> int - | @param acflags: permitted actions that are necessary for successful - | detection of calling conventions. See Bits for - | analyze_calls() (C++: int) - | @return: number of calls. -1 means error. + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) - | Get input argument of the decompiled function. - | | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) | - | - | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) + | @param n: int | | argbase(self, *args) | argbase(self) -> sval_t @@ -29103,10 +29810,12 @@ class mba_t(__builtin__.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) - | Build control flow graph. This function may be called only once. It - | calculates the type of each basic block and the adjacency list. - | 'optimize_local()' calls this function if necessary. You need to call - | this function only before MMAT_LOCOPT. + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) | calc_shins_flags(self) -> int @@ -29122,50 +29831,50 @@ class mba_t(__builtin__.object) | | clr_mba_flags(self, *args) | clr_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | clr_mba_flags2(self, *args) | clr_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | code16_bit_removed(self, *args) | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) - | Combine blocks. This function merges blocks constituting linear flow. - | It calls 'remove_empty_and_unreachable_blocks()' as well. + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) - | Make a copy of a block. This function makes a simple copy of the - | block. It does not fix the predecessor and successor lists, they must - | be fixed if necessary. - | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | @param blk: block to copy (C++: mblock_t *) - | @param new_serial: position of the copied block (C++: int) - | @param cpblk_flags: combination of Batch decompilation bits ... bits - | (C++: int) - | @return: pointer to the new copy + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy | | create_helper_call(self, *args) + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t | Create a call of a helper function. | - | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t - | @param ea: The desired address of the instruction (C++: ea_t) - | @param helper: The helper name (C++: const char *) - | @param rettype: The return type (NULL or empty type means 'void') - | (C++: const tinfo_t *) - | @param callargs: The helper arguments (NULL-no arguments) (C++: const - | mcallargs_t *) - | @param out: The operand where the call result should be stored. If - | this argument is not NULL, "mov helper_call(), out" will - | be generated. Otherwise "call helper()" will be generated. - | Note: the size of this operand must be equal to the - | RETTYPE size (C++: const mop_t *) - | @return: pointer to the created instruction or NULL if error + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) | deleted_pairs(self) -> bool @@ -29177,60 +29886,57 @@ class mba_t(__builtin__.object) | display_valnums(self) -> bool | | dump(self, *args) - | Dump microcode to a file. The file will be created in the directory - | pointed by IDA_DUMPDIR envvar. Dump will be created only if IDA is run - | under debugger. + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) | dump_mba(self, _verify, title) - | @param _verify (C++: bool) - | @param title (C++: const char *) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) - | Find an operand in the microcode. This function tries to find the - | operand that matches LIST. Any operand that overlaps with LIST is - | considered as a match. - | | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | @param ctx: context information for the result (C++: op_parent_info_t - | *) - | @param ea: desired address of the operand (C++: ea_t) - | @param is_dest: search for destination operand? this argument may be - | ignored if the exact match could not be found (C++: - | bool) - | @param list: list of locations the correspond to the operand (C++: - | const mlist_t &) - | @return: pointer to the operand or NULL. + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits all instruction and | subinstructions. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | for_all_ops(self, mv) -> int | Visit all operands of all instructions. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) + | for_all_topinsns(self, mv) -> int | Visit all top level instructions. | - | for_all_topinsns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | free_kreg(self, *args) - | Free a kernel register. If wrong arguments are passed, this function - | will generate an internal error. - | | free_kreg(self, reg, size) - | @param reg: a previously allocated kernel register (C++: mreg_t) - | @param size: size of the register in bytes (C++: size_t) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) | generated_asserts(self) -> bool @@ -29242,12 +29948,13 @@ class mba_t(__builtin__.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) - | Get control graph. Call 'build_graph()' if you need the graph before - | MMAT_LOCOPT. + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) | get_ida_argloc(self, v) -> argloc_t - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) | get_lvars_region(self) -> ivl_t @@ -29259,14 +29966,9 @@ class mba_t(__builtin__.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) - | Get basic block by its serial number. - | | get_mblock(self, n) -> mblock_t - | @param n (C++: int) | - | - | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | @param n: int | | get_shadow_region(self, *args) | get_shadow_region(self) -> ivl_t @@ -29275,11 +29977,11 @@ class mba_t(__builtin__.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) - | Get information about various memory regions. We map the stack frame - | to the global memory, to some unused range. - | | get_std_region(self, idx) -> ivl_t - | @param idx (C++: memreg_index_t) + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) | graph_insns(self) -> bool @@ -29298,19 +30000,19 @@ class mba_t(__builtin__.object) | | idaloc2vd(self, *args) | idaloc2vd(self, loc, width) -> vdloc_t - | @param loc (C++: const argloc_t &) - | @param width (C++: int) + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) - | Insert a block in the middle of the mbl array. The very first block of - | microcode must be empty, it is the entry block. The very last block of - | microcode must be BLT_STOP, it is the exit block. Therefore inserting - | a new block before the entry point or after the exit block is not a - | good idea. - | | insert_block(self, bblk) -> mblock_t - | @param bblk: the new block will be inserted before BBLK (C++: int) - | @return: ptr to the new block + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) | is_cdtr(self) -> bool @@ -29329,7 +30031,8 @@ class mba_t(__builtin__.object) | | is_stkarg(self, *args) | is_stkarg(self, v) -> bool - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | is_thunk(self, *args) | is_thunk(self) -> bool @@ -29347,36 +30050,37 @@ class mba_t(__builtin__.object) | lvars_renamed(self) -> bool | | map_fict_ea(self, *args) - | Resolve a fictional address. This function provides a reverse of the - | mapping made by 'alloc_fict_ea()' . - | | map_fict_ea(self, fict_ea) -> ea_t - | @param fict_ea: fictional definition address (C++: ea_t) - | @return: the real instruction address + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address | | mark_chains_dirty(self, *args) - | Mark the microcode use-def chains dirty. Call this function is any - | inter-block data dependencies got changed because of your - | modifications to the microcode. Failing to do so may cause an internal - | error. + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) | may_refine_rettype(self) -> bool | | optimize_global(self, *args) - | Optimize microcode globally. This function applies various - | optimization methods until we reach the fixed point. After that it - | preallocates lvars unless reqmat forbids it. + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) + | optimize_local(self, locopt_bits) -> int | Optimize each basic block locally | - | optimize_local(self, locopt_bits) -> int - | @param locopt_bits: combination of Bits for optimize_local() bits - | (C++: int) - | @return: number of changes. 0 means nothing changed This function is - | called by the decompiler, usually there is no need to call it - | explicitly. + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) | optimized(self) -> bool @@ -29394,16 +30098,16 @@ class mba_t(__builtin__.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) + | remove_block(self, blk) -> bool | Delete a block. | - | remove_block(self, blk) -> bool - | @param blk: block to delete (C++: mblock_t *) - | @return: true if at least one of the other blocks became empty or - | unreachable + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | | remove_empty_and_unreachable_blocks(self, *args) - | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP - | won't be deleted. + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) | returns_fpval(self) -> bool @@ -29412,33 +30116,36 @@ class mba_t(__builtin__.object) | rtype_refined(self) -> bool | | save_snapshot(self, *args) + | save_snapshot(self, description) | Create and save microcode snapshot. | - | save_snapshot(self, description) - | @param description (C++: const char *) + | @param description: (C++: const char *) char const * | | saverest_done(self, *args) | saverest_done(self) -> bool | | serialize(self, *args) + | serialize(self) | Serialize mbl array into a sequence of bytes. | | set_maturity(self, *args) + | set_maturity(self, mat) -> bool | Set maturity level. | - | set_maturity(self, mat) -> bool - | @param mat (C++: mba_maturity_t) - | @return: true if it is time to stop analysis Plugins may use this - | function to skip some parts of the analysis. The maturity - | level cannot be decreased. + | @param mat: (C++: mba_maturity_t) enum mba_maturity_t + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) | set_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | set_mba_flags2(self, *args) | set_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | short_display(self, *args) | short_display(self) -> bool @@ -29451,11 +30158,13 @@ class mba_t(__builtin__.object) | | stkoff_ida2vd(self, *args) | stkoff_ida2vd(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) | stkoff_vd2ida(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | term(self, *args) | term(self) @@ -29471,25 +30180,25 @@ class mba_t(__builtin__.object) | | vd2idaloc(self, *args) | vd2idaloc(self, loc, width, spd) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) - | spd: sval_t | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t | | vd2idaloc(self, loc, width) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) + | verify(self, always) | Verify microcode consistency. | - | verify(self, always) - | @param always: if false, the check will be performed only if ida runs - | under debugger If any inconsistency is discovered, an - | internal error will be generated. We strongly recommend - | you to call this function before returing control to - | the decompiler from your callbacks, in the case if you - | modified the microcode. (C++: bool) + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. | | write_to_const_detected(self, *args) | write_to_const_detected(self) -> bool @@ -29499,7 +30208,10 @@ class mba_t(__builtin__.object) | | deserialize(*args) | deserialize(bytes) -> mba_t - | bytes: uchar const * + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29511,150 +30223,150 @@ class mba_t(__builtin__.object) | list of weak references to the object (if defined) | | aliased_args - | mba_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mba_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mba_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mba_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mba_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mba_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mba_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs | | deprecated_idb_node - | mba_t_deprecated_idb_node_get(self) -> netnode + | deprecated_idb_node | | entry_ea - | mba_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mba_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mba_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mba_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mba_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mba_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mba_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mba_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mba_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mba_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mba_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node | | idb_spoiled - | mba_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mba_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mba_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mba_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mba_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mba_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mba_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mba_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mba_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mba_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mba_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mba_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mba_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mba_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mba_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mba_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mba_t_qty_get(self) -> int + | qty | | reqmat - | mba_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mba_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mba_t_retsize_get(self) -> int + | retsize | | retvaridx - | mba_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mba_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mba_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mba_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mba_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mba_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mba_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mba_t_vars_get(self) -> lvars_t + | vars | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -29666,7 +30378,8 @@ Help on function mba_t_deserialize in module ida_hexrays: mba_t_deserialize(*args) mba_t_deserialize(bytes) -> mba_t - bytes: uchar const * + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -29689,54 +30402,55 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) + | get_du(self, gctype) -> graph_chains_t | Get def-use chains. | - | get_du(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | + | @param n: int | | get_ud(self, *args) + | get_ud(self, gctype) -> graph_chains_t | Get use-def chains. | - | get_ud(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) + | is_du_chain_dirty(self, gctype) -> bool | Is the def-use chain of the specified kind dirty? | - | is_du_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST redefined in the graph? | - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) + | is_ud_chain_dirty(self, gctype) -> bool | Is the use-def chain of the specified kind dirty? | - | is_ud_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST used in the graph? | - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29748,10 +30462,10 @@ class mbl_graph_t(simple_graph_t) | Data descriptors inherited from simple_graph_t: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -29763,9 +30477,10 @@ class mbl_graph_t(simple_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -29778,7 +30493,8 @@ class mbl_graph_t(simple_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -29788,65 +30504,77 @@ class mbl_graph_t(simple_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -29876,208 +30604,184 @@ class mblock_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) - | Append def-list of an operand. This function calculates list of - | locations that may or must be modified by the operand and appends it - | to LIST. - | | append_def_list(self, list, op, maymust) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the def list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) - | Append use-list of an operand. This function calculates list of - | locations that may or must be used by the operand and appends it to - | LIST. - | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the use list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @param mask: if only part of the operand should be considered, a - | bitmask can be used to specify which part. example: - | op=AX,mask=0xFF means that we will consider only AL. - | (C++: bitrange_t) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) - | Build def-list of an instruction. This function calculates list of - | locations that may or must be modified by the instruction. Examples: - | "stx ebx.4, ds.2, eax.4", may-list: all aliasable memory "stx ebx.4, - | ds.2, eax.4", must-list: empty Since STX uses EAX for indirect access, - | it may modify any aliasable memory. On the other hand, we cannot tell - | for sure which memory cells will be modified, this is why the must- - | list is empty. - | | build_def_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the def list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated def-list + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) + | build_lists(self, kill_deads) -> int | Build def-use lists and eliminate deads. | - | build_lists(self, kill_deads) -> int - | @param kill_deads: do delete dead instructions? (C++: bool) - | @return: the number of eliminated instructions Better mblock_t::call - | make_lists_ready() rather than this function. + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) - | Build use-list of an instruction. This function calculates list of - | locations that may or must be used by the instruction. Examples: "ldx - | ds.2, eax.4, ebx.4", may-list: all aliasable memory "ldx ds.2, eax.4, - | ebx.4", must-list: empty Since LDX uses EAX for indirect access, it - | may access any aliasable memory. On the other hand, we cannot tell for - | sure which memory cells will be accessed, this is why the must-list is - | empty. - | | build_use_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the use list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated use-list + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) - | Dump block info. This function is useful for debugging, see - | 'mba_t::dump' for info + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) | dump_block(self, title) - | @param title (C++: const char *) + | + | @param title: char const * | | empty(self, *args) | empty(self) -> bool | | find_access(self, *args) - | Find the instruction that accesses the specified operand. This - | function search inside one block. - | | find_access(self, op, parent, mend, fdflags) -> minsn_t - | @param op: operand to search for (C++: const mop_t &) - | @param parent (C++: minsn_t **) - | @param mend (C++: const minsn_t *) - | @param fdflags (C++: int) - | @return: the instruction that accesses the operand. this instruction - | may be a sub-instruction. to find out the top level - | instruction, check out *p_i1. NULL means 'not found'. + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param p_i1: ptr to ptr to a top level instruction. denotes the beginning of the + | search range. + | @param mend: (C++: const minsn_t *) minsn_t const * + | @param fdflags: (C++: int) + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) - | Find the first insn that uses the specified list in the insn range. - | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. Upon return LIST will - | contain only locations not redefined by insns [i1..result] + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) - | Find the first insn that redefines any part of the list in the insn - | range. - | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits subinstructions too. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: zero or the value returned by mv.visit_insn() See also - | mba_t::for_all_topinsns() + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) + | for_all_ops(self, mv) -> int | Visit all operands. This function visit subinstruction operands too. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: zero or the value returned by mv.visit_mop() + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) + | for_all_uses(self, list, i1, i2, mmv) -> int | Visit all operands that use LIST. | - | for_all_uses(self, list, i1, i2, mmv) -> int - | @param list: ptr to the list of locations. it may be modified: parts - | that get redefined by the instructions in [i1,i2) will be - | deleted. (C++: mlist_t *) - | @param i1: starting instruction. must be a top level insn. (C++: - | minsn_t *) - | @param i2: ending instruction (excluded). must be a top level insn. - | (C++: minsn_t *) - | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) - | @return: zero or the value returned by mmv.visit_mop() + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) - | Calculate number of regular instructions in the block. Assertions are - | skipped by this function. + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) - | Find possible values for a block. - | | get_valranges(self, res, vivl, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) - | + | Find possible values for an instruction. | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | m: minsn_t const * - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) + | insert_into_block(self, nm, om) -> minsn_t | Insert instruction into the doubly linked list | - | insert_into_block(self, nm, om) -> minsn_t - | @param nm: new instruction (C++: minsn_t *) - | @param om: existing instruction, part of the doubly linked list if - | NULL, then the instruction will be inserted at the - | beginning of the list NM will be inserted immediately after - | OM (C++: minsn_t *) - | @return: pointer to NM + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) | is_branch(self) -> bool @@ -30089,32 +30793,26 @@ class mblock_t(__builtin__.object) | is_nway(self) -> bool | | is_redefined(self, *args) + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list redefined by the specified instructions? | - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) - | Is the right hand side of the instruction redefined the insn range? - | "right hand side" corresponds to the source operands of the - | instruction. - | | is_rhs_redefined(self, ins, i1, i2) -> bool - | @param ins: instruction to consider (C++: const minsn_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) | is_simple_goto_block(self) -> bool @@ -30126,20 +30824,16 @@ class mblock_t(__builtin__.object) | is_unknown_call(self) -> bool | | is_used(self, *args) + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list used by the specified instruction range? | - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) | lists_dirty(self) -> bool @@ -30151,12 +30845,11 @@ class mblock_t(__builtin__.object) | make_lists_ready(self) -> int | | make_nop(self, *args) - | Erase the instruction (convert it to nop) and mark the lists dirty. - | This is the recommended function to use because it also marks the - | block use-def lists dirty. - | | make_nop(self, m) - | @param m (C++: minsn_t *) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) | mark_lists_dirty(self) @@ -30165,49 +30858,57 @@ class mblock_t(__builtin__.object) | needs_propagation(self) -> bool | | npred(self, *args) + | npred(self) -> int | Get number of block predecessors. | | nsucc(self, *args) + | nsucc(self) -> int | Get number of block successors. | | optimize_block(self, *args) + | optimize_block(self) -> int | Optimize a basic block. Usually there is no need to call this function - | explicitly because the decompiler will call it itself if - | 'optinsn_t::func' or 'optblock_t::func' return non-zero. + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int | Optimize one instruction in the context of the block. | - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | @param m: pointer to a top level instruction (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the block This function may change - | other instructions in the block too. However, it will not - | destroy top level instructions (it may convert them to - | nop's). This function performs only intrablock modifications. - | See also minsn_t::optimize_solo() + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) - | Remove a jump at the end of the block if it is useless. This function - | preserves any side effects when removing a useless jump. Both - | conditional and unconditional jumps are handled (and jtbl too). This - | function deletes useless jumps, not only replaces them with a nop. - | (please note that \optimize_insn does not handle useless jumps). + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) | pred(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) + | remove_from_block(self, m) -> minsn_t | Remove instruction from the doubly linked list | - | remove_from_block(self, m) -> minsn_t - | @param m: instruction to remove The removed instruction is not - | deleted, the caller gets its ownership (C++: minsn_t *) - | @return: pointer to the next instruction + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) | request_demote64(self) @@ -30217,7 +30918,8 @@ class mblock_t(__builtin__.object) | | succ(self, *args) | succ(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -30232,70 +30934,70 @@ class mblock_t(__builtin__.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mba_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30317,70 +31019,79 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | rarg: mop_t const & + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) | copy_mop(self, op) - | @param op (C++: const mop_t &) + | + | @param op: mop_t const & | | dstr(self, *args) | dstr(self) -> char const * | | make_int(self, *args) | make_int(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) | make_uint(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) | set_regarg(self, mr, sz, tif) - | @param mr (C++: mreg_t) - | @param sz (C++: int) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & | | set_regarg(self, mr, tif) - | @param mr (C++: mreg_t) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param tif: tinfo_t const & | | set_regarg(self, mr, dt, sign=type_unsigned) - | @param mr (C++: mreg_t) - | dt: char - | sign: type_sign_t + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea | | flags - | mcallarg_t_flags_get(self) -> uint32 + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30393,15 +31104,18 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -30465,90 +31179,84 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -30570,173 +31278,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | empty(self, *args) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -30745,122 +31497,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -30875,29 +31627,32 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -30910,140 +31665,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -31063,36 +31814,37 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -31134,7 +31886,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -31145,13 +31897,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum Help on class mcallargs_t in module ida_hexrays: @@ -31162,15 +31914,19 @@ class mcallargs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mcallarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | x: qvector< mcallarg_t > const & + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31180,33 +31936,39 @@ class mcallargs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: mcallarg_t const & + | + | @param i: size_t + | @param v: mcallarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: mcallarg_t const & + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | at(self, *args) | at(self, _idx) -> mcallarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -31219,78 +31981,85 @@ class mcallargs_t(__builtin__.object) | | end(self, *args) | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) | erase(self, it) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator | + | @param it: qvector< mcallarg_t >::iterator | | erase(self, first, last) -> mcallarg_t - | first: qvector< mcallarg_t >::iterator - | last: qvector< mcallarg_t >::iterator + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) | extract(self) -> mcallarg_t | | find(self, *args) | find(self, x) -> mcallarg_t - | x: mcallarg_t const & | - | - | find(self, x) -> mcallarg_t - | x: mcallarg_t const & + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mcallarg_t()) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: mcallarg_t * - | len: size_t + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator - | x: mcallarg_t const & + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: mcallarg_t const & | + | @param _newsize: size_t + | @param x: mcallarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< mcallarg_t > & + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) | truncate(self) @@ -31322,15 +32091,19 @@ class mcallinfo_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | _callee: ea_t - | _sargs: int + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, size=-1, shins_flags=0x04|0x02) - | size: int - | shins_flags: int + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) | dstr(self) -> char const * @@ -31343,11 +32116,13 @@ class mcallinfo_t(__builtin__.object) | | lexcompare(self, *args) | lexcompare(self, f) -> int - | @param f (C++: const mcallinfo_t &) + | + | @param f: mcallinfo_t const & | | set_type(self, *args) | set_type(self, type) -> bool - | @param type (C++: const tinfo_t &) + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31359,58 +32134,58 @@ class mcallinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31427,30 +32202,36 @@ class mcases_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -31459,7 +32240,8 @@ class mcases_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: mcases_t const & + | + | @param r: mcases_t const & | | dstr(self, *args) | dstr(self) -> char const * @@ -31469,14 +32251,16 @@ class mcases_t(__builtin__.object) | | resize(self, *args) | resize(self, s) - | @param s (C++: int) + | + | @param s: int | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | @param r (C++: mcases_t &) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31488,13 +32272,13 @@ class mcases_t(__builtin__.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31506,7 +32290,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) mcode_modifies_d(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -31519,25 +32304,26 @@ class microcode_filter_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) + | match(self, cdg) -> bool | check if the filter object is to be appied | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) - | @return: success + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31566,15 +32352,17 @@ class minsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t - | _ea: ea_t | + | @param _ea: ea_t | | __init__(self, m) -> minsn_t - | m: minsn_t const & + | + | @param m: minsn_t const & | | __lt__(self, *args) | __lt__(self, ri) -> bool - | ri: minsn_t const & + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -31590,9 +32378,7 @@ class minsn_t(__builtin__.object) | _ensure_ownership_transferrable(self, v) | | _make_nop(self, *args) - | Convert instruction to nop. This function erases all info but the - | prev/next fields. In most cases it is better to use - | 'mblock_t::make_nop()' , which also marks the block lists as dirty. + | _make_nop(self) | | _maybe_disown_and_deregister(self) | @@ -31611,7 +32397,10 @@ class minsn_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) @@ -31644,97 +32433,85 @@ class minsn_t(__builtin__.object) | clr_tailcall(self) | | contains_call(self, *args) + | contains_call(self, with_helpers=False) -> bool | Does the instruction contain a call? | - | contains_call(self, with_helpers=False) -> bool - | @param with_helpers (C++: bool) + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) + | contains_opcode(self, mcode) -> bool | Does the instruction have the specified opcode? This function searches | subinstructions as well. | - | contains_opcode(self, mcode) -> bool - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: (C++: mcode_t) opcode to search for. | | dstr(self, *args) + | dstr(self) -> char const * | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) - | Compare instructions. This is the main comparison function for - | instructions. - | | equal_insns(self, m, eqflags) -> bool - | @param m: instruction to compare with (C++: const minsn_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) + | find_call(self, with_helpers=False) -> minsn_t | Find a call instruction. Check for the current instruction and its | subinstructions. | - | find_call(self, with_helpers=False) -> minsn_t - | @param with_helpers: consider helper calls as well? (C++: bool) + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) - | Find an operand that is a subinsruction with the specified opcode. - | This function checks only the 'l' and 'r' operands of the current - | insn. - | | find_ins_op(self, op=m_nop) -> minsn_t - | @param op: opcode to search for (C++: mcode_t) - | @return: &l or &r or NULL + | + | @param op: enum mcode_t | | find_num_op(self, *args) - | Find a numeric operand of the current instruction. This function - | checks only the 'l' and 'r' operands of the current insn. + | find_num_op(self) -> mop_t | | find_opcode(self, *args) - | Find a (sub)insruction with the specified opcode. - | | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) | - | - | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: enum mcode_t | | for_all_insns(self, *args) - | Visit all instructions. This function visits the instruction itself - | and all its subinstructions. - | | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) - | Visit all instruction operands. This function visits subinstruction - | operands as well. - | | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) + | get_role(self) -> funcrole_t | Get the function role of a call. | | get_split_size(self, *args) | get_split_size(self) -> int | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Does the instruction have a side effect? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? stx is always considered as - | having side effects. Apart from ldx/std - | only call may have side effects. (C++: - | bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) + | is_after(self, m) -> bool | Is the instruction after the specified one? | - | is_after(self, m) -> bool - | @param m: the instruction to compare against in the list (C++: const - | minsn_t *) + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) | is_alloca(self) -> bool @@ -31743,15 +32520,13 @@ class minsn_t(__builtin__.object) | is_assert(self) -> bool | | is_between(self, *args) + | is_between(self, m1, m2) -> bool | Is the instruction in the specified range of instructions? | - | is_between(self, m1, m2) -> bool - | @param m1: beginning of the range in the doubly linked list (C++: - | const minsn_t *) - | @param m2: end of the range in the doubly linked list (excluded, may - | be NULL) This function assumes that m1 and m2 belong to the - | same basic block and they are top level instructions. (C++: - | const minsn_t *) + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) | is_bswap(self) -> bool @@ -31775,13 +32550,12 @@ class minsn_t(__builtin__.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) - | Is a helper call with the specified name? Helper calls usually have - | well-known function names (see 'Well known function names' ) but they - | may have any other name. The decompiler does not assume any special - | meaning for non-well-known names. - | | is_helper(self, name) -> bool - | @param name (C++: const char *) + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) | is_ignlowsrc(self) -> bool @@ -31808,10 +32582,11 @@ class minsn_t(__builtin__.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) + | is_noret_call(self, flags=0) -> bool | Is a non-returing call? | - | is_noret_call(self, flags=0) -> bool - | @param flags (C++: int) + | @param ignore_noret_icall: if set, indirect calls to noret functions will return + | false | | is_optional(self, *args) | is_optional(self) -> bool @@ -31829,49 +32604,52 @@ class minsn_t(__builtin__.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) + | is_unknown_call(self) -> bool | Is an unknown call? Unknown calls are calls without the argument list - | ( 'mcallinfo_t' ). Usually the argument lists are determined by - | 'mba_t::analyze_calls()' . Unknown calls exist until the MMAT_CALLS - | maturity level. See also mblock_t::is_call_block + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) | is_wild_match(self) -> bool | | lexcompare(self, *args) | lexcompare(self, ri) -> int - | @param ri (C++: const minsn_t &) + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) - | Does the instruction modify its 'd' operand? Some instructions (e.g. - | m_stx) do not modify the 'd' operand. + | modifes_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) - | Optimize one instruction without context. This function does not have - | access to the instruction context (the previous and next instructions - | in the list, the block number, etc). It performs only basic - | optimizations that are available without this info. - | | optimize_solo(self, optflags=0) -> int - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes, 0-unchanged See also - | mblock_t::optimize_insn() + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int | Optimize instruction in its context. Do not use this function, use | mblock_t::optimize() | - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | @param blk (C++: mblock_t *) - | @param top (C++: minsn_t *) - | @param parent (C++: minsn_t *) - | @param converted_call (C++: ea_t *) - | @param optflags (C++: int) + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | @@ -31916,7 +32694,8 @@ class minsn_t(__builtin__.object) | | set_split_size(self, *args) | set_split_size(self, s) - | @param s (C++: int) + | + | @param s: int | | set_tailcall(self, *args) | set_tailcall(self) @@ -31925,18 +32704,17 @@ class minsn_t(__builtin__.object) | set_wild_match(self) | | setaddr(self, *args) - | Change the instruction address. This function modifies subinstructions - | as well. - | | setaddr(self, new_ea) - | @param new_ea (C++: ea_t) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) - | Swap two instructions. The prev/next fields are not modified by this - | function because it would corrupt the doubly linked list. - | | swap(self, m) - | @param m (C++: minsn_t &) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) | was_noret_icall(self) -> bool @@ -31954,33 +32732,33 @@ class minsn_t(__builtin__.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -32007,9 +32785,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -32038,16 +32817,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -32060,13 +32839,15 @@ class mlist_mop_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op) -> int - | @param op (C++: mop_t *) + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32078,19 +32859,19 @@ class mlist_mop_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32107,36 +32888,44 @@ class mlist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | ivl: ivl_t const & + | __init__(self, ivl) -> mlist_t | + | @param ivl: ivl_t const & | | __init__(self, r, size) -> mlist_t - | r: mreg_t - | size: int + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -32145,32 +32934,35 @@ class mlist_t(__builtin__.object) | | add(self, *args) | add(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | add(self, r) -> bool - | @param r (C++: mreg_t) | + | @param r: rlist_t const & | | add(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | add(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | addmem(self, *args) | addmem(self, ea, size) -> bool - | @param ea (C++: ea_t) - | @param size (C++: asize_t) + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int - | r: mlist_t const & + | + | @param r: mlist_t const & | | count(self, *args) | count(self) -> asize_t @@ -32183,53 +32975,62 @@ class mlist_t(__builtin__.object) | | has(self, *args) | has(self, r) -> bool - | @param r (C++: mreg_t) + | + | @param r: mreg_t | | has_all(self, *args) | has_all(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) | has_any(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) | has_common(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | has_memory(self, *args) | has_memory(self) -> bool | | includes(self, *args) | includes(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | intersect(self, *args) | intersect(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) | is_subset_of(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | sub(self, *args) | sub(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | sub(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | sub(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: mlist_t &) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32241,10 +33042,10 @@ class mlist_t(__builtin__.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -32269,55 +33070,64 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | v: uint64 - | _ea: ea_t - | n: int + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | update_value(self, *args) | update_value(self, val64) - | @param val64 (C++: uint64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32335,33 +33145,31 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) + modify_user_lvar_info(func_ea, mli_flags, info) -> bool Modify saved local variable settings of one variable. - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - @param func_ea: function start address (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) + modify_user_lvars(entry_ea, mlv) -> bool Modify saved local variable settings. - modify_user_lvars(entry_ea, mlv) -> bool - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -32377,28 +33185,31 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | ra: mop_addr_t const & + | __init__(self, ra) -> mop_addr_t | + | @param ra: mop_addr_t const & | | __init__(self, ra, isz, osz) -> mop_addr_t - | ra: mop_t const & - | isz: int - | osz: int + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | | lexcompare(self, *args) | lexcompare(self, ra) -> int - | @param ra (C++: const mop_addr_t &) + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -32414,15 +33225,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -32486,90 +33300,84 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -32588,170 +33396,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) | dstr(self) -> char const * @@ -32760,11 +33615,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -32773,122 +33628,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -32903,29 +33758,32 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -32938,136 +33796,131 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -33087,36 +33940,37 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -33158,7 +34012,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -33169,13 +34023,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum Help on class mop_pair_t in module ida_hexrays: @@ -33199,10 +34053,10 @@ class mop_pair_t(__builtin__.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -33222,24 +34076,29 @@ class mop_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | rop: mop_t const & + | __init__(self, rop) -> mop_t | + | @param rop: mop_t const & | | __init__(self, _r, _s) -> mop_t - | _r: mreg_t - | _s: int + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -33305,90 +34164,84 @@ class mop_t(__builtin__.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -33407,170 +34260,217 @@ class mop_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) | dstr(self) -> char const * @@ -33579,11 +34479,11 @@ class mop_t(__builtin__.object) | empty(self) -> bool | | equal_mops(self, *args) + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) | erase(self) @@ -33592,122 +34492,122 @@ class mop_t(__builtin__.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) | is_lowaddr(self) -> bool | | is_mob(self, *args) + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -33722,29 +34622,32 @@ class mop_t(__builtin__.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) @@ -33757,140 +34660,136 @@ class mop_t(__builtin__.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) | probably_floating(self) -> bool @@ -33910,36 +34809,37 @@ class mop_t(__builtin__.object) | set_undef_val(self) | | shift_mop(self, *args) - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) | zero(self) @@ -33981,7 +34881,7 @@ class mop_t(__builtin__.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -33992,7 +34892,7 @@ class mop_t(__builtin__.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -34001,7 +34901,7 @@ class mop_t(__builtin__.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34025,23 +34925,25 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op, type, is_target) -> int - | @param op (C++: mop_t *) - | @param type (C++: const tinfo_t *) - | @param is_target (C++: bool) + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -34062,16 +34964,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -34082,15 +34984,19 @@ class mopvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mop_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | x: qvector< mop_t > const & + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34100,33 +35006,39 @@ class mopvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: mop_t const & + | + | @param i: size_t + | @param v: mop_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: mop_t const & + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | at(self, *args) | at(self, _idx) -> mop_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) | capacity(self) -> size_t @@ -34139,78 +35051,85 @@ class mopvec_t(__builtin__.object) | | end(self, *args) | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) | erase(self, it) -> mop_t - | it: qvector< mop_t >::iterator | + | @param it: qvector< mop_t >::iterator | | erase(self, first, last) -> mop_t - | first: qvector< mop_t >::iterator - | last: qvector< mop_t >::iterator + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) | extract(self) -> mop_t | | find(self, *args) | find(self, x) -> mop_t - | x: mop_t const & | - | - | find(self, x) -> mop_t - | x: mop_t const & + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mop_t()) - | x: mop_t const & + | + | @param x: mop_t const & | | has(self, *args) | has(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | inject(self, *args) | inject(self, s, len) - | s: mop_t * - | len: size_t + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> mop_t - | it: qvector< mop_t >::iterator - | x: mop_t const & + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: mop_t const & + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: mop_t const & | + | @param _newsize: size_t + | @param x: mop_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< mop_t > & + | + | @param r: qvector< mop_t > & | | truncate(self, *args) | truncate(self) @@ -34236,45 +35155,46 @@ class mopvec_t(__builtin__.object) Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) + mreg2reg(reg, width) -> int Map a microregister to a processor register. - mreg2reg(reg, width) -> int - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - must_mcode_close_block(mcode, including_calls) -> bool - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case: unknown - calls (is_unknown_call) are considered as - closing opcodes. (C++: bool) + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) negate_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) + negated_relation(op) -> ctype_t Negate a comparison operator. For example, cot_sge becomes cot_slt. - negated_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -34285,44 +35205,57 @@ class number_format_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t - | _opnum: int + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | | get_radix(self, *args) + | get_radix(self) -> int | Get number radix + | + | @return: 2,8,10, or 16 | | has_unmutable_type(self, *args) | has_unmutable_type(self) -> bool | | is_char(self, *args) + | is_char(self) -> bool | Is a character constant? | | is_dec(self, *args) + | is_dec(self) -> bool | Is a decimal number? | | is_enum(self, *args) + | is_enum(self) -> bool | Is a symbolic constant? | | is_fixed(self, *args) - | Is number representation fixed? Fixed representation cannot be - | modified by the decompiler + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) + | is_hex(self) -> bool | Is a hexadecimal number? | | is_numop(self, *args) + | is_numop(self) -> bool | Is a number? | | is_oct(self, *args) + | is_oct(self) -> bool | Is a octal number? | | is_stroff(self, *args) + | is_stroff(self) -> bool | Is a structure field offset? | | needs_to_be_inverted(self, *args) - | Does the number need to be negated or bitwise negated? Returns true if - | the user requested a negation but it is not done yet + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34334,25 +35267,25 @@ class number_format_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34369,9 +35302,10 @@ class op_parent_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34385,19 +35319,19 @@ class op_parent_info_t(__builtin__.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34408,37 +35342,37 @@ class op_parent_info_t(__builtin__.object) Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) - Does operator use the 'x' field of 'cexpr_t' ? - op_uses_x(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) - Does operator use the 'y' field of 'cexpr_t' ? - op_uses_y(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) - Does operator use the 'z' field of 'cexpr_t' ? - op_uses_z(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - open_pseudocode(ea, flags) -> vdui_t - @param ea: function to decompile (C++: ea_t) - @param flags: a combination of OPF_ flags (C++: int) - @return: false if failed + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -34449,38 +35383,46 @@ class operand_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t - | _ea: ea_t - | _opnum: int + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34492,10 +35434,10 @@ class operand_locator_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -34517,21 +35459,20 @@ class optblock_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optblock_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) - | Optimize a block. This function usually performs the optimizations - | that require analyzing the entire block and/or its neighbors. For - | example it can recognize patterns and perform conversions like: b0: - | b0: ... ... jnz x, 0, @b2 => jnz x, 0, @b2 b1: b1: add x, 0, y mov x, - | y ... ... - | | func(self, blk) -> int - | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) - | @return: number of changes made to the block. See also - | mark_lists_dirty. + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) | install(self) @@ -34568,31 +35509,29 @@ class optinsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optinsn_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) + | func(self, blk, ins, optflags) -> int | Optimize an instruction. | - | func(self, blk, ins, optflags) -> int - | @param blk: current basic block. maybe NULL, which means that the - | instruction must be optimized without context (C++: - | mblock_t *) - | @param ins: instruction to optimize; it is always a top-level - | instruction. the callback may not delete the instruction - | but may convert it into nop (see mblock_t::make_nop ). to - | optimize sub-instructions, visit them using - | minsn_visitor_t . sub-instructions may not be converted - | into nop but can be converted to "mov x,x". for example: - | add x,0,x => mov x,x this callback may change other - | instructions in the block, but should do this with care, - | e.g. to no break the propagation algorithm if called with - | OPTI_NO_LDXOPT. (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the instruction. if after this call - | the instruction's use/def lists have changed, you must mark - | the block level lists as dirty (see mark_lists_dirty) + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) | install(self) @@ -34621,228 +35560,38 @@ class optinsn_t(__builtin__.object) Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) + parse_user_call(udc, decl, silent) -> bool Convert function type declaration into internal structure - parse_user_call(udc, decl, silent) -> bool - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) + partial_type_num(type) -> int Calculate number of partial subtypes. - partial_type_num(type) -> int - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - print_vdloc(loc, nbytes) - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(__builtin__.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | x: qlist< cinsn_t > const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | - | erase(self, p) - | p: qlist_cinsn_t_iterator - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | insert(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | x: cinsn_t const & - | - | push_front(self, *args) - | push_front(self, x) - | x: cinsn_t const & - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) - | remove(self, v) -> bool - | v: cinsn_t const & - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | x: qlist< cinsn_t > & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qlist_cinsn_t> - | delete_qlist_cinsn_t(self) - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(__builtin__.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __next__(self, *args) - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | next = __next__(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qlist_cinsn_t_iterator> - | delete_qlist_cinsn_t_iterator(self) - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -34858,15 +35607,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t - | f: cfunc_t const * - | tags: bool + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) | get_s(self) -> qstring @@ -34880,7 +35633,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -34888,16 +35641,19 @@ class qstring_printer_t(vc_printer_t) | __disown__(self) | | oneliner(self, *args) + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data and other attributes inherited from vc_printer_t: @@ -34915,17 +35671,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) qswap(a, b) - a: cinsn_t & - b: cinsn_t & + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -34936,15 +35693,19 @@ class qvector_carg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | x: qvector< carg_t > const & + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34953,22 +35714,28 @@ class qvector_carg_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) | @@ -34979,7 +35746,6 @@ class qvector_carg_t(__builtin__.object) | | begin(self, *args) | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -34992,78 +35758,85 @@ class qvector_carg_t(__builtin__.object) | | end(self, *args) | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -35095,15 +35868,19 @@ class qvector_ccase_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | x: qvector< ccase_t > const & + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35112,22 +35889,28 @@ class qvector_ccase_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) | @@ -35138,7 +35921,6 @@ class qvector_ccase_t(__builtin__.object) | | begin(self, *args) | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35151,78 +35933,85 @@ class qvector_ccase_t(__builtin__.object) | | end(self, *args) | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -35254,15 +36043,19 @@ class qvector_history_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | x: qvector< history_item_t > const & + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35272,33 +36065,39 @@ class qvector_history_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | at(self, *args) | at(self, _idx) -> history_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35311,78 +36110,85 @@ class qvector_history_t(__builtin__.object) | | end(self, *args) | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -35414,15 +36220,19 @@ class qvector_lvar_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | x: qvector< lvar_t > const & + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35431,22 +36241,28 @@ class qvector_lvar_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) | @@ -35457,7 +36273,6 @@ class qvector_lvar_t(__builtin__.object) | | begin(self, *args) | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) | capacity(self) -> size_t @@ -35470,78 +36285,85 @@ class qvector_lvar_t(__builtin__.object) | | end(self, *args) | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t | | find(self, *args) | find(self, x) -> lvar_t - | x: lvar_t const & | - | - | find(self, x) -> lvar_t - | x: lvar_t const & + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -35567,113 +36389,116 @@ class qvector_lvar_t(__builtin__.object) Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) + reg2mreg(reg) -> mreg_t Map a processor register to a microregister. - reg2mreg(reg) -> mreg_t - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) remitem(e) - @param e (C++: const citem_t *) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. Help on function rename_lvar in module ida_hexrays: rename_lvar(*args) + rename_lvar(func_ea, oldname, newname) -> bool Rename a local variable. - rename_lvar(func_ea, oldname, newname) -> bool - @param func_ea: function start address (C++: ea_t) - @param oldname: old name of the variable (C++: const char *) - @param newname: new name of the variable (C++: const char *) - @return: success This is a convenience function. For bulk renaming - consider using modify_user_lvars. + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) + restore_user_cmts(func_ea) -> user_cmts_t Restore user defined comments from the database. - restore_user_cmts(func_ea) -> user_cmts_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) + restore_user_defined_calls(udcalls, func_ea) -> bool Restore user defined function calls from the database. - restore_user_defined_calls(udcalls, func_ea) -> bool - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) + restore_user_iflags(func_ea) -> user_iflags_t Restore user defined citem iflags from the database. - restore_user_iflags(func_ea) -> user_iflags_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) + restore_user_labels(func_ea) -> user_labels_t Restore user defined labels from the database. - restore_user_labels(func_ea) -> user_labels_t - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() Help on function restore_user_labels2 in module ida_hexrays: restore_user_labels2(*args) restore_user_labels2(func_ea, func=None) -> user_labels_t - @param func_ea (C++: ea_t) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) + restore_user_lvar_settings(lvinf, func_ea) -> bool Restore user defined local variable settings in the database. - restore_user_lvar_settings(lvinf, func_ea) -> bool - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) + restore_user_numforms(func_ea) -> user_numforms_t Restore user defined number formats from the database. - restore_user_numforms(func_ea) -> user_numforms_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) + restore_user_unions(func_ea) -> user_unions_t Restore user defined union field selections from the database. - restore_user_unions(func_ea) -> user_unions_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -35689,12 +36514,14 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | m: rlist_t const & + | __init__(self, m) -> rlist_t | + | @param m: rlist_t const & | | __init__(self, reg, width) -> rlist_t - | reg: mreg_t - | width: int + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -35718,46 +36545,55 @@ class rlist_t(bitset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | add(self, *args) | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) | back(self) -> int @@ -35770,19 +36606,24 @@ class rlist_t(bitset_t) | | compare(self, *args) | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | empty(self, *args) | empty(self) -> bool @@ -35792,77 +36633,91 @@ class rlist_t(bitset_t) | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -35876,81 +36731,74 @@ class rlist_t(bitset_t) Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) + save_user_cmts(func_ea, user_cmts) Save user defined comments into the database. - save_user_cmts(func_ea, user_cmts) - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) + save_user_defined_calls(func_ea, udcalls) Save user defined local function calls into the database. - save_user_defined_calls(func_ea, udcalls) - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) + save_user_iflags(func_ea, iflags) Save user defined citem iflags into the database. - save_user_iflags(func_ea, iflags) - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) + save_user_labels(func_ea, user_labels) Save user defined labels into the database. - save_user_labels(func_ea, user_labels) - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels Help on function save_user_labels2 in module ida_hexrays: save_user_labels2(*args) save_user_labels2(func_ea, user_labels, func=None) - @param func_ea (C++: ea_t) - @param user_labels (C++: const user_labels_t *) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) + save_user_lvar_settings(func_ea, lvinf) Save user defined local variable settings into the database. - save_user_lvar_settings(func_ea, lvinf) - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) + save_user_numforms(func_ea, numforms) Save user defined number formats into the database. - save_user_numforms(func_ea, numforms) - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) + save_user_unions(func_ea, unions) Save user defined union field selections into the database. - save_user_unions(func_ea, unions) - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -35967,9 +36815,10 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, tif, n=None) -> scif_t - | _mba: mba_t * - | tif: tinfo_t * - | n: qstring * + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -35977,16 +36826,16 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mba_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -35999,237 +36848,279 @@ class scif_t(vdloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -36251,14 +37142,16 @@ class scif_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_scif_mop(self, *args) | visit_scif_mop(self, r, off) -> int - | @param r (C++: const mop_t &) - | @param off (C++: int) + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36281,48 +37174,46 @@ class scif_visitor_t(__builtin__.object) Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) + select_udt_by_offset(udts, ops, applicator) -> int Select UDT - select_udt_by_offset(udts, ops, applicator) -> int - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) Help on function send_database in module ida_hexrays: send_database(*args) - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - send_database(err, silent) - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) set2jcnd(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) + set_type(id, tif, source, force=False) -> bool Set a global type. - set_type(id, tif, source, force=False) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success Help on class simple_graph_t in module ida_hexrays: @@ -36344,13 +37235,13 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | Data descriptors defined here: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -36362,9 +37253,10 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) | empty(self) -> bool @@ -36377,7 +37269,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) | exit(self) -> int @@ -36387,65 +37280,77 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -36471,50 +37376,58 @@ class stkvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t - | m: mba_t * - | o: sval_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) + | get_stkvar(self, p_off=None) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off=None) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) | swap(self, r) - | @param r (C++: stkvar_ref_t &) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36526,10 +37439,10 @@ class stkvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -36544,19 +37457,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) swap_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) + swapped_relation(op) -> ctype_t Swap a comparison operator. For example, cot_sge becomes cot_sle. - swapped_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) + term_hexrays_plugin() Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -36568,14 +37483,16 @@ class treeloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -36589,10 +37506,10 @@ class treeloc_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -36619,35 +37536,41 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | cleanup(self, *args) - | Cleanup the filter This function properly clears type information - | associated to this filter. + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) + | empty(self) -> bool | | init(self, *args) | init(self, decl) -> bool - | @param decl (C++: const char *) + | + | @param decl: char const * | | install(self, *args) | install(self) | | match(self, *args) + | match(self, cdg) -> bool | return true if the filter object should be appied to given instruction | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) + | @param cdg: (C++: codegen_t &) | | remove(self, *args) | remove(self) -> bool @@ -36676,70 +37599,70 @@ class udc_filter_t(microcode_filter_t) Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) + udcall_map_begin(map) -> udcall_map_iterator_t Get iterator pointing to the beginning of udcall_map_t. - udcall_map_begin(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) + udcall_map_clear(map) Clear udcall_map_t. - udcall_map_clear(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) + udcall_map_end(map) -> udcall_map_iterator_t Get iterator pointing to the end of udcall_map_t. - udcall_map_end(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) + udcall_map_erase(map, p) Erase current element from udcall_map_t. - udcall_map_erase(map, p) - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) + udcall_map_find(map, key) -> udcall_map_iterator_t Find the specified key in udcall_map_t. - udcall_map_find(map, key) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) + udcall_map_first(p) -> ea_t const & Get reference to the current map key. - udcall_map_first(p) -> ea_t const & - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) + udcall_map_free(map) Delete udcall_map_t instance. - udcall_map_free(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -36750,14 +37673,16 @@ class udcall_map_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -36774,7 +37699,7 @@ class udcall_map_iterator_t(__builtin__.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36785,39 +37710,40 @@ class udcall_map_iterator_t(__builtin__.object) Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) + udcall_map_new() -> udcall_map_t * Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) + udcall_map_next(p) -> udcall_map_iterator_t Move to the next element. - udcall_map_next(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) + udcall_map_prev(p) -> udcall_map_iterator_t Move to the previous element. - udcall_map_prev(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) + udcall_map_second(p) -> udcall_t Get reference to the current map value. - udcall_map_second(p) -> udcall_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) + udcall_map_size(map) -> size_t Get size of udcall_map_t. - udcall_map_size(map) -> size_t - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -36828,36 +37754,46 @@ class udcall_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: udcall_t const & + | + | @param r: udcall_t const & + | + | empty(self, *args) + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36869,13 +37805,13 @@ class udcall_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36894,18 +37830,18 @@ class ui_stroff_applicator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) | apply(self, opnum, path, top_tif, spath) -> bool - | @param opnum: operand ordinal number, see below (C++: size_t) - | @param path: path describing the union selection, maybe empty (C++: - | const intvec_t &) - | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const - | tinfo_t &) - | @param spath: selected path (C++: const char *) + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36934,14 +37870,16 @@ class ui_stroff_op_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -36955,10 +37893,10 @@ class ui_stroff_op_t(__builtin__.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -36978,15 +37916,19 @@ class ui_stroff_ops_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ui_stroff_op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | x: qvector< ui_stroff_op_t > const & + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -36995,22 +37937,28 @@ class ui_stroff_ops_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ui_stroff_op_t const & + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: ui_stroff_op_t const & + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) | @@ -37021,7 +37969,6 @@ class ui_stroff_ops_t(__builtin__.object) | | begin(self, *args) | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) | capacity(self) -> size_t @@ -37034,78 +37981,85 @@ class ui_stroff_ops_t(__builtin__.object) | | end(self, *args) | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) | erase(self, it) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator | + | @param it: qvector< ui_stroff_op_t >::iterator | | erase(self, first, last) -> ui_stroff_op_t - | first: qvector< ui_stroff_op_t >::iterator - | last: qvector< ui_stroff_op_t >::iterator + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) | extract(self) -> ui_stroff_op_t | | find(self, *args) | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & | - | - | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ui_stroff_op_t()) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | has(self, *args) | has(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) | inject(self, s, len) - | s: ui_stroff_op_t * - | len: size_t + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator - | x: ui_stroff_op_t const & + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ui_stroff_op_t const & | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ui_stroff_op_t > & + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) | truncate(self) @@ -37131,70 +38085,70 @@ class ui_stroff_ops_t(__builtin__.object) Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) + user_cmts_begin(map) -> user_cmts_iterator_t Get iterator pointing to the beginning of user_cmts_t. - user_cmts_begin(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) + user_cmts_clear(map) Clear user_cmts_t. - user_cmts_clear(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) + user_cmts_end(map) -> user_cmts_iterator_t Get iterator pointing to the end of user_cmts_t. - user_cmts_end(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) + user_cmts_erase(map, p) Erase current element from user_cmts_t. - user_cmts_erase(map, p) - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) + user_cmts_find(map, key) -> user_cmts_iterator_t Find the specified key in user_cmts_t. - user_cmts_find(map, key) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) + user_cmts_first(p) -> treeloc_t Get reference to the current map key. - user_cmts_first(p) -> treeloc_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) + user_cmts_free(map) Delete user_cmts_t instance. - user_cmts_free(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -37205,14 +38159,16 @@ class user_cmts_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37229,7 +38185,7 @@ class user_cmts_iterator_t(__builtin__.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37240,39 +38196,40 @@ class user_cmts_iterator_t(__builtin__.object) Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) + user_cmts_new() -> user_cmts_t Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) + user_cmts_next(p) -> user_cmts_iterator_t Move to the next element. - user_cmts_next(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) + user_cmts_prev(p) -> user_cmts_iterator_t Move to the previous element. - user_cmts_prev(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) + user_cmts_second(p) -> citem_cmt_t Get reference to the current map value. - user_cmts_second(p) -> citem_cmt_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) + user_cmts_size(map) -> size_t Get size of user_cmts_t. - user_cmts_size(map) -> size_t - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -37306,7 +38263,8 @@ class user_cmts_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> citem_cmt_t - | _Keyval: treeloc_t const & + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -37456,70 +38414,70 @@ class user_cmts_t(__builtin__.object) Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) + user_iflags_begin(map) -> user_iflags_iterator_t Get iterator pointing to the beginning of user_iflags_t. - user_iflags_begin(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) + user_iflags_clear(map) Clear user_iflags_t. - user_iflags_clear(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) + user_iflags_end(map) -> user_iflags_iterator_t Get iterator pointing to the end of user_iflags_t. - user_iflags_end(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) + user_iflags_erase(map, p) Erase current element from user_iflags_t. - user_iflags_erase(map, p) - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) + user_iflags_find(map, key) -> user_iflags_iterator_t Find the specified key in user_iflags_t. - user_iflags_find(map, key) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) + user_iflags_first(p) -> citem_locator_t Get reference to the current map key. - user_iflags_first(p) -> citem_locator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) + user_iflags_free(map) Delete user_iflags_t instance. - user_iflags_free(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -37530,14 +38488,16 @@ class user_iflags_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37554,7 +38514,7 @@ class user_iflags_iterator_t(__builtin__.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37565,39 +38525,40 @@ class user_iflags_iterator_t(__builtin__.object) Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) + user_iflags_new() -> user_iflags_t Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) + user_iflags_next(p) -> user_iflags_iterator_t Move to the next element. - user_iflags_next(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) + user_iflags_prev(p) -> user_iflags_iterator_t Move to the previous element. - user_iflags_prev(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) + user_iflags_second(p) -> int32 const & Get reference to the current map value. - user_iflags_second(p) -> int32 const & - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) + user_iflags_size(map) -> size_t Get size of user_iflags_t. - user_iflags_size(map) -> size_t - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -37631,7 +38592,8 @@ class user_iflags_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> int & - | _Keyval: citem_locator_t const & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -37794,70 +38756,70 @@ class user_iflags_t(__builtin__.object) Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) + user_labels_begin(map) -> user_labels_iterator_t Get iterator pointing to the beginning of user_labels_t. - user_labels_begin(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) + user_labels_clear(map) Clear user_labels_t. - user_labels_clear(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) + user_labels_end(map) -> user_labels_iterator_t Get iterator pointing to the end of user_labels_t. - user_labels_end(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) + user_labels_erase(map, p) Erase current element from user_labels_t. - user_labels_erase(map, p) - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) + user_labels_find(map, key) -> user_labels_iterator_t Find the specified key in user_labels_t. - user_labels_find(map, key) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) + user_labels_first(p) -> int const & Get reference to the current map key. - user_labels_first(p) -> int const & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) + user_labels_free(map) Delete user_labels_t instance. - user_labels_free(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) + user_labels_insert(map, key, val) -> user_labels_iterator_t Insert new (int, qstring) pair into user_labels_t. - user_labels_insert(map, key, val) -> user_labels_iterator_t - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -37868,14 +38830,16 @@ class user_labels_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37892,7 +38856,7 @@ class user_labels_iterator_t(__builtin__.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37903,39 +38867,40 @@ class user_labels_iterator_t(__builtin__.object) Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) + user_labels_new() -> user_labels_t Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) + user_labels_next(p) -> user_labels_iterator_t Move to the next element. - user_labels_next(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) + user_labels_prev(p) -> user_labels_iterator_t Move to the previous element. - user_labels_prev(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) + user_labels_second(p) -> qstring & Get reference to the current map value. - user_labels_second(p) -> qstring & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) + user_labels_size(map) -> size_t Get size of user_labels_t. - user_labels_size(map) -> size_t - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -37951,7 +38916,8 @@ class user_labels_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> _qstring< char > & - | _Keyval: int const & + | + | @param _Keyval: int const & | | size(self, *args) | size(self) -> size_t @@ -37985,15 +38951,16 @@ class user_lvar_modifier_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | modify_lvars(self, *args) + | modify_lvars(self, lvinf) -> bool | Modify lvar settings. Returns: true-modified | - | modify_lvars(self, lvinf) -> bool - | @param lvinf (C++: lvar_uservec_t *) + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38016,71 +38983,70 @@ class user_lvar_modifier_t(__builtin__.object) Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) + user_numforms_begin(map) -> user_numforms_iterator_t Get iterator pointing to the beginning of user_numforms_t. - user_numforms_begin(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) + user_numforms_clear(map) Clear user_numforms_t. - user_numforms_clear(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) + user_numforms_end(map) -> user_numforms_iterator_t Get iterator pointing to the end of user_numforms_t. - user_numforms_end(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) + user_numforms_erase(map, p) Erase current element from user_numforms_t. - user_numforms_erase(map, p) - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) + user_numforms_find(map, key) -> user_numforms_iterator_t Find the specified key in user_numforms_t. - user_numforms_find(map, key) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) + user_numforms_first(p) -> operand_locator_t Get reference to the current map key. - user_numforms_first(p) -> operand_locator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) + user_numforms_free(map) Delete user_numforms_t instance. - user_numforms_free(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -38091,14 +39057,16 @@ class user_numforms_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38115,7 +39083,7 @@ class user_numforms_iterator_t(__builtin__.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38126,39 +39094,40 @@ class user_numforms_iterator_t(__builtin__.object) Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) + user_numforms_new() -> user_numforms_t Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) + user_numforms_next(p) -> user_numforms_iterator_t Move to the next element. - user_numforms_next(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) + user_numforms_prev(p) -> user_numforms_iterator_t Move to the previous element. - user_numforms_prev(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) + user_numforms_second(p) -> number_format_t Get reference to the current map value. - user_numforms_second(p) -> number_format_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) + user_numforms_size(map) -> size_t Get size of user_numforms_t. - user_numforms_size(map) -> size_t - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -38192,7 +39161,8 @@ class user_numforms_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> number_format_t - | _Keyval: operand_locator_t const & + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -38342,70 +39312,70 @@ class user_numforms_t(__builtin__.object) Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) + user_unions_begin(map) -> user_unions_iterator_t Get iterator pointing to the beginning of user_unions_t. - user_unions_begin(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) + user_unions_clear(map) Clear user_unions_t. - user_unions_clear(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) + user_unions_end(map) -> user_unions_iterator_t Get iterator pointing to the end of user_unions_t. - user_unions_end(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) + user_unions_erase(map, p) Erase current element from user_unions_t. - user_unions_erase(map, p) - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) + user_unions_find(map, key) -> user_unions_iterator_t Find the specified key in user_unions_t. - user_unions_find(map, key) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) + user_unions_first(p) -> ea_t const & Get reference to the current map key. - user_unions_first(p) -> ea_t const & - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) + user_unions_free(map) Delete user_unions_t instance. - user_unions_free(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) + user_unions_insert(map, key, val) -> user_unions_iterator_t Insert new (ea_t, intvec_t) pair into user_unions_t. - user_unions_insert(map, key, val) -> user_unions_iterator_t - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -38416,14 +39386,16 @@ class user_unions_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38440,7 +39412,7 @@ class user_unions_iterator_t(__builtin__.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38451,39 +39423,40 @@ class user_unions_iterator_t(__builtin__.object) Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) + user_unions_new() -> user_unions_t Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) + user_unions_next(p) -> user_unions_iterator_t Move to the next element. - user_unions_next(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) + user_unions_prev(p) -> user_unions_iterator_t Move to the previous element. - user_unions_prev(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) + user_unions_second(p) -> intvec_t Get reference to the current map value. - user_unions_second(p) -> intvec_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) + user_unions_size(map) -> size_t Get size of user_unions_t. - user_unions_size(map) -> size_t - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -38517,7 +39490,8 @@ class user_unions_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> intvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -38672,15 +39646,19 @@ class uval_ivl_ivlset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) | __ne__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -38703,7 +39681,8 @@ class uval_ivl_ivlset_t(__builtin__.object) | | getivl(self, *args) | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -38719,11 +39698,14 @@ class uval_ivl_ivlset_t(__builtin__.object) | | single_value(self, *args) | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38752,8 +39734,9 @@ class uval_ivl_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t - | _off: unsigned-ea-like-numeric-type↗ - | _size: unsigned-ea-like-numeric-type↗ + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -38776,10 +39759,10 @@ class uval_ivl_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -38799,35 +39782,42 @@ class valrng_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | size_: int | + | @param size_: int | | __init__(self, r) -> valrng_t - | r: valrng_t const & + | + | @param r: valrng_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -38845,11 +39835,13 @@ class valrng_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: valrng_t const & + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) | cvt_to_cmp(self, strict) -> bool - | @param strict (C++: bool) + | + | @param strict: bool | | cvt_to_single_value(self, *args) | cvt_to_single_value(self) -> bool @@ -38865,11 +39857,13 @@ class valrng_t(__builtin__.object) | | has(self, *args) | has(self, v) -> bool - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | intersect_with(self, *args) | intersect_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | inverse(self, *args) | inverse(self) @@ -38879,31 +39873,43 @@ class valrng_t(__builtin__.object) | | max_svalue(self, *args) | max_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t | | max_value(self, *args) | max_value(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_value(self) -> uvlr_t | | min_svalue(self, *args) | min_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) | reduce_size(self, new_size) -> bool - | @param new_size (C++: int) + | + | @param new_size: int | | set_all(self, *args) | set_all(self) | | set_cmp(self, *args) | set_cmp(self, cmp, _value) - | @param cmp (C++: cmpop_t) - | @param _value (C++: uvlr_t) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) | set_eq(self, v) - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | set_none(self, *args) | set_none(self) @@ -38913,11 +39919,13 @@ class valrng_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: valrng_t &) + | + | @param r: valrng_t & | | unite_with(self, *args) | unite_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38946,36 +39954,43 @@ class var_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | getv(self, *args) | getv(self) -> lvar_t @@ -38990,10 +40005,10 @@ class var_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -39020,21 +40035,25 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t - | f: cfunc_t const * + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | | oneliner(self, *args) + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -39050,8 +40069,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -39063,10 +40085,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -39077,19 +40099,21 @@ class vd_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, code, ea, buf=None) -> vd_failure_t | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, code, ea, buf) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: qstring const & | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __init__(self, _hf) -> vd_failure_t - | _hf: hexrays_failure_t const & + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -39106,7 +40130,7 @@ class vd_failure_t(__builtin__.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -39131,8 +40155,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t - | ea: ea_t - | buf: char const * + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -39164,7 +40189,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -39177,14 +40202,18 @@ class vd_printer_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39196,13 +40225,13 @@ class vd_printer_t(__builtin__.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -39224,52 +40253,64 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | | _set_reg1(self, *args) | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39287,191 +40328,221 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -39494,321 +40565,344 @@ class vdui_t(__builtin__.object) | __repr__ = _swig_repr(self) | | calc_cmt_type(self, *args) - | Check if the specified line can have a comment. Due to the coordinate - | system for comments: (https://www.hex-rays.com/blog/coordinate-system- - | for-hex-rays) some function lines cannot have comments. This function - | checks if a comment can be attached to the specified line. - | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | @param lnnum: line number (0 based) (C++: size_t) - | @param cmttype: comment types to check (C++: cmt_type_t) - | @return: possible comment types + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) - | Clear the pseudocode window. It deletes the current function and - | microcode. + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) + | collapse_item(self, hide) -> bool | Collapse/uncollapse item. This function collapses the current item. | - | collapse_item(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) + | collapse_lvars(self, hide) -> bool | Collapse/uncollapse local variable declarations. | - | collapse_lvars(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) - | Jump to disassembly. This function jumps to the address in the - | disassembly window which corresponds to the current item. The current - | item is determined based on the current keyboard cursor position. + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) - | Delete all orphan comments. Delete all orphan comments and refresh the - | screen. + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) - | Edit an indented comment. This function displays a dialog box and - | allows the user to edit the comment for the specified ctree location. - | | edit_cmt(self, loc) -> bool - | @param loc: comment location (C++: const treeloc_t &) - | @return: false if failed or cancelled + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) - | Edit a function comment. This function displays a dialog box and - | allows the user to edit the function comment. + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) - | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' - | fields. 'cfunc_t::get_line_item()' - | | get_current_item(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) - | Get current label. If there is a label under the cursor, return its - | number. + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) - | Get current number. If the current item is a number, return pointer to - | it. + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) + | in_ctree(self) -> bool | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) - | Bitwise negate a number. This function inverts all bits of the current - | number. + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) + | invert_sign(self) -> bool | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) - | Process the Enter key. This function jumps to the definition of the - | item under the cursor. If the current item is a function, it will be - | decompiled. If the current item is a global data, its disassemly text - | will be displayed. - | | jump_enter(self, idv, omflags) -> bool - | @param idv: what cursor must be used, the keyboard or the mouse (C++: - | input_device_t) - | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse - | the existing window (C++: int) - | @return: false if failed + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) - | Does the pseudocode window contain valid code? We lock windows before - | modifying them, to avoid recursion due to the events generated by the - | IDA kernel. + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) - | Map a local variable to another. This function permanently maps one - | lvar to another. All occurrences of the mapped variable are replaced - | by the new variable - | | map_lvar(self, frm, to) -> bool - | @param frm: the variable being mapped (C++: lvar_t *) - | @param to: the variable to map to. if NULL, unmaps the variable (C++: - | lvar_t *) - | @return: false if failed + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) - | Refresh the current position. This function refreshes the 'cpos' - | field. - | | refresh_cpos(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) - | Refresh pseudocode window. This function refreshes the pseudocode - | window by regenerating its text from 'cfunc_t' . Instead of this - | function use refresh_func_ctext(), which refreshes all pseudocode - | windows for the function. 'refresh_view()' , refresh_func_ctext() - | | refresh_ctext(self, activate=True) - | @param activate (C++: bool) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) - | Refresh pseudocode window. This is the highest level refresh function. - | It causes the most profound refresh possible and can lead to - | redecompilation of the current function. Please consider using - | 'refresh_ctext()' if you need a more superficial refresh. - | 'refresh_ctext()' - | | refresh_view(self, redo_mba) - | @param redo_mba: true means to redecompile the current function - | false means to rebuild ctree without regenerating - | microcode (C++: bool) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) - | Rename global item. This function displays a dialog box and allows the - | user to rename a global item (data or function). - | | rename_global(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) - | Rename a label. This function displays a dialog box and allows the - | user to rename a statement label. - | | rename_label(self, label) -> bool - | @param label: label number (C++: int) - | @return: false if failed or cancelled + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) - | Rename local variable. This function permanently renames a local - | variable.::rename_lvar() - | | rename_lvar(self, v, name, is_user_name) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param name: new variable name (C++: const char *) - | @param is_user_name: use true to save the new name into the database. - | use false to delete the saved name. (C++: bool) - | @return: false if failed + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) - | Rename structure field. This function displays a dialog box and allows - | the user to rename a structure field. - | | rename_strmem(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) - | Set global item type. This function displays a dialog box and allows - | the user to change the type of a global item (data or function). - | | set_global_type(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) | set_locked(self, v) -> bool - | @param v (C++: bool) + | + | @param v: bool | | set_lvar_cmt(self, *args) - | Set local variable comment. This function permanently sets a variable - | comment. - | | set_lvar_cmt(self, v, cmt) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param cmt: new comment (C++: const char *) - | @return: false if failed + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) - | Set local variable type. This function permanently sets a local - | variable type and clears NOPTR flag if it was set before by function - | 'set_noptr_lvar' - | | set_lvar_type(self, v, type) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param type: new variable type (C++: const tinfo_t &) - | @return: false if failed + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) - | Inform that local variable should have a non-pointer type This - | function permanently sets a corresponding variable flag (NOPTR) and - | removes type if it was set before by function 'set_lvar_type' - | | set_noptr_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) - | Convert number to symbolic constant. This function displays a dialog - | box and allows the user to select a symbolic constant to represent the - | number. + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) - | Change number base. This function changes the current number - | representation. - | | set_num_radix(self, base) -> bool - | @param base: number radix (10 or 16) 0 means a character constant - | (C++: int) - | @return: false if failed + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) + | set_num_stroff(self) -> bool | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) - | Set structure field type. This function displays a dialog box and - | allows the user to change the type of a structure field. - | | set_strmem_type(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) | set_valid(self, v) - | @param v (C++: bool) + | + | @param v: bool | | set_visible(self, *args) | set_visible(self, v) - | @param v (C++: bool) + | + | @param v: bool | | split_item(self, *args) - | Split/unsplit item. This function splits the current assignment - | expression. - | | split_item(self, split) -> bool - | @param split (C++: bool) - | @return: false if failed. + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) - | Display the specified pseudocode. This function replaces the - | pseudocode window contents with the specified 'cfunc_t' . - | | switch_to(self, f, activate) - | @param f: pointer to the function to display. (C++: cfuncptr_t) - | @param activate: should the pseudocode window get focus? (C++: bool) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) - | Set local variable comment. This function displays a dialog box and - | allows the user to edit the comment of a local variable. - | | ui_edit_lvar_cmt(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) - | Map a local variable to another. This function displays a variable - | list and allows the user to select mapping. - | | ui_map_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) - | Rename local variable. This function displays a dialog box and allows - | the user to rename a local variable. - | | ui_rename_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) - | Set type of a function call This function displays a dialog box and - | allows the user to change the type of a function call - | | ui_set_call_type(self, e) -> bool - | @param e: pointer to call expression (C++: const cexpr_t *) - | @return: false if failed or cancelled + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) - | Set local variable type. This function displays a dialog box and - | allows the user to change the type of a local variable. - | | ui_set_lvar_type(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) - | Unmap a local variable. This function displays list of variables - | mapped to the specified variable and allows the user to select a - | variable to unmap. - | | ui_unmap_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) - | Does the pseudocode window contain valid code? It can become invalid - | if the function type gets changed in IDA. + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) - | Is the pseudocode window visible? if not, it might be invisible or - | destroyed + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39820,40 +40914,40 @@ class vdui_t(__builtin__.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mba_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -39875,45 +40969,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: vivl_t const & | + | @param r: vivl_t const & | | __eq__(self, mop) -> bool - | mop: mop_t const & + | + | @param mop: mop_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | _type: mopt_t - | _off: sval_t - | _size: int | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | __init__(self, ch) -> vivl_t - | ch: chain_t const & | + | @param ch: chain_t const & | | __init__(self, op) -> vivl_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -39922,69 +41023,73 @@ class vivl_t(voff_t) | | compare(self, *args) | compare(self, r) -> int - | r: vivl_t const & + | + | @param r: vivl_t const & | | contains(self, *args) + | contains(self, voff2) -> bool | Does our value interval contain the specified value offset? | - | contains(self, voff2) -> bool - | @param voff2 (C++: const voff_t &) + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) | dstr(self) -> char const * | | extend_to_cover(self, *args) + | extend_to_cover(self, r) -> bool | Extend a value interval using another value interval of the same type | - | extend_to_cover(self, r) -> bool - | @param r (C++: const vivl_t &) - | @return: success + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) + | includes(self, r) -> bool | Does our value interval include another? | - | includes(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) + | intersect(self, r) -> uval_t | Intersect value intervals the same type | - | intersect(self, r) -> uval_t - | @param r (C++: const vivl_t &) - | @return: size of the resulting intersection + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) + | overlap(self, r) -> bool | Do two value intervals overlap? | - | overlap(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) | set(self, _type, _off, _size=0) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) - | @param _size (C++: int) | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | set(self, voff, _size) - | voff: voff_t const & - | @param _size (C++: int) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) | set_reg(self, mreg, sz=0) - | @param mreg (C++: mreg_t) - | @param sz (C++: int) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) | set_stkoff(self, stkoff, sz=0) - | @param stkoff (C++: sval_t) - | @param sz (C++: int) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -40000,14 +41105,16 @@ class vivl_t(voff_t) | | add(self, *args) | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -40017,7 +41124,8 @@ class vivl_t(voff_t) | | inc(self, *args) | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) | is_reg(self) -> bool @@ -40038,10 +41146,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -40052,53 +41160,64 @@ class voff_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | _type: mopt_t - | _off: sval_t + | __init__(self, _type, _off) -> voff_t | + | @param _type: mopt_t + | @param _off: sval_t | | __init__(self, op) -> voff_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | compare(self, *args) | compare(self, r) -> int - | r: voff_t const & + | + | @param r: voff_t const & | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -40108,7 +41227,8 @@ class voff_t(__builtin__.object) | | inc(self, *args) | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) | is_reg(self) -> bool @@ -40118,16 +41238,19 @@ class voff_t(__builtin__.object) | | set(self, *args) | set(self, _type, _off) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) | set_reg(self, mreg) - | @param mreg (C++: mreg_t) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) | set_stkoff(self, stkoff) - | @param stkoff (C++: sval_t) + | + | @param stkoff: sval_t | | undef(self, *args) | undef(self) @@ -40142,13 +41265,13 @@ class voff_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -40156,1050 +41279,19 @@ class voff_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_voff_t> | delete_voff_t(self) -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFL_NORET -""" -call does not return -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LOCKED -""" -cfunc is temporarily locked -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -del the jump insn at the end of the block if it becomes useless -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_HIDE -""" -do not close display waitbox. see close_hexrays_waitboxes() -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_NO_XREFS -""" -do not update global xrefs cache -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore source operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -A variadic function with recognized printf- or scanf-style format -string -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -ignore possible implicit definitions by function calls and indirect -memory access -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -the purpose of the instruction is to clean stack (e.g. "pop ecx" is -often used for that) -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -this instruction acts as a memory barrier (instructions accessing -memory may not be reordered past it) -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -bits that can be set by plugins: - -the minsn was generated as part of insn that moves multiple registers -(example: STM on ARM may transfer multiple registers) -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -redo optimization for all blocks. if this bit is not set, only dirty -blocks will be optimized -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.LVINF_UNUSED -""" -unused argument, corresponds to CVAR_UNUSED -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_KEEP -""" -do not remove even if unreachable -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -private block - no instructions except the specified are accepted -(used in patterns) -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_VALID -""" -internal bit: stroff or enum is valid for enums: this bit is set -immediately for stroffs: this bit is set at the end of decompilation -""" - -ida_hexrays.OPF_NEW_WINDOW -""" -open new window -""" - -ida_hexrays.OPF_NO_WAIT -""" -do not display waitbox if decompilation happens -""" - -ida_hexrays.OPF_REUSE -""" -reuse existing window -""" - -ida_hexrays.OPF_REUSE_ACTIVE -""" -reuse existing window, only if the currently active widget is a -pseudocode view -""" - -ida_hexrays.OPROP_CCFLAGS -""" -mop_n: a pc-relative value else: value of a condition code register -(like mr_cc) -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_LOWADDR -""" -a low address offset -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -the function is called after the propagation attempt, we do not -optimize low/high(ldx) in this case -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -ida_hexrays.VR_AT_START -""" -get value ranges before the instruction or at the block start (if M is -NULL) -""" +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -ida_hexrays.VR_EXACT -""" -find exact match. if not set, the returned valrng size will be >= -vivl.size -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -41207,12 +41299,15 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - #<pycode(py_ida)> Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + Help on function __wrap_hooks_callback in module ida_ida: __wrap_hooks_callback(klass, new_name, old_name, do_call) @@ -41220,6 +41315,7 @@ __wrap_hooks_callback(klass, new_name, old_name, do_call) Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) + calc_default_idaplace_flags() -> int Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -41244,34 +41340,34 @@ class compiler_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag @@ -41285,30 +41381,36 @@ class compiler_info_t(__builtin__.object) Help on function delinf in module ida_ida: delinf(*args) + delinf(tag) -> bool undefine a program specific information - delinf(tag) -> bool - @param tag: one of inftag_t constants (C++: inftag_t) - @return: success + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success Help on function get_dbctx_id in module ida_ida: get_dbctx_id(*args) + get_dbctx_id() -> ssize_t Get the current database context ID + + @return: the database context ID, or -1 if no current database Help on function get_dbctx_qty in module ida_ida: get_dbctx_qty(*args) + get_dbctx_qty() -> size_t Get number of database contexts + + @return: number of database contexts Help on function getinf_str in module ida_ida: getinf_str(*args) + getinf_str(tag) -> str get program specific information (a non-scalar value) - getinf_str(tag) -> str - @param tag: one of inftag_t constants (C++: inftag_t) - @return: number of bytes stored in the buffer (<0 - not defined) + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) Help on class idainfo in module ida_ida: @@ -41334,17 +41436,8 @@ class idainfo(__builtin__.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -41397,14 +41490,6 @@ class idainfo(__builtin__.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) - | set_maxEA(self, ea) - | ea: ea_t - | - | set_minEA(self, *args) - | set_minEA(self, ea) - | ea: ea_t - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -41439,193 +41524,206 @@ class idainfo(__builtin__.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | lflags | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) @@ -41644,7 +41742,8 @@ inf_gen_tryblks(*args) Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) - Get 'DEMNAM_MASK' bits of #demnames. + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: @@ -41733,6 +41832,10 @@ inf_map_stkargs(*args) Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -41744,73 +41847,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) inf_set_64bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) inf_set_auto_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) inf_set_be(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) inf_set_gen_lzero(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) inf_set_gen_null(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) inf_set_gen_tryblks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) inf_set_graph_view(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) inf_set_line_pref_with_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) inf_set_pack_mode(pack_mode) -> int - @param pack_mode (C++: int) + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) inf_set_show_auto(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) inf_set_show_line_pref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) inf_set_show_void(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function <lambda> in module ida_ida: @@ -41820,7 +41935,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) inf_set_wide_high_byte_first(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -42000,6 +42116,7 @@ inf_get_af2(*args) Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) + inf_get_af2_low() -> ushort Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -42010,6 +42127,7 @@ inf_get_af_high(*args) Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) + inf_get_af_low() -> ushort Get/set low/high 16bit halves of inf.af. Help on function inf_get_app_bitness in module ida_ida: @@ -42046,7 +42164,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) inf_get_cc(out) -> bool - @param out (C++: compiler_info_t *) + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -42103,11 +42222,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) @@ -42242,7 +42356,10 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) inf_get_privrange(out) -> bool - @param out (C++: range_t *) + + @param out: range_t * + + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -42383,7 +42500,8 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) inf_inc_database_change_count(cnt=1) - @param cnt (C++: int) + + @param cnt: int Help on function inf_is_16bit in module ida_ida: @@ -42454,7 +42572,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) inf_postinc_strlit_sernum(cnt=1) -> uval_t - @param cnt (C++: uval_t) + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -42500,951 +42619,1102 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) inf_set_32bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) inf_set_abi_set_by_user(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) inf_set_abibits(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) inf_set_af(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) inf_set_af2(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) inf_set_af2_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) inf_set_af_high(saf2) - @param saf2 (C++: ushort) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) inf_set_af_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) inf_set_allow_non_matched_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) inf_set_allow_sigmulti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) inf_set_appcall_options(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) inf_set_append_sigcmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) inf_set_apptype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) inf_set_asmtype(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) inf_set_baseaddr(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) inf_set_big_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) inf_set_bin_prefix_size(_v) -> bool - @param _v (C++: short) + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) inf_set_cc(_v) -> bool - @param _v (C++: const compiler_info_t &) + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) inf_set_cc_cm(_v) -> bool - @param _v (C++: cm_t) + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) inf_set_cc_defalign(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) inf_set_cc_id(_v) -> bool - @param _v (C++: comp_t) + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) inf_set_cc_size_b(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) inf_set_cc_size_e(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) inf_set_cc_size_i(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) inf_set_cc_size_l(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) inf_set_cc_size_ldbl(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) inf_set_cc_size_ll(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) inf_set_cc_size_s(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) inf_set_check_manual_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) inf_set_check_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) inf_set_cmtflg(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) inf_set_coagulate_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) inf_set_coagulate_data(_v=True) -> bool - @param _v (C++: bool) - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) - inf_set_comment(_v) -> bool - @param _v (C++: uchar) + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) inf_set_compress_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) inf_set_create_all_xrefs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) inf_set_create_func_from_call(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) inf_set_create_func_from_ptr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) inf_set_create_func_tails(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) inf_set_create_jump_tables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) inf_set_create_off_on_dref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) inf_set_create_off_using_fixup(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) inf_set_create_strlit_on_xref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) inf_set_data_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) inf_set_database_change_count(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) inf_set_datatypes(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) inf_set_dbg_no_store_path(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) inf_set_decode_fpp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) inf_set_del_no_xref_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) inf_set_demnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) inf_set_dll(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) inf_set_filetype(_v) -> bool - @param _v (C++: filetype_t) + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) inf_set_final_pass(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) inf_set_flat_off32(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) inf_set_full_sp_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) inf_set_gen_assume(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) inf_set_gen_org(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) inf_set_genflags(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) inf_set_guess_func_type(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) inf_set_handle_eh(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) inf_set_handle_rtti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) inf_set_hard_float(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) inf_set_hide_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) inf_set_hide_libfuncs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) inf_set_highoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) inf_set_huge_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) inf_set_indent(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) inf_set_kernel_mode(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) inf_set_lenxref(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) inf_set_lflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) inf_set_limiter(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) inf_set_limiter_empty(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) inf_set_limiter_thick(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) inf_set_limiter_thin(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) inf_set_listnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) inf_set_loading_idc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) inf_set_long_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) inf_set_lowoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) inf_set_macros_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) inf_set_main(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) inf_set_map_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) inf_set_margin(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) inf_set_mark_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) inf_set_max_autoname_len(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) inf_set_max_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) inf_set_maxref(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) inf_set_mem_aligned4(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) inf_set_min_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) inf_set_nametype(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) inf_set_netdelta(_v) -> bool - @param _v (C++: sval_t) + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) inf_set_no_store_user_info(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) inf_set_noflow_to_data(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) inf_set_noret_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) inf_set_omax_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) inf_set_omin_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) inf_set_op_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) inf_set_ostype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) inf_set_outflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) inf_set_pack_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) inf_set_pack_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) inf_set_prefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) inf_set_prefix_show_funcoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) inf_set_prefix_show_segaddr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) inf_set_prefix_show_stack(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) inf_set_privrange(_v) -> bool - @param _v (C++: const range_t &) + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) inf_set_privrange_end_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) inf_set_privrange_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) inf_set_procname(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) inf_set_propagate_regargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) inf_set_propagate_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) inf_set_readonly_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) inf_set_refcmtnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) inf_set_rename_jumpfunc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) inf_set_rename_nullsub(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) inf_set_short_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) inf_set_should_create_stkvars(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) inf_set_should_trace_sp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) inf_set_show_all_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) inf_set_show_hidden_funcs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) inf_set_show_hidden_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) inf_set_show_hidden_segms(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) inf_set_show_repeatables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) inf_set_show_src_linnum(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) inf_set_show_xref_fncoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) inf_set_show_xref_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) inf_set_show_xref_tmarks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) inf_set_show_xref_val(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) inf_set_snapshot(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) inf_set_specsegs(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) inf_set_stack_ldbl(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) inf_set_stack_varargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) inf_set_start_cs(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) inf_set_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) inf_set_start_ip(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) inf_set_start_sp(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) inf_set_start_ss(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) inf_set_strlit_autocmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) inf_set_strlit_break(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) inf_set_strlit_flags(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) inf_set_strlit_name_bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) inf_set_strlit_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) inf_set_strlit_savecase(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) inf_set_strlit_serial_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) inf_set_strlit_sernum(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) inf_set_strlit_zeroes(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) inf_set_strtype(_v) -> bool - @param _v (C++: int32) + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) inf_set_trace_flow(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) inf_set_truncate_on_del(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) inf_set_type_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) inf_set_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) inf_set_use_allasm(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) inf_set_use_flirt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) inf_set_use_gcc_layout(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) inf_set_version(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) inf_set_xrefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) inf_set_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -43559,10 +43829,10 @@ inf_use_flirt(*args) Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) + is_filetype_like_binary(ft) -> bool Is unstructured input file? - is_filetype_like_binary(ft) -> bool - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function <lambda> in module ida_ida: @@ -43571,603 +43841,24 @@ Help on function <lambda> in module ida_ida: Help on function switch_dbctx in module ida_ida: switch_dbctx(*args) + switch_dbctx(idx) -> dbctx_t * Switch to the database with the provided context ID - switch_dbctx(idx) -> dbctx_t * - @param idx: the index of the database to switch to (C++: size_t) - @return: the current dbctx_t instance or nullptr + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr Help on function to_ea in module ida_ida: to_ea(*args) + to_ea(reg_cs, reg_ip) -> ea_t Convert (sel,off) value to a linear address. - to_ea(reg_cs, reg_ip) -> ea_t - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -use natural type alignment for argument if the alignment exceeds -native word size (e.g. __int64 argument should be 8byte aligned on -some 32bit platforms) -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment. this -bit is not used by ida yet -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -may use constructs not supported by the target assembler -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program (or higher)? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -Bit order of wide bytes: high byte first? (wide bytes: \\ph{dnbits} > -8) -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -44318,10 +44009,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44378,6 +44069,8 @@ Help on function IDAPython_ExecScript in module ida_idaapi: IDAPython_ExecScript(path, g, print_error=True) Run the specified script. + + This function is used by the low-level plugin code. Help on function IDAPython_ExecSystem in module ida_idaapi: @@ -44507,23 +44200,6 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on instance of __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - Help on instance of IDAPython_displayhook in module ida_idaapi: class IDAPython_displayhook @@ -44541,23 +44217,6 @@ class IDAPython_displayhook | | format_seq(self, num_printer, storage, item, opn, cls) -Help on class __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(__builtin__.object) @@ -44611,6 +44270,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -44679,19 +44346,22 @@ enable_extlang_python(*args) enable_extlang_python(enable) Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) enable_python_cli(enable) - enable: bool + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) - format_basestring(_in) -> PyObject * - _in: PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: @@ -44702,9 +44372,6 @@ get_inf_structure(*args) Help on class loader_input_t in module ida_idaapi: class loader_input_t(__builtin__.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -44712,21 +44379,24 @@ class loader_input_t(__builtin__.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | Closes the file + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | | close(self, *args) | close(self) + | Closes the file | | file2base(self, *args) | file2base(self, pos, ea1, ea2, patchable) -> int | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -44741,12 +44411,15 @@ class loader_input_t(__builtin__.object) | get_linput(self) -> linput_t * | | gets(self, *args) - | gets(self, len) -> PyObject * + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) | getz(self, sz, fpos=-1) -> PyObject * | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. @@ -44754,12 +44427,16 @@ class loader_input_t(__builtin__.object) | open(self, *args) | open(self, filename, remote=False) -> bool | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) | open_memory(self, start, size=0) -> bool | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 @@ -44769,21 +44446,31 @@ class loader_input_t(__builtin__.object) | Checks if the file is opened or not | | read(self, *args) - | read(self, size) -> PyObject * + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) | seek(self, pos, whence=SEEK_SET) -> int64 | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) | set_linput(self, linput) | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) | size(self) -> int64 @@ -44797,15 +44484,19 @@ class loader_input_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> loader_input_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> loader_input_t | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) | from_linput(linput) -> loader_input_t - | linput: linput_t * + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -44814,7 +44505,7 @@ class loader_input_t(__builtin__.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -44832,19 +44523,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) loader_input_t_from_capsule(pycapsule) -> loader_input_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) loader_input_t_from_fp(fp) -> loader_input_t - fp: FILE * + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) loader_input_t_from_linput(linput) -> loader_input_t - linput: linput_t * + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -44883,7 +44577,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) parse_command_line3(cmdline) -> PyObject * - cmdline: char const * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -44997,43 +44692,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) pycim_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) pycim_view_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) - pygc_create_groups(_self, groups_infos) -> PyObject * - self: PyObject * - groups_infos: PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) - pygc_delete_groups(_self, groups, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - new_current: PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) pygc_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - expand: PyObject * - new_current: PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -45124,28 +44825,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -45173,15 +44887,13 @@ class Appcall__(__builtin__.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45214,8 +44926,7 @@ class Appcall__(__builtin__.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45283,15 +44994,13 @@ class Appcall__(__builtin__.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45324,8 +45033,7 @@ class Appcall__(__builtin__.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45448,8 +45156,7 @@ class Appcall_callable__(__builtin__.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -45500,11 +45207,12 @@ Help on function appcall in module ida_idd: appcall(*args) appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - func_ea: ea_t - tid: thid_t - _type_or_none: bytevec_t const & - _fields: bytevec_t const & - arg_list: PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -45528,10 +45236,10 @@ class bptaddr_t(__builtin__.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -45551,14 +45259,16 @@ class call_stack_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -45572,16 +45282,16 @@ class call_stack_info_t(__builtin__.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -45601,15 +45311,19 @@ class call_stack_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_info_vec_t - | x: qvector< call_stack_info_t > const & + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45619,33 +45333,39 @@ class call_stack_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -45658,78 +45378,85 @@ class call_stack_info_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -45786,11 +45513,13 @@ class call_stack_t(call_stack_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45800,31 +45529,37 @@ class call_stack_t(call_stack_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -45837,78 +45572,85 @@ class call_stack_t(call_stack_info_vec_t) | | end(self, *args) | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -45926,35 +45668,33 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) can_exc_continue(ev) -> bool - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) + cleanup_appcall(tid) -> error_t Cleanup after manual appcall. - cleanup_appcall(tid) -> error_t - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t Call a function from the debugged application. - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -45966,8 +45706,8 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) dbg_get_memory_info() -> PyObject * This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: @@ -45975,6 +45715,7 @@ Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) dbg_get_name() -> PyObject * This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: @@ -45983,8 +45724,8 @@ dbg_get_registers(*args) dbg_get_registers() -> PyObject * This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -45993,10 +45734,10 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: @@ -46004,15 +45745,20 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) - dbg_write_memory(ea, buf) -> PyObject * + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -46037,16 +45783,16 @@ class debapp_attrs_t(__builtin__.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -46066,75 +45812,78 @@ class debug_event_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | r: debug_event_t const & + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | | bpt(self, *args) - | 'EXCEPTION' + | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) - | On some systems with special memory mappings the triggered ea might be - | different from the actual ea. Calculate the address to use. + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) - | clear the dependent information (see below), set event code to - | NO_EVENT + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) | clear_all(self) | | copy(self, *args) | copy(self, r) -> debug_event_t - | @param r (C++: const debug_event_t &) + | + | @param r: debug_event_t const & | | eid(self, *args) + | eid(self) -> event_id_t | Event code. | | exc(self, *args) | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) - | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) - | 'INFORMATION' (will be displayed in the output window if not empty) + | exit_code(self) -> int const & | | info(self, *args) - | 'BREAKPOINT' + | info(self) -> qstring + | info(self) -> qstring const & | | modinfo(self, *args) - | Information that depends on the event code: - | - | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' - | 'PROCESS_EXITED' , 'THREAD_EXITED' + | modinfo(self) -> modinfo_t | | set_bpt(self, *args) | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) - | Set event code. If the new event code is compatible with the old one - | then the dependent information (see below) will be preserved. - | Otherwise the event will be cleared and the new event code will be - | set. - | | set_eid(self, id) - | @param id (C++: event_id_t) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) | set_exit_code(self, id, code) - | @param id (C++: event_id_t) - | @param code (C++: int) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) | set_info(self, id) -> qstring & - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | set_modinfo(self, *args) | set_modinfo(self, id) -> modinfo_t - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -46146,19 +45895,19 @@ class debug_event_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -46175,17 +45924,21 @@ class exception_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | _code: uint - | _flags: uint32 - | _name: char const * - | _desc: char const * + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | | break_on(self, *args) + | break_on(self) -> bool | Should we break on the exception? | | handle(self, *args) + | handle(self) -> bool | Should we handle the exception? | | ---------------------------------------------------------------------- @@ -46198,16 +45951,16 @@ class exception_info_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -46240,16 +45993,16 @@ class excinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -46269,11 +46022,14 @@ class excvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> exception_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | x: qvector< exception_info_t > const & + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46285,19 +46041,20 @@ class excvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: exception_info_t const & + | + | @param i: size_t + | @param v: exception_info_t const & | | at(self, *args) | at(self, _idx) -> exception_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46310,16 +46067,16 @@ class excvec_t(__builtin__.object) | | end(self, *args) | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) | erase(self, it) -> exception_info_t - | it: qvector< exception_info_t >::iterator | + | @param it: qvector< exception_info_t >::iterator | | erase(self, first, last) -> exception_info_t - | first: qvector< exception_info_t >::iterator - | last: qvector< exception_info_t >::iterator + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) | extract(self) -> exception_info_t @@ -46329,47 +46086,56 @@ class excvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=exception_info_t()) - | x: exception_info_t const & + | + | @param x: exception_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: exception_info_t * - | len: size_t + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> exception_info_t - | it: qvector< exception_info_t >::iterator - | x: exception_info_t const & + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: exception_info_t const & + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: exception_info_t const & | + | @param _newsize: size_t + | @param x: exception_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< exception_info_t > & + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) | truncate(self) @@ -46396,49 +46162,57 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) get_event_bpt_hea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) get_event_exc_code(ev) -> uint - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) get_event_exc_ea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) get_event_exc_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) get_event_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) get_event_module_base(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) get_event_module_name(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) get_event_module_size(ev) -> asize_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -46449,15 +46223,19 @@ class meminfo_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> memory_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | x: qvector< memory_info_t > const & + | __init__(self, x) -> meminfo_vec_t + | + | @param x: qvector< memory_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46467,33 +46245,39 @@ class meminfo_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: memory_info_t const & + | + | @param i: size_t + | @param v: memory_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: memory_info_t const & + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | at(self, *args) | at(self, _idx) -> memory_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46506,78 +46290,85 @@ class meminfo_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) | erase(self, it) -> memory_info_t - | it: qvector< memory_info_t >::iterator | + | @param it: qvector< memory_info_t >::iterator | | erase(self, first, last) -> memory_info_t - | first: qvector< memory_info_t >::iterator - | last: qvector< memory_info_t >::iterator + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) | extract(self) -> memory_info_t | | find(self, *args) | find(self, x) -> memory_info_t - | x: memory_info_t const & | - | - | find(self, x) -> memory_info_t - | x: memory_info_t const & + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=memory_info_t()) - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: memory_info_t * - | len: size_t + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> memory_info_t - | it: qvector< memory_info_t >::iterator - | x: memory_info_t const & + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: memory_info_t const & + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: memory_info_t const & | + | @param _newsize: size_t + | @param x: memory_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< memory_info_t > & + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) | truncate(self) @@ -46614,14 +46405,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -46629,19 +46422,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -46657,58 +46450,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -46722,12 +46519,12 @@ class memory_info_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -46751,16 +46548,16 @@ class modinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -46793,10 +46590,10 @@ class process_info_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -46816,11 +46613,14 @@ class procinfo_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> process_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | x: qvector< process_info_t > const & + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46832,19 +46632,20 @@ class procinfo_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: process_info_t const & + | + | @param i: size_t + | @param v: process_info_t const & | | at(self, *args) | at(self, _idx) -> process_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -46857,16 +46658,16 @@ class procinfo_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) | erase(self, it) -> process_info_t - | it: qvector< process_info_t >::iterator | + | @param it: qvector< process_info_t >::iterator | | erase(self, first, last) -> process_info_t - | first: qvector< process_info_t >::iterator - | last: qvector< process_info_t >::iterator + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) | extract(self) -> process_info_t @@ -46876,47 +46677,56 @@ class procinfo_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=process_info_t()) - | x: process_info_t const & + | + | @param x: process_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: process_info_t * - | len: size_t + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> process_info_t - | it: qvector< process_info_t >::iterator - | x: process_info_t const & + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: process_info_t const & + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: process_info_t const & | + | @param _newsize: size_t + | @param x: process_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< process_info_t > & + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) | truncate(self) @@ -46961,22 +46771,22 @@ class register_info_t(__builtin__.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | bit_strings | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -46996,57 +46806,74 @@ class regval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | r: regval_t const & + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | | bytes(self, *args) | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) + | clear(self) | Clear register value. | | get_data(self, *args) | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) | get_data_size(self) -> size_t + | Get size of value. | | set_bytes(self, *args) | set_bytes(self, data, size) - | data: uchar const * - | size: size_t + | Initialize this regval to an empty custom value. | + | @param data: uchar const * + | @param size: size_t | | set_bytes(self, v) - | v: bytevec_t const & + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & | | set_float(self, *args) | set_float(self, x) - | x: fpvalue_t const & + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) | set_int(self, x) - | x: uint64 + | Set int value (ival) + | + | @param x: (C++: uint64) | | set_unavailable(self, *args) | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: regval_t &) + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47058,13 +46885,13 @@ class regval_t(__builtin__.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> fpvalue_t + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype | | thisown | The membership flag @@ -47096,7 +46923,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -47112,66 +46939,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -47185,19 +47018,20 @@ class scattered_segm_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) set_debug_event_code(ev, id) - @param ev (C++: debug_event_t *) - @param id (C++: event_id_t) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -47221,13 +47055,13 @@ class thread_name_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -47235,120 +47069,37 @@ class thread_name_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_thread_name_t> | delete_thread_name_t(self) -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -displays this register without returning to the next line allowing the -next register to be displayed to its right (on the same line) -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -unavailable other values mean custom data type -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -47362,738 +47113,751 @@ class IDB_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | adding_segm(self, *args) + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) + | savebase(self) | The database is being saved. | | segm_added(self, *args) + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -48124,1282 +47888,1255 @@ class IDP_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | ev_add_cref(self, *args) + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) + | ev_calcrel(self) -> int | Reserved. | | ev_can_have_type(self, *args) - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_merge_handlers(self, *args) + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_asm_or_lst(self, *args) - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_get_procmod(self, *args) - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_jump_func(self, *args) + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) - | Called if the user specified an option string in the command line: - | -p<processor name>:<options>. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_setup_til(self, *args) - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_update_call_stack(self, *args) - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) | hook(self) -> bool @@ -49525,733 +49262,745 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __repr__ = _swig_repr(self) | | adding_segm(self, *args) + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) + | savebase(self) | The database is being saved. | | segm_added(self, *args) + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -50293,160 +50042,163 @@ class asm_t(__builtin__.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -50459,6 +50211,7 @@ Help on function assemble in module ida_idp: assemble(*args) assemble(ea, cs, ip, use32, line) -> bool Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -50471,48 +50224,51 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) cfg_get_cc_header_path(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) cfg_get_cc_parm(compid, name) -> char const * - compid: comp_t - name: char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) cfg_get_cc_predefined_macros(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function clr_module_data in module ida_idp: clr_module_data(*args) + clr_module_data(data_id) -> void * Unregister pointer to database specific module data. - clr_module_data(data_id) -> void * - @param data_id: an data_id that was assigned by set_module_data() - (C++: int) - @return: previously registered pointer for the current database. it - can be deallocated now. Multiple calls to this function with - the same id are forbidden. + @param data_id: (C++: int) an data_id that was assigned by set_module_data() + @return: previously registered pointer for the current database. it can be + deallocated now. Multiple calls to this function with the same id are + forbidden. Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) delay_slot_insn(ea, bexec, fexec) -> bool - ea: ea_t * - bexec: bool * - fexec: bool * + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) + gen_idb_event(code) the kernel will use this function to generate idb_events - gen_idb_event(code) - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t Help on function get_ash in module ida_idp: @@ -50523,43 +50279,47 @@ Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) get_idb_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) get_idb_notifier_ud_addr(hooks) -> PyObject * - hooks: IDB_Hooks * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) get_idp_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) get_idp_notifier_ud_addr(hooks) -> PyObject * - hooks: IDP_Hooks * + + @param hooks: IDP_Hooks * Help on function get_module_data in module ida_idp: get_module_data(*args) + get_module_data(data_id) -> void * Get pointer to the database specific module data. - get_module_data(data_id) -> void * - @param data_id: data id that was initialized by set_module_data() - (C++: int) - @return: previously registered pointer for the current database + @param data_id: (C++: int) data id that was initialized by set_module_data() + @return: previously registered pointer for the current database Help on function get_ph in module ida_idp: @@ -50570,105 +50330,180 @@ Help on function get_reg_info in module ida_idp: get_reg_info(*args) get_reg_info(regname, bitrange) -> char const * - regname: char const * - bitrange: bitrange_t * + + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - get_reg_name(reg, width, reghi=-1) -> str - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) - Does an instruction with the specified feature modify the i-th - operand? - has_cf_chg(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) - Does an instruction with the specified feature use a value of the i-th - operand? - has_cf_use(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) + has_insn_feature(icode, bit) -> bool Does the specified instruction have the specified feature? - has_insn_feature(icode, bit) -> bool - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: int) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - is_align_insn(ea) -> int - @param ea (C++: ea_t) + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) + is_basic_block_end(insn, call_insn_stops_block) -> bool Is the instruction the end of a basic block? - is_basic_block_end(insn, call_insn_stops_block) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) + is_call_insn(insn) -> bool Is the instruction a "call"? - is_call_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) + is_indirect_jump_insn(insn) -> bool Is the instruction an indirect jump? - is_indirect_jump_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) + is_ret_insn(insn, strict=True) -> bool Is the instruction a "return"? - is_ret_insn(insn, strict=True) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(__builtin__.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_num_range_t> + | delete_num_range_t(self) + +Help on class params_t in module ida_idp: + +class params_t(__builtin__.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_params_t> + | delete_params_t(self) Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) + parse_reg_name(ri, regname) -> bool Get register info by name. - parse_reg_name(ri, regname) -> bool - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success Help on __ph in module ida_idp object: @@ -50719,21 +50554,24 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) ph_calcrel(ea) - ea: ea_t + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) ph_find_op_value(insn, op) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - op: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) ph_find_reg_value(insn, reg) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - reg: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: @@ -50768,7 +50606,7 @@ ph_get_id(*args) Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) - ph_get_instruc() -> PyObject * + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -50787,7 +50625,7 @@ ph_get_instruc_start(*args) Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) - ph_get_operand_info(ea, n) -> PyObject * + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -50800,9 +50638,10 @@ Help on function ph_get_reg_accesses in module ida_idp: ph_get_reg_accesses(*args) ph_get_reg_accesses(accvec, insn, flags) -> ssize_t - accvec: reg_accesses_t * - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - flags: int + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int Help on function ph_get_reg_code_sreg in module ida_idp: @@ -50831,7 +50670,7 @@ ph_get_reg_last_sreg(*args) Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) - ph_get_regnames() -> PyObject * + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: @@ -50856,8 +50695,9 @@ Help on function process_config_directive in module ida_idp: process_config_directive(*args) process_config_directive(directive, priority=2) - directive: char const * - priority: int + + @param directive: char const * + @param priority: int Help on class processor_t in module ida_idp: @@ -51061,706 +50901,700 @@ class processor_t(IDP_Hooks) | __repr__ = _swig_repr(self) | | ev_add_cref(self, *args) + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) + | ev_calcrel(self) -> int | Reserved. | | ev_clean_tbit(self, *args) + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_merge_handlers(self, *args) + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_gen_asm_or_lst(self, *args) - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_procmod(self, *args) - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_setup_til(self, *args) - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_update_call_stack(self, *args) - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) | hook(self) -> bool @@ -51795,20 +51629,23 @@ class reg_access_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __init__(self, *args) | __init__(self) -> reg_access_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __repr__ = _swig_repr(self) | | have_common_bits(self, *args) | have_common_bits(self, r) -> bool - | @param r (C++: const reg_access_t &) + | + | @param r: reg_access_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -51820,16 +51657,16 @@ class reg_access_t(__builtin__.object) | list of weak references to the object (if defined) | | access_type - | reg_access_t_access_type_get(self) -> access_type_t + | access_type | | opnum - | reg_access_t_opnum_get(self) -> uchar + | opnum | | range - | reg_access_t_range_get(self) -> bitrange_t + | range | | regnum - | reg_access_t_regnum_get(self) -> int + | regnum | | thisown | The membership flag @@ -51849,15 +51686,19 @@ class reg_access_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reg_access_vec_t - | x: qvector< reg_access_t > const & + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51867,33 +51708,39 @@ class reg_access_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) | capacity(self) -> size_t @@ -51906,78 +51753,85 @@ class reg_access_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) | extract(self) -> reg_access_t | | find(self, *args) | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) | truncate(self) @@ -52034,11 +51888,13 @@ class reg_accesses_t(reg_access_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52048,31 +51904,37 @@ class reg_accesses_t(reg_access_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) | capacity(self) -> size_t @@ -52085,78 +51947,85 @@ class reg_accesses_t(reg_access_vec_t) | | end(self, *args) | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) | extract(self) -> reg_access_t | | find(self, *args) | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) | truncate(self) @@ -52179,36 +52048,43 @@ class reg_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52220,10 +52096,10 @@ class reg_info_t(__builtin__.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -52238,49 +52114,48 @@ Help on function register_cfgopts in module ida_idp: register_cfgopts(*args) register_cfgopts(opts, nopts, cb=None, obj=None) -> bool - opts: cfgopt_t const [] - nopts: size_t - cb: config_changed_cb_t * - obj: void * + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * Help on function set_module_data in module ida_idp: set_module_data(*args) - Starting from IDA v7.5 all modules should use the following 3 - functions to handle idb specific static data because now the kernel - supports opening and working with multiple idbs files simultaneously. - See the source code of the processor modules in the SDK for the usage - examples. Register pointer to database specific module data. - set_module_data(data_id, data_ptr) -> void * - @param data_id: initially the pointed-to value must be 0, the kernel - will fill it with a unique id. once assigned, the - data_id does not change. (C++: int *) - @param data_ptr: pointer to the data to register (C++: void *) - @return: data_ptr. The registered pointer can later be retrieved using - get_module_data() + Starting from IDA v7.5 all modules should use the following 3 functions to + handle idb specific static data because now the kernel supports opening and + working with multiple idbs files simultaneously. See the source code of the + processor modules in the SDK for the usage examples. Register pointer to + database specific module data. + + @param data_id: (C++: int *) initially the pointed-to value must be 0, the kernel will fill + it with a unique id. once assigned, the data_id does not change. + @param data_ptr: (C++: void *) pointer to the data to register + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() Help on function set_processor_type in module ida_idp: set_processor_type(*args) - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function sizeof_ldbl in module ida_idp: @@ -52290,1013 +52165,21 @@ sizeof_ldbl(*args) Help on function str2reg in module ida_idp: str2reg(*args) + str2reg(p) -> int Get any reg number (-1 on error) - str2reg(p) -> int - @param p (C++: const char *) + @param p: (C++: const char *) char const * -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -One symbol per processor byte Meaningful only for wide byte processors -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -Invert meaning of \\inf{wide_high_byte_first} for text strings (For -processors with bytes bigger than 8 bits) -""" - -ida_idp.AS2_TERSESTR -""" -'terse' structure initialization form NAME<fld,fld,...> is supported -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -.align directive expects an exponent rather than a power of 2 (.align -5 means to align at 32byte boundary) -""" - -ida_idp.AS_ASCIIC -""" -ascii directive accepts C-like escape sequences (\\n,\\x01 and similar) -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_CHG7 -""" -The instruction modifies the 7th operand. -""" - -ida_idp.CF_CHG8 -""" -The instruction modifies the 8th operand. -""" - -ida_idp.CF_HLL -""" -Instruction may be present in a high level language function. -""" - -ida_idp.CF_JUMP -""" -The instruction passes execution using indirect jump or call (thus -needs additional analysis) -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -Instruction doesn't pass execution to the next instruction -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CF_USE7 -""" -The instruction uses value of the 7th operand. -""" - -ida_idp.CF_USE8 -""" -The instruction uses value of the 8th operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.HKCB_GLOBAL -""" -is global event listener? if true, the listener will survive database -closing and opening. it will stay in the memory until explicitly -unhooked. otherwise the kernel will delete it as soon as the owner is -unloaded. should be used only with PLUGIN_FIX plugins. -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_RISCV -""" -RISC-V. -""" - -ida_idp.PLFM_RL78 -""" -Renesas RL78. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. +Module "ida_ieee"s docstring: """ +IEEE floating point functions.""" -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_XTENSA -""" -Tensilica Xtensa. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PR2_CODE16_BIT -""" -low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 -""" - -ida_idp.PR2_IDP_OPTS -""" -the module has processor-specific configuration options -""" - -ida_idp.PR2_MACRO -""" -processor supports macro instructions -""" - -ida_idp.PR2_MAPPINGS -""" -the processor module uses memory mapping -""" - -ida_idp.PR2_REALCVT -""" -the module has a custom 'ev_realcvt' implementation (otherwise -IEEE-754 format is assumed) -""" - -ida_idp.PR2_REL_BITS -""" -(Lumina) calcrel info has bits granularity, not bytes - construction -flag only -""" - -ida_idp.PR2_USE_CALCREL -""" -(Lumina) the module supports calcrel info -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -The user can't change segments and code/data attributes (display only) -""" - -ida_idp.PR_NO_SEGMOVE -""" -the processor module doesn't support 'move_segm()' (i.e. the user -can't move segments) -""" - -ida_idp.PR_OUTER -""" -has outer operands (currently only mc68k) -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -the processor module supports type information callbacks ALL OF THEM -SHOULD BE IMPLEMENTED! -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" -'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on function ecleaz in module ida_ieee: ecleaz(*args) ecleaz(x) - @param x (C++: eNI) + + @param x: unsigned short [(6+3)] Help on class fpvalue_shorts_array_t in module ida_ieee: @@ -53307,11 +52190,13 @@ class fpvalue_shorts_array_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> fpvalue_shorts_array_t - | data: unsigned short (&)[FPVAL_NWORDS] + | + | @param data: unsigned short (&)[FPVAL_NWORDS] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53323,15 +52208,19 @@ class fpvalue_shorts_array_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned short const & + | + | @param i: size_t + | @param v: unsigned short const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53346,7 +52235,7 @@ class fpvalue_shorts_array_t(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | fpvalue_shorts_array_t_data_get(self) -> unsigned short (&)[FPVAL_NWORDS] + | data | | thisown | The membership flag @@ -53366,43 +52255,53 @@ class fpvalue_t(__builtin__.object) | | __add__(self, *args) | __add__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __getitem__(self, i) | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __init__(self, *args) | __init__(self) -> fpvalue_t - | in: bytevec12_t const & + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __mul__(self, *args) | __mul__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __repr__ = _swig_repr(self) | @@ -53413,11 +52312,13 @@ class fpvalue_t(__builtin__.object) | | __sub__(self, *args) | __sub__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __truediv__(self, *args) | __truediv__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | _get_10bytes(self, *args) | _get_10bytes(self) @@ -53433,124 +52334,149 @@ class fpvalue_t(__builtin__.object) | | _set_10bytes(self, *args) | _set_10bytes(self, _in) - | in: bytevec10_t const & + | + | Parameters + | ---------- + | in: bytevec10_t const & | | _set_bytes(self, *args) | _set_bytes(self, _in) - | in: bytevec12_t const & + | + | Parameters + | ---------- + | in: bytevec12_t const & | | _set_float(self, *args) | _set_float(self, v) - | v: double + | + | Parameters + | ---------- + | v: double | | assign(self, *args) | assign(self, r) - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | eabs(self, *args) + | eabs(self) | Calculate absolute value. | | fadd(self, *args) + | fadd(self, y) -> fpvalue_error_t | Arithmetic operations. | - | fadd(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | @param y: (C++: const fpvalue_t &) fpvalue_t const & | | fdiv(self, *args) | fdiv(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | fmul(self, *args) | fmul(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | from_10bytes(self, *args) + | from_10bytes(self, fpval) -> fpvalue_error_t | Conversions for 10-byte floating point values. | - | from_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_12bytes(self, *args) + | from_12bytes(self, fpval) -> fpvalue_error_t | Conversions for 12-byte floating point values. | - | from_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_int64(self, *args) | from_int64(self, x) - | @param x (C++: int64) + | + | @param x: int64 | | from_str(self, *args) + | from_str(self, p) -> fpvalue_error_t | Convert string to IEEE. | - | from_str(self, p) -> fpvalue_error_t - | p: char const * + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. | | from_sval(self, *args) + | from_sval(self, x) | Convert integer to IEEE. | - | from_sval(self, x) - | @param x (C++: sval_t) + | @param x: (C++: sval_t) | | from_uint64(self, *args) | from_uint64(self, x) - | @param x (C++: uint64) + | + | @param x: uint64 | | fsub(self, *args) | fsub(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | get_kind(self, *args) + | get_kind(self) -> fpvalue_kind_t | Get value kind. | | is_negative(self, *args) + | is_negative(self) -> bool | Is negative value? | | mul_pow2(self, *args) + | mul_pow2(self, power_of_2) -> fpvalue_error_t | Multiply by a power of 2. | - | mul_pow2(self, power_of_2) -> fpvalue_error_t - | @param power_of_2 (C++: int32) + | @param power_of_2: (C++: int32) | | negate(self, *args) + | negate(self) | Negate. | | to_10bytes(self, *args) | to_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_12bytes(self, *args) | to_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_int64(self, *args) | to_int64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | to_str(self, *args) + | to_str(self, mode) | Convert IEEE to string. | - | to_str(self, mode) - | @param mode: broken down into: low byte: number of digits after '.' - | second byte: FPNUM_LENGTH third byte: FPNUM_DIGITS - | (C++: uint) + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS | | to_sval(self, *args) + | to_sval(self, round=False) -> fpvalue_error_t | Convert IEEE to integer (+-0.5 if round) | - | to_sval(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | @param round: (C++: bool) | | to_uint64(self, *args) | to_uint64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53583,7 +52509,7 @@ class fpvalue_t(__builtin__.object) | uint64 | | w - | fpvalue_t_w_get(self) -> uint16 [6] + | w | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -53591,17 +52517,18 @@ class fpvalue_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_fpvalue_t> | delete_fpvalue_t(self) -=== ida_ieee EPYDOC INJECTIONS === -ida_ieee.E_SPECIAL_EXP -""" -Exponent in 'fpvalue_t' for NaN and Inf. +Module "ida_kernwin"s docstring: """ +Defines the interface between the kernel and the UI. + +It contains: +* the UI dispatcher notification codes (ui_notification_t) +* convenience functions for UI services +* structures which hold information about the lines (disassembly, structures, +enums) generated by the kernel +* functions to interact with the user (dialog boxes) +* some string and conversion functions.""" -ida_ieee.IEEE_EXONE -""" -The exponent of 1.0. -""" -=== ida_ieee EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(__builtin__.object) @@ -53664,7 +52591,7 @@ class Choose(__builtin__.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -53674,7 +52601,7 @@ class Choose(__builtin__.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -53945,10 +52872,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -53990,7 +52917,7 @@ class Form(__builtin__.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param close_normally | 1: form is closed normally as if the user pressed Enter | 0: form is closed abnormally as if the user pressed Esc | @return: None @@ -54038,8 +52965,7 @@ class Form(__builtin__.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @return: - color button, radio controls: integer | - file/dir input, string input and string label: string | - embedded chooser control (0-based indices of selected items): integer list | - for multilinetext control: textctrl_info_t @@ -54065,7 +52991,7 @@ class Form(__builtin__.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param value | - embedded chooser: a 0-base indices list to select embedded chooser items | - multilinetext: a textctrl_info_t | - dropdown list: an integer designating the selection index if readonly @@ -54436,10 +53362,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -54595,7 +53521,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) TWidget__from_ptrval__(ptrval) -> TWidget * - ptrval: size_t + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -54608,271 +53535,287 @@ class UI_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __real_database_closed = database_closed(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | __repr__ = _swig_repr(self) | | create_desktop_widget(self, *args) - | create a widget, to be placed in the widget tree (at desktop- - | creation time.) - | | create_desktop_widget(self, title, cfg) -> PyObject * - | @param title (C++: const char *) - | @param cfg (C++: const jobj_t *) + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) + | current_widget_changed(self, widget, prev_widget) | The currently-active TWidget changed. | - | current_widget_changed(self, widget, prev_widget) - | @param widget (C++: TWidget *) - | @param prev_widget (C++: TWidget *) + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) | | database_closed = __wrapper(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | database_inited(self, *args) - | database initialization has completed. the kernel is about to run - | idc scripts - | | database_inited(self, is_new_database, idc_script) - | @param is_new_database (C++: int) - | @param idc_script: - may be NULL (C++: const char *) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param idc_script: (const char *) - may be nullptr + | @return: void See also ui_initing_database. This event is called for both new + | and old databases. | | debugger_menu_change(self, *args) + | debugger_menu_change(self, enable) | debugger menu modification detected | - | debugger_menu_change(self, enable) - | @param enable: true: debugger menu has been added, or a different - | debugger has been selected false: debugger menu will be - | removed (user switched to "No debugger") (C++: bool) + | @param enable: (bool) true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be removed + | (user switched to "No debugger") | | desktop_applied(self, *args) + | desktop_applied(self, name, from_idb, type) | a desktop has been applied | - | desktop_applied(self, name, from_idb, type) - | @param name: the desktop name (C++: const char *) - | @param from_idb: the desktop was stored in the IDB (false if it comes - | from the registry) (C++: bool) - | @param type: the desktop type (1-disassembly, 2-debugger, 3-merge) - | (C++: int) + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) | | destroying_plugmod(self, *args) + | destroying_plugmod(self, plugmod, entry) | The plugin object is about to be destroyed | - | destroying_plugmod(self, plugmod, entry) - | @param plugmod (C++: const plugmod_t *) - | @param entry (C++: const plugin_t *) + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) | | destroying_procmod(self, *args) + | destroying_procmod(self, procmod) | The processor module is about to be destroyed | - | destroying_procmod(self, procmod) - | @param procmod (C++: const procmod_t *) + | @param procmod: (const procmod_t *) | | finish_populating_widget_popup(self, *args) - | IDA is about to be done populating the context menu for a widget. - | This is your chance to 'attach_action_to_popup()' . - | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is about to be done populating the context menu for a widget. This is + | your chance to attach_action_to_popup(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) - | get item-specific attributes for a chooser. This callback is - | generated only after enable_chooser_attrs() - | | get_chooser_item_attrs(self, chooser, n, attrs) - | @param chooser (C++: const chooser_base_t *) - | @param n (C++: size_t) - | @param attrs (C++: chooser_item_attrs_t *) + | get item-specific attributes for a chooser. This callback is generated only + | after enable_chooser_attrs() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) + | get_custom_viewer_hint(self, viewer, place) -> PyObject * | ui wants to display a hint for a viewer (idaview or custom). Every | subscriber is supposed to append the hint lines to HINT and increment - | IMPORTANT_LINES accordingly. Completely overwriting the existing lines - | in HINT is possible but not recommended. If the REG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the source-level debugger-generated hints. The - | following keywords might appear at the beginning of the returned - | hints: HIGHLIGHT textwhere text will be highlighted CAPTION - | captioncaption for the hint widget + | IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT + | is possible but not recommended. If the REG_HINTS_MARKER sequence is found in + | the returned hints string, it will be replaced with the contents of the + | "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned + | hints string, it will be replaced with the contents of the source-level + | debugger-generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT text + | where text will be highlighted CAPTION caption + | caption for the hint widget | - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | @param viewer: viewer (C++: TWidget*) - | @param place: current position in the viewer (C++: place_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | @param viewer: (TWidget*) viewer + | @param place: (place_t *) current position in the viewer + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | get_ea_hint(self, *args) - | ui wants to display a simple hint for an address. Use this event - | to generate a custom hint See also more generic 'ui_get_item_hint' - | | get_ea_hint(self, ea) -> PyObject * - | @param ea (C++: ea_t) + | ui wants to display a simple hint for an address. Use this event to generate + | a custom hint See also more generic ui_get_item_hint + | + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) - | ui wants to display multiline hint for an item. See also more - | generic 'ui_get_custom_viewer_hint' - | | get_item_hint(self, ea, max_lines) -> PyObject * - | @param ea: or item id like a structure or enum member (C++: ea_t) - | @param max_lines: maximal number of lines (C++: int) + | ui wants to display multiline hint for an item. See also more generic + | ui_get_custom_viewer_hint + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint | | get_lines_rendering_info(self, *args) + | get_lines_rendering_info(self, out, widget, info) | get lines rendering information | - | get_lines_rendering_info(self, out, widget, info) - | @param out (C++: lines_rendering_output_t *) - | @param widget (C++: const TWidget *) - | @param info (C++: const lines_rendering_input_t *) + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) + | get_widget_config(self, widget, cfg) -> PyObject * | retrieve the widget configuration (it will be passed back at | ui_create_desktop_widget-, and ui_set_widget_config-time) | - | get_widget_config(self, widget, cfg) -> PyObject * - | @param widget (C++: const TWidget *) - | @param cfg (C++: jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) | hook(self) -> bool | | idcstart(self, *args) + | idcstart(self) | Start of IDC engine work. | | idcstop(self, *args) + | idcstop(self) | Stop of IDC engine work. | | initing_database(self, *args) + | initing_database(self) | database initialization has started. + | + | @return: void See also ui_database_inited. This event is called for both new and + | old databases. | | plugin_loaded(self, *args) + | plugin_loaded(self, plugin_info) | The plugin was loaded in memory. | - | plugin_loaded(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) + | plugin_unloading(self, plugin_info) | The plugin is about to be unloaded | - | plugin_unloading(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) - | IDA is populating the context menu for a widget. This is your - | chance to 'attach_action_to_popup()' .Have a look at - | ui_finish_populating_widget_popup, if you want to augment the context - | menu with your own actions after the menu has had a chance to be - | properly populated by the owning component or plugin (which typically - | does it on ui_populating_widget_popup.) - | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is populating the context menu for a widget. This is your chance to + | attach_action_to_popup(). + | + | Have a look at ui_finish_populating_widget_popup, if you want to augment the + | context menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically does it on + | ui_populating_widget_popup.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) + | postprocess_action(self) | an ida ui action has been handled | | preprocess_action(self, *args) + | preprocess_action(self, name) -> int | ida ui is about to handle a user action. | - | preprocess_action(self, name) -> int - | @param name: ui action name. these names can be looked up in - | ida[tg]ui.cfg (C++: const char *) - | @retval: 0 - ok - | @retval: nonzero - a plugin has handled the command + | @param name: (const char *) ui action name. these names can be looked up in + | ida[tg]ui.cfg + | @retval 0: ok + | @retval nonzero: a plugin has handled the command | | range(self, *args) - | The disassembly range has been changed (\inf{min_ea} ... - | \inf{max_ea}). UI should redraw the scrollbars. See also: - | 'ui_lock_range_refresh' + | range(self) + | The disassembly range has been changed ( idainfo::min_ea ... + | idainfo::max_ea). UI should redraw the scrollbars. See also: + | ui_lock_range_refresh | | ready_to_run(self, *args) - | all UI elements have been initialized. Automatic plugins may hook - | to this event to perform their tasks. + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) - | Resume the suspended graphical interface. Only the text version. - | Interface should respond to it + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) - | The kernel has saved the database. This callback just informs the - | interface. Note that at the time this notification is sent, the - | internal paths are not updated yet, and calling - | get_path(PATH_TYPE_IDB) will return the previous path. - | | saved(self, path) - | @param path: the database path (C++: const char *) + | The kernel has saved the database. This callback just informs the interface. + | Note that at the time this notification is sent, the internal paths are not + | updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path. + | + | @param path: (const char *) the database path | | saving(self, *args) - | The kernel is flushing its buffers to the disk. The user interface - | should save its state. Parameters: none Returns: none + | saving(self) + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) + | screen_ea_changed(self, ea, prev_ea) | The "current address" changed | - | screen_ea_changed(self, ea, prev_ea) - | @param ea (C++: ea_t) - | @param prev_ea (C++: ea_t) + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) + | set_widget_config(self, widget, cfg) | set the widget configuration | - | set_widget_config(self, widget, cfg) - | @param widget (C++: const TWidget *) - | @param cfg (C++: const jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) - | Suspend graphical interface. Only the text version. Interface - | should respond to it. + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) | unhook(self) -> bool | | updated_actions(self, *args) + | updated_actions(self) | IDA is done updating actions. | | updating_actions(self, *args) - | IDA is about to update all actions. If your plugin needs to - | perform expensive operations more than once (e.g., once per action it - | registers), you should do them only once, right away. - | | updating_actions(self, ctx) - | @param ctx (C++: action_update_ctx_t *) + | IDA is about to update all actions. If your plugin needs to perform + | expensive operations more than once (e.g., once per action it registers), you + | should do them only once, right away. + | + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) - | TWidget is about to close. This event precedes ui_widget_invisible. - | Use this to perform some possible actions relevant to the lifecycle of - | this widget - | | widget_closing(self, widget) - | @param widget (C++: TWidget *) + | TWidget is about to close. This event precedes ui_widget_invisible. Use this to + | perform some possible actions relevant to the lifecycle of this widget + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) + | widget_invisible(self, widget) | TWidget is being closed. Use this event to destroy the window controls | - | widget_invisible(self, widget) - | @param widget (C++: TWidget *) + | @param widget: (TWidget *) | | widget_visible(self, *args) - | TWidget is displayed on the screen. Use this event to populate the - | window with controls - | | widget_visible(self, widget) - | @param widget (C++: TWidget *) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54903,7 +53846,8 @@ class View_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -54914,87 +53858,87 @@ class View_Hooks(__builtin__.object) | unhook(self) -> bool | | view_activated(self, *args) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, *args) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_created(self, *args) + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, *args) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, *args) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55052,34 +53996,49 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) _ask_addr(addr, format) -> bool - addr: ea_t * - format: char const * + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) _ask_long(value, format) -> bool - value: sval_t * - format: char const * + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) _ask_seg(sel, format) -> bool - sel: sel_t * - format: char const * + + Parameters + ---------- + sel: sel_t * + format: char const * Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: _kludge_force_declare_dirspec_t(*args) _kludge_force_declare_dirspec_t(arg1) - arg1: dirspec_t const * + + Parameters + ---------- + arg1: dirspec_t const * Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: _kludge_force_declare_dirtree_t(*args) _kludge_force_declare_dirtree_t(arg1) - arg1: dirtree_t const * + + Parameters + ---------- + arg1: dirtree_t const * Help on class action_ctx_base_cur_sel_t in module ida_kernwin: @@ -55106,13 +54065,13 @@ class action_ctx_base_cur_sel_t(__builtin__.object) | list of weak references to the object (if defined) | | _from - | action_ctx_base_cur_sel_t__from_get(self) -> twinpos_t + | _from | | thisown | The membership flag | | to - | action_ctx_base_cur_sel_t_to_get(self) -> twinpos_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55145,7 +54104,7 @@ class action_ctx_base_source_t(__builtin__.object) | list of weak references to the object (if defined) | | chooser - | action_ctx_base_source_t_chooser_get(self) -> chooser_base_t + | chooser | | thisown | The membership flag @@ -55168,22 +54127,14 @@ class action_ctx_base_t(__builtin__.object) | | __repr__ = _swig_repr(self) | - | _get_form(self, *args) - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) + | has_flag(self, flag) -> bool | Check if the given flag is set. | - | has_flag(self, flag) -> bool - | @param flag (C++: uint32) + | @param flag: (C++: uint32) | | reset(self, *args) + | reset(self) | Invalidate all context info. | | ---------------------------------------------------------------------- @@ -55196,82 +54147,79 @@ class action_ctx_base_t(__builtin__.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum | | cur_enum_member - | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg | | cur_sel - | action_ctx_base_t_cur_sel_get(self) -> action_ctx_base_cur_sel_t + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | dirtree_selection - | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname | | source - | action_ctx_base_t_source_get(self) -> action_ctx_base_source_t + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55288,13 +54236,14 @@ class action_desc_t(__builtin__.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | name: char const * - | label: char const * - | handler: PyObject * - | shortcut: char const * - | tooltip: char const * - | icon: int - | flags: int + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -55308,31 +54257,31 @@ class action_desc_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> void const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55350,8 +54299,22 @@ class action_handler_t(__builtin__.object) | __init__(self) | | activate(self, ctx) + | Activate an action. This function implements the core behavior of an action. It + | is called when the action is triggered, from a menu, from a popup menu, from the + | toolbar, or programmatically. + | + | @return: non-zero: all IDA windows will be refreshed | | update(self, ctx) + | Update an action. This is called when the context of the UI changed, and we need + | to let the action update some of its properties if needed (label, icon, ...) + | + | In addition, this lets IDA know whether the action is enabled, and when it + | should be queried for availability again. + | + | Note: This callback is not meant to change anything in the application's state, + | except by calling one (or many) of the "update_action_*()" functions on this + | very action. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55365,16 +54328,16 @@ class action_handler_t(__builtin__.object) Help on function activate_widget in module ida_kernwin: activate_widget(*args) - Activate widget (only gui version) ( 'ui_activate_widget' ). - activate_widget(widget, take_focus) - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) - add_hotkey(hotkey, pyfunc) -> PyObject * + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -55386,28 +54349,28 @@ add_hotkey(*args) Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. + add_spaces(s, len) -> str + Add space characters to the colored string so that its length will be at least + 'len' characters. Don't trim the string if it is longer than 'len'. - add_spaces(s, len) -> PyObject * - s: char const * - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) + addon_count() -> int Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -55432,34 +54395,34 @@ class addon_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55470,83 +54433,114 @@ class addon_info_t(__builtin__.object) Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: ask_addr(defval, format) - # ---------------------------------------------------------------------- + Output a formatted string to the output window (msg) preprended with "**DATABASE + IS CORRUPTED: " Display a dialog box and wait for the user to input an address + (ui_ask_addr). + + @retval 0: the user pressed Esc. + @retval 1: ok, the user entered an address Help on function ask_buttons in module ida_kernwin: ask_buttons(*args) - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - ask_buttons(Yes, No, Cancel, deflt, format) -> int - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + Display a dialog box and get choice from maximum three possibilities + (ui_ask_buttons). + @note: for all buttons: + * use "" or nullptr to take the default name for the button. + * use 'format' to hide the cancel button + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) printf-style format string for question. It may have some + prefixes, see below. + @return: one of Button IDs specifying the selected button (Esc key returns + Cancel/3rd button value) Help on function ask_file in module ida_kernwin: ask_file(*args) ask_file(for_saving, defval, format) -> char * - @param for_saving (C++: bool) - @param defval (C++: const char *) - @param format (C++: const char *) + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: ask_for_feedback(*args) - Show a message box asking to send the input file tosupport@hex- - rays.com. - ask_for_feedback(format) - @param format: the reason why the input file is bad (C++: const char - *) + Show a message box asking to send the input file to \link{mailto:support@hex- + rays.com,support@hex-rays.com}. + + @param format: (C++: const char *) the reason why the input file is bad Help on function ask_form in module ida_kernwin: ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" keyword, then the return values are the same as in the ask_yn() + function (Button IDs) + + @retval 0: the user pressed Esc, no memory to display or form syntax error a + dialog box (a warning is displayed in this case). all variables + retain their original values. + @retval 1: ok, all input fields are filled and validated. + @retval -1: the form had BUTTON CANCEL and the user cancelled the dialog Help on function ask_ident in module ida_kernwin: ask_ident(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an identifier. If the user + enters a non-valid identifier, this function displays a warning and allows the + user to correct it. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: ask_long(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an number (ui_ask_long). The + number is represented in C-style. This function allows to enter any IDC + expression and properly calculates it. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered a valid number. Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_str in module ida_kernwin: ask_str(*args) - ask_str(defval, hist, prompt) -> PyObject * + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) - ask_text(max_size, defval, prompt) -> PyObject * + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -55557,106 +54551,97 @@ ask_text(*args) Help on function ask_yn in module ida_kernwin: ask_yn(*args) + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). + attach_action_to_menu(menupath, name, flags=0) -> bool + Attach a previously-registered action to the menu (ui_attach_action_to_menu). + @note: You should not change top level menu, or the Edit,Plugins submenus If you + want to modify the debugger menu, do it at the ui_debugger_menu_change + event (ida might destroy your menu item if you do it elsewhere). - attach_action_to_menu(menupath, name, flags) -> bool - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success + @param menupath: (C++: const char *) path to the menu item after or before which the insertion will + take place. + * Example: Debug/StartProcess + * Whitespace, punctuation are ignored. + * It is allowed to specify only the prefix of the menu item. + * Comparison is case insensitive. + * menupath may start with the following prefixes: + * [S] - modify the main menu of the structure window + * [E] - modify the main menu of the enum window + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) - Insert a previously-registered action into the widget's popup menu ( - 'ui_attach_action_to_popup' ). This function has two "modes": 'single- - shot', and 'permanent'. - attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success + Insert a previously-registered action into the widget's popup menu + (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and + 'permanent'. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup menu + * if non-nullptr, the action is added to this popup menu invocation (i.e., + 'single-shot') + * if nullptr, the action is added to a list of actions that should always be + present in context menus for this widget (i.e., 'permanent'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - attach_action_to_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success + Create & insert an action into the widget's popup menu + (ui_attach_dynamic_action_to_popup). + @note: action_desc_t::handler for 'desc' must be instantiated using 'new', as it + will be 'delete'd when the action is unregistered. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup + @param desc: (C++: const action_desc_t &) created with DYNACTION_DESC_LITERAL + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ constants (see Set menu flags) + @return: success Help on function banner in module ida_kernwin: banner(*args) - Show a banner dialog box ( 'ui_banner' ). - banner(wait) -> bool - @param wait: time to wait before closing (C++: int) - @retval: 1 - ok - @retval: 0 - esc was pressed + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) - Issue a beeping sound ( 'ui_beep' ). - beep(beep_type=beep_default) - @param beep_type: beep_t (C++: beep_t) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: @@ -55664,108 +54649,114 @@ call_nav_colorizer(*args) call_nav_colorizer(dict, ea, nbytes) -> uint32 To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - cancel_exec_request(req_id) -> bool - @param req_id: request id (C++: int) - @retval: true - successfully canceled - @retval: false - request has already been processed. + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. Help on function cancel_thread_exec_requests in module ida_kernwin: cancel_thread_exec_requests(*args) - Try to cancel asynchronous exec requests created by the specified - thread. - cancel_thread_exec_requests(tid) -> int - @param tid: thread id (C++: qthread_t) - @return: number of the canceled requests. + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) choose_activate(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) choose_choose(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) choose_close(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) choose_create_embedded_chobj(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - choose_entry(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - choose_enum(title, default_id) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) - Choose an enum, restricted by value & size ( 'ui_choose' , - 'chtype_enum_by_value_and_size' ). If the given value cannot be found - initially, this function will ask if the user would like to import a - standard enum. - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uint64) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) - choose_find(title) -> PyObject * - title: char const * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) - Choose a function ( 'ui_choose' , 'chtype_func' ). - choose_func(title, default_ea) -> func_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) choose_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: @@ -55778,71 +54769,75 @@ choose_idasgn(*args) Help on function choose_name in module ida_kernwin: choose_name(*args) - Choose a name ( 'ui_choose' , 'chtype_name' ). - choose_name(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) choose_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - choose_segm(title, default_ea) -> segment_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - choose_srcp(title) -> sreg_range_t * - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - choose_stkvar_xref(pfn, mptr) -> ea_t - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - choose_struc(title) -> struc_t * - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). + + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - choose_xref(to) -> ea_t - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected Help on class chooser_base_t in module ida_kernwin: @@ -55856,6 +54851,7 @@ class chooser_base_t(__builtin__.object) | __repr__ = _swig_repr(self) | | ask_item_attrs(self, *args) + | ask_item_attrs(self) -> bool | should chooser generate ui_get_chooser_item_attrs events? | | can_del(self, *args) @@ -55868,6 +54864,7 @@ class chooser_base_t(__builtin__.object) | can_filter(self) -> bool | | can_ins(self, *args) + | can_ins(self) -> bool | is an operation allowed? | | can_refresh(self, *args) @@ -55877,27 +54874,29 @@ class chooser_base_t(__builtin__.object) | can_sort(self) -> bool | | get_builtin_number(self, *args) + | get_builtin_number(self) -> uint | get number of the built-in chooser | | get_count(self, *args) + | get_count(self) -> size_t | get the number of elements in the chooser | | get_ea(self, *args) - | get an address of an element. Used to set breakpoint in any chooser - | which implements this callback. - | | get_ea(self, arg2) -> ea_t - | arg2: size_t - | @return: the effective address, BADADDR if the element has no address + | get an address of an element. Used to set breakpoint in any chooser which + | implements this callback. + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address | | get_quick_filter_initial_mode(self, *args) | get_quick_filter_initial_mode(self) -> int | | get_row(self, *args) + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) | get a description of an element. | - | get_row(self, n) -> PyObject * - | @param n: element number (0.. get_count() -1) (C++: size_t) + | @param n: (C++: size_t) element number (0..get_count()-1) | | has_diff_capability(self, *args) | has_diff_capability(self) -> bool @@ -55905,35 +54904,42 @@ class chooser_base_t(__builtin__.object) | has_dirtree(self, *args) | has_dirtree(self) -> bool | + | is_dirtree_persisted(self, *args) + | is_dirtree_persisted(self) -> bool + | | is_force_default(self, *args) + | is_force_default(self) -> bool | should selection of the already opened non-modal chooser be changed? | | is_modal(self, *args) + | is_modal(self) -> bool | is choose modal? | | is_multi(self, *args) + | is_multi(self) -> bool | is multi-selection allowed? | | is_noidb(self, *args) + | is_noidb(self) -> bool | can use the chooser before opening the database? | | is_quick_filter_visible_initially(self, *args) | is_quick_filter_visible_initially(self) -> bool | | is_same(self, *args) + | is_same(self, other) -> bool | do the current and the given objects hold the same data? | - | is_same(self, other) -> bool - | @param other (C++: const chooser_base_t *) + | @param other: (C++: const chooser_base_t *) chooser_base_t const * | | is_status_bar_hidden(self, *args) | is_status_bar_hidden(self) -> bool | | popup_allowed(self, *args) + | popup_allowed(self, i) -> bool | is a popup action allowed? | - | popup_allowed(self, i) -> bool - | @param i (C++: int) + | @param i: (C++: int) | | should_rename_trigger_edit(self, *args) | should_rename_trigger_edit(self) -> bool @@ -55951,46 +54957,46 @@ class chooser_base_t(__builtin__.object) | list of weak references to the object (if defined) | | columns - | chooser_base_t_columns_get(self) -> int + | columns | | deflt_col - | chooser_base_t_deflt_col_get(self) -> int + | deflt_col | | header - | chooser_base_t_header_get(self) -> char const *const * + | header | | height - | chooser_base_t_height_get(self) -> int + | height | | icon - | chooser_base_t_icon_get(self) -> int + | icon | | popup_names - | chooser_base_t_popup_names_get(self) -> qstring [chooser_base_t::NSTDPOPUPS] + | popup_names | | thisown | The membership flag | | title - | chooser_base_t_title_get(self) -> char const * + | title | | width - | chooser_base_t_width_get(self) -> int + | width | | widths - | chooser_base_t_widths_get(self) -> int const * + | widths | | x0 - | chooser_base_t_x0_get(self) -> int + | x0 | | x1 - | chooser_base_t_x1_get(self) -> int + | x1 | | y0 - | chooser_base_t_y0_get(self) -> int + | y0 | | y1 - | chooser_base_t_y1_get(self) -> int + | y1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56030,10 +55036,10 @@ class chooser_item_attrs_t(__builtin__.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag @@ -56048,7 +55054,8 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) clear_refresh_request(mask) - @param mask (C++: uint64) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -56082,7 +55089,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | This callback is mandatory. | | @param line: typed line(s) - | @return Boolean: True-executed line, False-ask for more lines + | @return: Boolean: True-executed line, False-ask for more lines | | OnKeydown(self, line, x, sellen, vkey, shift) | A keyboard key has been pressed @@ -56096,8 +55103,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param vkey: virtual key code. if the key has been handled, it should be returned as zero | @param shift: shift state | - | @return: - | None - Nothing was changed + | @return: None - Nothing was changed | tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. | It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line) | @@ -56111,9 +55117,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -56135,105 +55141,97 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) Help on function close_chooser in module ida_kernwin: close_chooser(*args) - Close a non-modal chooser ( 'ui_close_chooser' ). - close_chooser(title) -> bool - @param title: window title of chooser to close (C++: const char *) - @return: success + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) - Close widget ( 'ui_close_widget' , only gui version). - close_widget(widget, options) - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) - Create a code viewer ( 'ui_create_code_viewer' ). A code viewer - contains on the left side a widget representing the line numbers, and - on the right side, the child widget passed as parameter. It will - inherit its title from the child widget. - create_code_viewer(custview, flags=0, parent=None) -> TWidget * - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + Create a code viewer (ui_create_code_viewer). A code viewer contains on the left + side a widget representing the line numbers, and on the right side, the child + widget passed as parameter. It will inherit its title from the child widget. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) + create_empty_widget(title, icon=-1) -> TWidget * Create an empty widget, serving as a container for custom user widgets - create_empty_widget(title, icon=-1) -> TWidget * - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) - Create a menu with the given name, label and optional position, either - in the menubar, or as a submenu. If 'menupath' is non-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + create_menu(name, label, menupath=None) -> bool + Create a menu with the given name, label and optional position, either in the + menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information + about where the menu should be positioned. First, IDA will try and resolve the + corresponding menu by its name. If such an existing menu is found and is present + in the menubar, then the new menu will be inserted in the menubar before it. + Otherwise, IDA will try to resolve 'menupath' as it would for + attach_action_to_menu() and, if found, add the new menu like so: // The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment..." command create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - or - // The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(...)", "My menu", "Edit/Comments/"); - If the above fails, the new menu will be appended to the menubar. - create_menu(name, label, menupath=None) -> bool - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) + create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position - create_toolbar(name, label, before=None, flags=0) -> bool - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) - Append 'loc' to the viewer's history, and cause the viewer to display - it. - custom_viewer_jump(v, loc, flags=0) -> bool - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success Help on function del_hotkey in module ida_kernwin: @@ -56249,58 +55247,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) + delete_menu(name) -> bool Delete an existing menu - delete_menu(name) -> bool - @param name: name of menu (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu + @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) + delete_toolbar(name) -> bool Delete an existing toolbar - delete_toolbar(name) -> bool - @param name: name of toolbar (C++: const char *) - @return: success + @param name: (C++: const char *) name of toolbar + @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - detach_action_from_menu(menupath, name) -> bool - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) - Remove a previously-registered action, from the list of 'permanent' - context menu actions for this widget ( 'ui_detach_action_from_popup' - ). This only makes sense if the action has been added to 'widget's - list of permanent popup actions by calling attach_action_to_popup in - 'permanent' mode. - detach_action_from_popup(widget, name) -> bool - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + Remove a previously-registered action, from the list of 'permanent' context menu + actions for this widget (ui_detach_action_from_popup). This only makes sense if + the action has been added to 'widget's list of permanent popup actions by + calling attach_action_to_popup in 'permanent' mode. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - detach_action_from_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on class disabled_script_timeout_t in module ida_kernwin: @@ -56329,7 +55327,9 @@ class disasm_line_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | other: disasm_line_t const & + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -56343,19 +55343,19 @@ class disasm_line_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -56375,11 +55375,14 @@ class disasm_text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> disasm_line_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | x: qvector< disasm_line_t > const & + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56391,19 +55394,20 @@ class disasm_text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: disasm_line_t const & + | + | @param i: size_t + | @param v: disasm_line_t const & | | at(self, *args) | at(self, _idx) -> disasm_line_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) | capacity(self) -> size_t @@ -56416,16 +55420,16 @@ class disasm_text_t(__builtin__.object) | | end(self, *args) | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) | erase(self, it) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator | + | @param it: qvector< disasm_line_t >::iterator | | erase(self, first, last) -> disasm_line_t - | first: qvector< disasm_line_t >::iterator - | last: qvector< disasm_line_t >::iterator + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) | extract(self) -> disasm_line_t @@ -56435,47 +55439,56 @@ class disasm_text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=disasm_line_t()) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & | | inject(self, *args) | inject(self, s, len) - | s: disasm_line_t * - | len: size_t + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator - | x: disasm_line_t const & + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: disasm_line_t const & | + | @param _newsize: size_t + | @param x: disasm_line_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< disasm_line_t > & + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) | truncate(self) @@ -56501,57 +55514,60 @@ class disasm_text_t(__builtin__.object) Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) - Display copyright warning ( 'ui_copywarn' ). + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no Help on function display_widget in module ida_kernwin: display_widget(*args) + display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before - display_widget(widget, options, dest_ctrl=None) - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param dest_ctrl: (C++: const char *) where to dock: if nullptr or invalid then use the active + docker if there is not create a new tab relative to current + active tab Help on function ea2str in module ida_kernwin: ea2str(*args) + ea2str(ea) -> str Convert linear address to UTF-8 string. - ea2str(ea) -> str - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) - Push current location in the history and jump to the given location ( - 'ui_ea_viewer_history_push_and_jump' ). This will jump in the given ea - viewer and also in other synchronized views. - ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + Push current location in the history and jump to the given location + (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and + also in other synchronized views. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - enable_chooser_item_attrs(chooser_caption, enable) -> bool - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success + Enable item-specific attributes for chooser items + (ui_enable_chooser_item_attrs). For example: color list items differently + depending on a criterium. + If enabled, the chooser will generate ui_get_chooser_item_attrs + events that can be intercepted by a plugin to modify the item attributes. + This event is generated only in the GUI version of IDA. + Specifying CH_ATTRS bit at the chooser creation time has the same effect. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -56573,19 +55589,19 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56597,184 +55613,189 @@ class enumplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -56786,7 +55807,7 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: @@ -56804,7 +55825,7 @@ execute_sync(*args) If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -56823,334 +55844,371 @@ execute_ui_requests(*args) Help on function find_widget in module ida_kernwin: find_widget(*args) - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - find_widget(caption) -> TWidget * - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + Find widget with the specified caption (only gui version) (ui_find_widget). NB: + this callback works only with the tabbed widgets! + + @param caption: (C++: const char *) title of tab, or window title if widget is not tabbed + @return: pointer to the TWidget, nullptr if none is found Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) formchgcbfa_close(p_fa, close_normally) - p_fa: size_t - close_normally: int + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) formchgcbfa_enable_field(p_fa, fid, enable) -> bool - p_fa: size_t - fid: int - enable: bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - p_fa: size_t - fid: int - ft: int - sz: size_t + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) formchgcbfa_get_focused_field(p_fa) -> int - p_fa: size_t + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - p_fa: size_t - fid: int - x: int - y: int - w: int - h: int + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) formchgcbfa_refresh_field(p_fa, fid) - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - p_fa: size_t - fid: int - ft: int - py_val: PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) formchgcbfa_set_focused_field(p_fa, fid) -> bool - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) formchgcbfa_show_field(p_fa, fid, show) -> bool - p_fa: size_t - fid: int - show: bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) + gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range. - gen_disasm_text(text, ea1, ea2, truncate_lines) - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) - Get an action's checkability ( 'ui_get_action_attr' ). - get_action_checkable(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) - Get an action's checked state ( 'ui_get_action_attr' ). - get_action_checked(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) - Get an action's icon ( 'ui_get_action_attr' ). - get_action_icon(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) - Get an action's label ( 'ui_get_action_attr' ). - get_action_label(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) - Get an action's shortcut ( 'ui_get_action_attr' ). - get_action_shortcut(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) - Get an action's state ( 'ui_get_action_attr' ). - get_action_state(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) - Get an action's tooltip ( 'ui_get_action_attr' ). - get_action_tooltip(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) - Get an action's visibility ( 'ui_get_action_attr' ). - get_action_visibility(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. + get_active_modal_widget() -> TWidget * + Get the current, active modal TWidget instance. Note that in this context, the + "wait dialog" is not considered: this function will return nullptr even if it is + currently shown. + + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) - Get info about a registered addon with a given product code. info->cb - must be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info(id, info) -> bool - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found + Get info about a registered addon with a given product code. info->cb must be + valid! NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) - Get info about a registered addon with specific index. info->cb must - be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info_idx(index, info) -> bool - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range + Get info about a registered addon with specific index. info->cb must be valid! + NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. + get_chooser_data(chooser_caption, n) -> [str, ...] + Get the text corresponding to the index N in the chooser data. Use -1 to get the + header. - get_chooser_data(chooser_caption, n) -> PyObject * - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This attemps to find the choser by its title - and, if found, returns the result of calling its - 'chooser_base_t::get_chooser_obj()' method.This is object is chooser- - specific. - get_chooser_obj(chooser_caption) -> void * - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + Get the underlying object of the specified chooser (ui_get_chooser_obj). + + This attemps to find the choser by its title and, if found, returns the result + of calling its chooser_base_t::get_chooser_obj() method. + + @note: This is object is chooser-specific. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) - Get current line from the disassemble window ( 'ui_get_curline' ). + get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). + + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) - Get a pointer to the current widget ( 'ui_get_current_widget' ). + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based + + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - get_custom_viewer_curline(custom_viewer, mouse) -> char const * - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + Get current line of custom viewer (ui_get_custom_viewer_curline). The returned + line contains color codes + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: get_custom_viewer_location(*args) - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + Get the current location in a custom viewer (ui_get_custom_viewer_location). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' - get_custom_viewer_place(custom_viewer, mouse) -> place_t - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + Get current place in a custom viewer (ui_get_curplace). + + See also the more complete get_custom_viewer_location() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param pitem: (C++: const place_t *) a place corresponding to the item + @return: -1 if 'pitem' is not included in the line + -2 if 'pitem' points at the entire line + >= 0 for the X coordinate within the pline, where pitem points Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - get_ea_viewer_history_info(nback, nfwd, v) -> bool - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - @retval: false - if the given ea viewer does not exist - @retval: true - otherwise + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) + get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view. - get_hexdump_ea(hexdump_num) -> ea_t - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) - get_highlight(v) -> PyObject * + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error. Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) + get_kernel_version() -> str Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) - Get keyboard key code by its name ( 'ui_get_key_code' ) - get_key_code(keyname) -> ushort - @param keyname (C++: const char *) + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) + get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address. - get_navband_ea(pixel) -> ea_t - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: @@ -57164,150 +56222,170 @@ get_navband_pixel(*args) Help on function get_opnum in module ida_kernwin: get_opnum(*args) - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) - Get current line of output window ( 'ui_get_output_curline' ). - get_output_curline(mouse) -> str - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + get_output_cursor() -> bool + Get coordinates of the output window's cursor (ui_get_output_cursor). + @note: coordinates are 0-based + @note: this function will succeed even if the output window is not visible + + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection Help on function get_place_class in module ida_kernwin: get_place_class(*args) - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - get_place_class(out_flags, out_sdk_version, id) -> place_t - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + Get information about a previously-registered place_t class. See also + register_place_class(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) - Get the place class ID for the place that has been registered as - 'name'. - get_place_class_id(name) -> int - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) - See 'get_place_class()' - get_place_class_template(id) -> place_t - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_synced_group in module ida_kernwin: get_synced_group(*args) + get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with - get_synced_group(w) -> synced_group_t - @param w: the widget (C++: const TWidget *) - @return: the group of widgets/registers, or NULL + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - get_tab_size(path) -> int - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) + get_user_input_event(out) -> bool + Get the current user input event (mouse button press, key press, ...) It is + sometimes desirable to be able to tell when a certain situation happens (e.g., + 'view_curpos' gets triggered); this function exists to provide that context (GUI + version only) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) get_user_strlist_options(out) - @param out (C++: strwinsetup_t *) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - get_view_renderer_type(v) -> tcc_renderer_type_t - @param v (C++: TWidget *) + Get the type of renderer currently in use in the given view + (ui_get_renderer_type) + + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - get_viewer_place_type(viewer) -> tcc_place_type_t - @param viewer (C++: TWidget *) + Get the type of place_t instances a viewer uses & creates + (ui_get_viewer_place_type). + + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - get_viewer_user_data(viewer) -> void * - @param viewer (C++: TWidget *) + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) - Get the TWidget's title ( 'ui_get_widget_title' ). - get_widget_title(widget) -> str - @param widget (C++: TWidget *) + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) - Get the type of the TWidget * ( 'ui_get_widget_type' ). - get_widget_type(widget) -> twidget_type_t - @param widget (C++: TWidget *) + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) + get_window_id(name=None) -> void * Get the system-specific window ID (GUI version only) - get_window_id(name=None) -> void * - @param name (C++: const char *) - @return: the low-level window ID + @param the: name of the window (nullptr means the main IDA window) + @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) + hide_wait_box() Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -57330,7 +56408,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -57345,184 +56423,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -57534,46 +56617,220 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) info(format) - @param format (C++: const char *) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_keyboard_data... + | delete_input_event_keyboard_data_t(self) + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_mouse_data_t> + | delete_input_event_mouse_data_t(self) + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(__builtin__.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_shortcut_data... + | delete_input_event_shortcut_data_t(self) + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(__builtin__.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | _source_as_size(self, *args) + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_input_event_t> + | delete_input_event_t(self) Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) - Install command line interpreter ( 'ui_install_cli' ) - install_command_interpreter(py_obj) -> int - py_obj: PyObject * + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - @param tmplate (C++: const place_t *) - @param flags (C++: int) - @param owner (C++: const plugin_t *) - @param sdk_version (C++: int) + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) + is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*. - is_action_enabled(s) -> bool - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) + is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget? - is_chooser_widget(t) -> bool - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: @@ -57584,32 +56841,33 @@ is_idaq(*args) Help on function is_idaview in module ida_kernwin: is_idaview(*args) - Is the given custom view an idaview? ( 'ui_is_idaview' ) - is_idaview(v) -> bool - @param v (C++: TWidget *) + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) + is_msg_inited() -> bool Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) - See 'get_place_class()' - is_place_class_ea_capable(id) -> bool - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) + is_refresh_requested(mask) -> bool Get a refresh request state - is_refresh_requested(mask) -> bool - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -57623,7 +56881,7 @@ class jobj_wrapper_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57640,29 +56898,28 @@ class jobj_wrapper_t(__builtin__.object) Help on function jumpto in module ida_kernwin: jumpto(*args) - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function l_compare2 in module ida_kernwin: l_compare2(*args) l_compare2(t1, t2, ud) -> int - @param t1 (C++: const place_t *) - @param t2 (C++: const place_t *) - @param ud (C++: void *) + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * Help on class line_rendering_output_entries_refs_t in module ida_kernwin: @@ -57673,15 +56930,19 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> line_rendering_output_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> line_rendering_output_entries_refs_t - | x: qvector< line_rendering_output_entry_t * > const & + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57691,30 +56952,40 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: line_rendering_output_entry_t *const & + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & | | _internal_push_back(self, *args) | _internal_push_back(self, e) - | e: line_rendering_output_entry_t * + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | at(self, *args) | at(self, _idx) -> line_rendering_output_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -57738,40 +57009,45 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator | + | @param it: qvector< line_rendering_output_entry_t * >::iterator | | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator - | first: qvector< line_rendering_output_entry_t * >::iterator - | last: qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator | | extract(self, *args) | extract(self) -> line_rendering_output_entry_t ** | | find(self, *args) | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & | + | @param x: line_rendering_output_entry_t *const & | | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | inject(self, *args) | inject(self, s, len) - | s: line_rendering_output_entry_t ** - | len: size_t + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & | | pop_back(self, *args) | pop_back(self) @@ -57783,23 +57059,26 @@ class line_rendering_output_entries_refs_t(__builtin__.object) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: line_rendering_output_entry_t *const & | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< line_rendering_output_entry_t * > & + | + | @param r: qvector< line_rendering_output_entry_t * > & | | truncate(self, *args) | truncate(self) @@ -57831,25 +57110,28 @@ class line_rendering_output_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __init__(self, *args) | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _flags: uint32 - | _bg_color: bgcolor_t | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _cpx: int - | _nchars: int - | _flags: uint32 - | _bg_color: bgcolor_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __repr__ = _swig_repr(self) | @@ -57872,19 +57154,19 @@ class line_rendering_output_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | bg_color - | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | bg_color | | cpx - | line_rendering_output_entry_t_cpx_get(self) -> int + | cpx | | flags - | line_rendering_output_entry_t_flags_get(self) -> uint32 + | flags | | line - | line_rendering_output_entry_t_line_get(self) -> twinline_t + | line | | nchars - | line_rendering_output_entry_t_nchars_get(self) -> int + | nchars | | thisown | The membership flag @@ -57904,63 +57186,75 @@ class linearray_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ud) -> linearray_t - | _ud: void * + | + | @param _ud: void * | | __repr__ = _swig_repr(self) | | beginning(self, *args) + | beginning(self) -> bool | Are we at the beginning? | | down(self, *args) + | down(self) -> qstring const * | Get a line from down direction. place is ok BEFORE | | ending(self, *args) | ending(self) -> bool | | get_bg_color(self, *args) - | Get current background color. (the same behavior as with 'get_place()' - | : good before 'down()' and after 'up()' ) + | get_bg_color(self) -> bgcolor_t + | Get current background color. (the same behavior as with get_place(): good + | before down() and after up()) | | get_dlnnum(self, *args) - | Get default line number. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_dlnnum(self) -> int + | Get default line number. (the same behavior as with get_place(): good before + | down() and after up()) | | get_linecnt(self, *args) + | get_linecnt(self) -> int | Get number of lines for the current place. (the same behavior as with - | 'get_place()' : good before 'down()' and after 'up()' ) + | get_place(): good before down() and after up()) | | get_pfx_color(self, *args) - | Get current prefix color. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_pfx_color(self) -> bgcolor_t + | Get current prefix color. (the same behavior as with get_place(): good before + | down() and after up()) | | get_place(self, *args) - | Get the current place. If called before 'down()' , then returns place - | of line which will be returned by 'down()' . If called after 'up()' , - | then returns place if line returned by 'up()' . + | get_place(self) -> place_t + | Get the current place. If called before down(), then returns place of line which + | will be returned by down(). If called after up(), then returns place if line + | returned by up(). | | set_place(self, *args) - | Position the array. This function must be called before calling any - | other member functions. 'linearray_t' doesn't own 'place_t' - | structures. The caller must take care of 'place_t' objects. - | | set_place(self, new_at) -> int - | @param new_at: new position of the array (C++: const place_t *) - | @return: the delta of lines that the linearray_t had to adjust the - | place by. For example, if the place_t has a lnnum of 5, - | but it turns out, upon generating lines, that the number of - | lines for that particular place is only 2, then 3 will be - | returned. + | Position the array. This function must be called before calling any other member + | functions. + | + | linearray_t doesn't own place_t structures. The caller must take care of place_t + | objects. + | + | @param new_at: (C++: const place_t *) new position of the array + | @return: the delta of lines that the linearray_t had to adjust the place by. + | For example, if the place_t has a lnnum of 5, but it turns out, upon generating + | lines, + | that the number of lines for that particular place is only 2, then 3 will be + | returned. | | set_userdata(self, *args) + | set_userdata(self, userd) | Change the user data. | - | set_userdata(self, userd) - | @param userd (C++: void *) + | @param userd: (C++: void *) | | up(self, *args) + | up(self) -> qstring const * | Get a line from up direction. place is ok AFTER | | userdata(self, *args) + | userdata(self) -> void * | Get pointer to user data. | | ---------------------------------------------------------------------- @@ -58003,13 +57297,13 @@ class lines_rendering_input_t(__builtin__.object) | list of weak references to the object (if defined) | | cb - | lines_rendering_input_t_cb_get(self) -> int + | cb | | sections_lines - | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | sections_lines | | sync_group - | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | sync_group | | thisown | The membership flag @@ -58029,14 +57323,16 @@ class lines_rendering_output_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __init__(self, *args) | __init__(self) -> lines_rendering_output_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __repr__ = _swig_repr(self) | @@ -58045,7 +57341,8 @@ class lines_rendering_output_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: lines_rendering_output_t &) + | + | @param r: lines_rendering_output_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58057,10 +57354,10 @@ class lines_rendering_output_t(__builtin__.object) | list of weak references to the object (if defined) | | entries - | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | entries | | flags - | lines_rendering_output_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag @@ -58078,38 +57375,35 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format + Load an icon and return its id (ui_load_custom_icon). - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it + @return: icon id Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file. - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) - Get shortcut code previously created by 'ui_get_key_code' . - lookup_key_code(key, shift, is_qt) -> ushort - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -58122,270 +57416,296 @@ msg(*args) Help on function msg_clear in module ida_kernwin: msg_clear(*args) + msg_clear() Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - msg_get_lines(count=-1) -> PyObject * - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) + msg_save(path) -> bool Save the "Output" window contents into a file - msg_save(path) -> bool - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success + @param path: (C++: qstring &) The path of the file to save the contents into. An empty path means + that the user will be prompted for the destination and, if the file + already exists, the user will be asked to confirm before overriding + its contents. Upon return, 'path' will contain the path that the + user chose. + @return: success Help on function nomem in module ida_kernwin: nomem(*args) nomem(format) - @param format (C++: const char *) + + @param format: char const * Help on function open_bookmarks_window in module ida_kernwin: open_bookmarks_window(*args) - Open the bookmarks window ( 'ui_open_builtin' ). - open_bookmarks_window(w) -> TWidget * - @param w (C++: TWidget *) - @return: pointer to resulting window + Open the bookmarks window (ui_open_builtin). + + @param ea: index of entry to select by default + @return: pointer to resulting window Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) - Open the breakpoints window ( 'ui_open_builtin' ). - open_bpts_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) - Open the function calls window ( 'ui_open_builtin' ). - open_calls_window(ea) -> TWidget * - @param ea (C++: ea_t) - @return: pointer to resulting window + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) - Open a disassembly view ( 'ui_open_builtin' ). - open_disasm_window(window_title, ranges=None) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) - Open the enums window ( 'ui_open_builtin' ). - open_enums_window(const_id=BADADDR) -> TWidget * - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) - Open the exports window ( 'ui_open_builtin' ). - open_exports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_form in module ida_kernwin: open_form(*args) + Display a dockable modeless dialog box and return a handle to it. + + @return: handle to the form or nullptr. the handle can be used with TWidget Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) - Open the frame window for the given function ( 'ui_open_builtin' ). - open_frame_window(pfn, offset) -> TWidget * - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window if 'pfn' is a valid function and the window + was displayed, + nullptr otherwise Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) - Open the 'Functions' window ( 'ui_open_builtin' ). - open_funcs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) - Open a hexdump view ( 'ui_open_builtin' ). - open_hexdump_window(window_title) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) - Open the exports window ( 'ui_open_builtin' ). - open_imports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) - Open the local types window ( 'ui_open_builtin' ). - open_loctypes_window(ordinal) -> TWidget * - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) - Open the modules window ( 'ui_open_builtin' ). + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_names_window in module ida_kernwin: open_names_window(*args) - Open the names window ( 'ui_open_builtin' ). - open_names_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) - Open the navigation band window ( 'ui_open_builtin' ). - open_navband_window(ea, zoom) -> TWidget * - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) - Open the notepad window ( 'ui_open_builtin' ). + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) - Open the problems window ( 'ui_open_builtin' ). - open_problems_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) - Open the segments window ( 'ui_open_builtin' ). - open_segments_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) - Open the segment registers window ( 'ui_open_builtin' ). - open_segregs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) - Open the selectors window ( 'ui_open_builtin' ). + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) - Open the signatures window ( 'ui_open_builtin' ). + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) - Open the call stack window ( 'ui_open_builtin' ). + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) - Open the 'Strings' window ( 'ui_open_builtin' ). - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) - Open the structs window ( 'ui_open_builtin' ). - open_structs_window(id=BADADDR, offset=0) -> TWidget * - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) - Open the threads window ( 'ui_open_builtin' ). + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) - Open the type libraries window ( 'ui_open_builtin' ). + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) - Open the tracing window ( 'ui_open_builtin' ). + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_url in module ida_kernwin: open_url(*args) - Open the given url ( 'ui_open_url' ) - open_url(url) - @param url (C++: const char *) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) - Open the cross references window ( 'ui_open_builtin' ). - open_xrefs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -58399,184 +57719,189 @@ class place_t(__builtin__.object) | __repr__ = _swig_repr(self) | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58588,7 +57913,7 @@ class place_t(__builtin__.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -58603,38 +57928,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) place_t_as_enumplace_t(p) -> enumplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) place_t_as_idaplace_t(p) -> idaplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) place_t_as_simpleline_place_t(p) -> simpleline_place_t - p: place_t * + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) place_t_as_structplace_t(p) -> structplace_t - p: place_t * + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) plgform_close(py_link, options) - py_link: PyObject * - options: int + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) plgform_get_widget(py_link) -> TWidget * - py_link: PyObject * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -58645,10 +57976,11 @@ Help on function plgform_show in module ida_kernwin: plgform_show(*args) plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool - py_link: PyObject * - py_obj: PyObject * - caption: char const * - options: int + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: @@ -58656,15 +57988,17 @@ process_ui_action(*args) process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean Help on function py_chooser_base_t_get_row in module ida_kernwin: py_chooser_base_t_get_row(*args) py_chooser_base_t_get_row(chobj, n) -> PyObject * - chobj: chooser_base_t const * - n: size_t + + @param chobj: chooser_base_t const * + @param n: size_t Help on function py_get_ask_form in module ida_kernwin: @@ -58680,192 +58014,217 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) py_load_custom_icon_data(data, format) -> int - data: PyObject * - format: char const * + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) py_load_custom_icon_fn(filename) -> int - filename: char const * + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) py_register_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) py_ss_restore_callback(err_msg, userdata) - err_msg: char const * - userdata: void * + + @param err_msg: char const * + @param userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) py_unregister_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) pyidag_bind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) pyidag_unbind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) pyscv_add_line(py_this, py_sl) -> bool - py_this: PyObject * - py_sl: PyObject * + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) pyscv_clear_lines(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) pyscv_close(py_this) - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) pyscv_count(py_this) -> size_t - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) pyscv_del_line(py_this, nline) -> bool - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) pyscv_edit_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - py_this: PyObject * - mouse: bool - notags: bool + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) pyscv_get_current_word(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) pyscv_get_line(py_this, nline) -> PyObject * - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) pyscv_get_pos(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) pyscv_get_selection(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) pyscv_get_widget(py_this) -> TWidget * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) pyscv_init(py_link, title) -> PyObject * - py_link: PyObject * - title: char const * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) pyscv_insert_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) pyscv_is_focused(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) pyscv_jumpto(py_this, ln, x, y) -> bool - py_this: PyObject * - ln: size_t - x: int - y: int + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) pyscv_patch_line(py_this, nline, offs, value) -> bool - py_this: PyObject * - nline: size_t - offs: size_t - value: int + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) pyscv_refresh(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) pyscv_show(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str Performs some cleanup operations to a line. - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line + @param cmt_char: (C++: char) character that denotes the start of a comment: + * the entire text is removed if the line begins with this character (ignoring + leading spaces) + * all text after (and including) this character is removed if flag CLNL_FINDCMT + is set + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -58892,14 +58251,13 @@ class quick_widget_commands_t Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - read_range_selection(v) -> bool - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - @retval: 0 - no range is selected - @retval: 1 - ok, start ea and end ea are filled + Get the address range for the selected range boundaries, this is the convenient + function for read_selection() + + @param v: (C++: TWidget *) view, nullptr means the last active window containing addresses + @retval 0: no range is selected + @retval 1: ok, start ea and end ea are filled Help on function read_selection in module ida_kernwin: @@ -58931,19 +58289,18 @@ read_selection(*args) disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - refresh_chooser(title) -> bool - @param title: title of chooser (C++: const char *) - @return: success + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -58953,82 +58310,87 @@ refresh_choosers(*args) Help on function refresh_custom_viewer in module ida_kernwin: refresh_custom_viewer(*args) - Refresh custom ida viewer ( 'ui_refresh_custom_viewer' ) - refresh_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) - Refresh marked windows ( 'ui_refreshmarked' ) + refresh_idaview() + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) - Refresh navigation band if changed ( 'ui_refresh_navband' ). - refresh_navband(force) - @param force: refresh regardless (C++: bool) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) - Create a new action ( 'ui_register_action' ). After an action has been - created, it is possible to attach it to menu items ( - 'attach_action_to_menu()' ), or to popup menus ( - 'attach_action_to_popup()' ).Because the actions will need to call the - handler's activate() and update() methods at any time, you shouldn't - build your action handler on the stack.Please see the SDK's "ht_view" - plugin for an example how to register actions. - register_action(desc) -> bool - @param desc: action to register (C++: const action_desc_t &) - @return: success + Create a new action (ui_register_action). After an action has been created, it + is possible to attach it to menu items (attach_action_to_menu()), or to popup + menus (attach_action_to_popup()). + + Because the actions will need to call the handler's activate() and update() + methods at any time, you shouldn't build your action handler on the stack. + + Please see the SDK's "ht_view" plugin for an example how to register actions. + + @param desc: (C++: const action_desc_t &) action to register + @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) - Register an add-on. Show its info in the About box. For plugins, - should be called from init() function (repeated calls with the same - product code overwrite previous entries) returns: index of the add-on - in the list, or -1 on error - register_addon(info) -> int - @param info (C++: const addon_info_t *) + Register an add-on. Show its info in the About box. For plugins, should be + called from init() function (repeated calls with the same product code overwrite + previous entries) returns: index of the add-on in the list, or -1 on error + + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) - Helper.You are not encouraged to use this, as it mixes flags for both - 'register_action()' , and 'attach_action_to_menu()' .The only reason - for its existence is to make it simpler to port existing plugins to - the new actions API. - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: void *) - @param action_desc_t_flags (C++: int) + Helper. + + You are not encouraged to use this, as it mixes flags for both + register_action(), and attach_action_to_menu(). + + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) - register_timer(interval, py_callback) -> PyObject * + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param py_callback: A Python callable that takes no parameters and returns an integer. The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval @@ -59037,10 +58399,10 @@ register_timer(*args) Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) - Remove command line interpreter ( 'ui_install_cli' ) - remove_command_interpreter(cli_idx) - cli_idx: int + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -59051,14 +58413,16 @@ class renderer_pos_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -59072,16 +58436,16 @@ class renderer_pos_info_t(__builtin__.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -59095,42 +58459,42 @@ class renderer_pos_info_t(__builtin__.object) Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - repaint_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) + replace_wait_box(format) Replace the label of "Please wait dialog box". - replace_wait_box(format) - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) + request_refresh(mask, cnd=True) Request a refresh of a builtin window. - request_refresh(mask, cnd=True) - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool + Restore a database snapshot. Note: This call is asynchronous. When it is + completed, the callback will be triggered. - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - pyfunc_or_none: PyObject * - pytuple_or_none: PyObject * - @return: false if restoration could not be started (snapshot file was - not found). If the returned value is True then check if - the operation succeeded from the callback. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was not + found). + If the returned value is True then check if the operation succeeded from the + callback. Help on class section_lines_refs_t in module ida_kernwin: @@ -59141,15 +58505,19 @@ class section_lines_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> section_lines_refs_t - | x: qvector< twinline_t const * > const & + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59159,26 +58527,33 @@ class section_lines_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const *const & + | + | @param i: size_t + | @param v: twinline_t const *const & | | _del(self, *args) | _del(self, x) -> bool - | x: twinline_t const *const & + | + | Parameters + | ---------- + | x: twinline_t const *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | at(self, *args) | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59202,70 +58577,81 @@ class section_lines_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator | + | @param it: qvector< twinline_t const * >::iterator | | erase(self, first, last) -> qvector< twinline_t const * >::iterator - | first: qvector< twinline_t const * >::iterator - | last: qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator | | extract(self, *args) | extract(self) -> twinline_t const ** | | find(self, *args) | find(self, x) -> qvector< twinline_t const * >::iterator - | x: twinline_t const *const & | + | @param x: twinline_t const *const & | | find(self, x) -> qvector< twinline_t const * >::const_iterator - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | inject(self, *args) | inject(self, s, len) - | s: twinline_t const ** - | len: size_t + | + | @param s: twinline_t const ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator - | x: twinline_t const *const & + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const *const & | + | @param _newsize: size_t + | @param x: twinline_t const *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< twinline_t const * > & + | + | @param r: qvector< twinline_t const * > & | | truncate(self, *args) | truncate(self) @@ -59297,15 +58683,19 @@ class sections_lines_refs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> section_lines_refs_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sections_lines_refs_t - | x: qvector< section_lines_refs_t > const & + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59315,26 +58705,33 @@ class sections_lines_refs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: section_lines_refs_t const & + | + | @param i: size_t + | @param v: section_lines_refs_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: section_lines_refs_t const & + | + | Parameters + | ---------- + | x: section_lines_refs_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | at(self, *args) | at(self, _idx) -> section_lines_refs_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59358,74 +58755,86 @@ class sections_lines_refs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator | + | @param it: qvector< section_lines_refs_t >::iterator | | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator - | first: qvector< section_lines_refs_t >::iterator - | last: qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator | | extract(self, *args) | extract(self) -> section_lines_refs_t | | find(self, *args) | find(self, x) -> qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & | + | @param x: section_lines_refs_t const & | | find(self, x) -> qvector< section_lines_refs_t >::const_iterator - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=section_lines_refs_t()) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | has(self, *args) | has(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | inject(self, *args) | inject(self, s, len) - | s: section_lines_refs_t * - | len: size_t + | + | @param s: section_lines_refs_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: section_lines_refs_t const & | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< section_lines_refs_t > & + | + | @param r: qvector< section_lines_refs_t > & | | truncate(self, *args) | truncate(self) @@ -59451,93 +58860,87 @@ class sections_lines_refs_t(__builtin__.object) Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) - Set "Cancelled" flag ( 'ui_set_cancelled' ) + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data + Set a handler for a code viewer event (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param handler_or_data: (C++: void *) can be a handler or data. see examples in Functions: + custom viewer handlers + @return: old value of the handler or data Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_is_source(code_viewer) -> bool - @param code_viewer (C++: TWidget *) + Specify that the given code viewer is used to display source code + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) - Set handlers for code viewer line events. Any of these handlers may be - NULL - set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + Set handlers for code viewer line events. Any of these handlers may be nullptr + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_alignment(code_viewer, align) -> bool - @param code_viewer (C++: TWidget *) - @param align (C++: int) + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + Set space allowed for icons in the margin of a code viewer + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_radix(code_viewer, radix) -> bool - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - set_code_viewer_user_data(code_viewer, ud) -> bool - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - set_custom_viewer_qt_aware(custom_viewer) -> bool - @param custom_viewer (C++: TWidget *) + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: @@ -59545,32 +58948,36 @@ set_dock_pos(*args) set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - set_highlight(viewer, str, flags) -> bool - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) - set_nav_colorizer(new_py_colorizer) -> PyObject * + set_nav_colorizer(new_py_colorizer) -> dict or None Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -59596,37 +59003,41 @@ set_nav_colorizer(*args) return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - set_view_renderer_type(v, rt) - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - show_wait_box(message) - message: char const * + Display a dialog box with "Please wait...". If the text message starts with + "HIDECANCEL\n", the cancel button + won't be added to the dialog box and user_cancelled() will always + return false (but can be caled to refresh UI). + Plugins must call hide_wait_box() to close the dialog box, otherwise + the user interface will remain disabled. + Note that, if the wait dialog is already visible, show_wait_box() will + 1) push the currently-displayed text on a stack + 2) display the new text + Then, when hide_wait_box() is called, if that stack isn't empty its top + label will be popped and restored in the wait dialog. + This implies that a plugin should call hide_wait_box() exactly as many + times as it called show_wait_box(), or the wait dialog might remain + visible and block the UI. + Also, in case the plugin knows the wait dialog is currently displayed, + alternatively it can call replace_wait_box(), to replace the text of the + dialog without pushing the currently-displayed text on the stack. + + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -59680,8 +59091,7 @@ class simplecustviewer_t(__builtin__.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @return: Returns a tuple (colored_line, fgcolor, bgcolor) or None | | GetLineNo(self, mouse=0) | Calls GetPos() and returns the current line number or -1 on failure @@ -59693,8 +59103,7 @@ class simplecustviewer_t(__builtin__.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -59768,7 +59177,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -59783,184 +59192,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -59972,7 +59386,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -59983,12 +59397,14 @@ class simpleline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | c: color_t - | str: char const * + | __init__(self, c, str) -> simpleline_t | + | @param c: color_t + | @param str: char const * | | __init__(self, str) -> simpleline_t - | str: char const * + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -60002,13 +59418,13 @@ class simpleline_t(__builtin__.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -60025,28 +59441,30 @@ str2ea(*args) str2ea(str, screenEA=BADADDR) -> ea_t Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) - Find a line with the specified code in the 'strarray_t' array. If the - last element of the array has code==0 then it is considered as the - default entry.If no default entry exists and the code is not found, - 'strarray()' returns "". - strarray(array, array_size, code) -> char const * - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + Find a line with the specified code in the strarray_t array. If the last element + of the array has code==0 then it is considered as the default entry. + If no default entry exists and the code is not found, strarray() returns "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -60070,10 +59488,10 @@ class strarray_t(__builtin__.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -60104,10 +59522,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -60122,184 +59540,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60311,7 +59734,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -60322,19 +59745,22 @@ class sync_source_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t - | _view: TWidget const * | + | @param _view: TWidget const * | | __init__(self, _regname) -> sync_source_t - | _regname: char const * + | + | @param _regname: char const * | | __ne__(self, *args) | __ne__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -60377,15 +59803,19 @@ class sync_source_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sync_source_vec_t - | x: qvector< sync_source_t > const & + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60395,33 +59825,39 @@ class sync_source_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60434,65 +59870,68 @@ class sync_source_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) | extract(self) -> sync_source_t | | find(self, *args) | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | inject(self, *args) | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) | truncate(self) @@ -60518,13 +59957,13 @@ class sync_source_vec_t(__builtin__.object) Help on function sync_sources in module ida_kernwin: sync_sources(*args) + sync_sources(what, _with, sync) -> bool [Un]synchronize sources - sync_sources(what, _with, sync) -> bool - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success Help on class synced_group_t in module ida_kernwin: @@ -60545,15 +59984,18 @@ class synced_group_t(sync_source_vec_t) | | has(self, *args) | has(self, ss) -> bool - | @param ss (C++: const sync_source_t &) + | + | @param ss: sync_source_t const & | | has_register(self, *args) | has_register(self, r) -> bool - | @param r (C++: const char *) + | + | @param r: char const * | | has_widget(self, *args) | has_widget(self, v) -> bool - | @param v (C++: const TWidget *) + | + | @param v: TWidget const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60572,11 +60014,13 @@ class synced_group_t(sync_source_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60586,31 +60030,37 @@ class synced_group_t(sync_source_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60623,61 +60073,63 @@ class synced_group_t(sync_source_vec_t) | | end(self, *args) | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) | extract(self) -> sync_source_t | | find(self, *args) | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | inject(self, *args) | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) | truncate(self) @@ -60694,12 +60146,13 @@ class synced_group_t(sync_source_vec_t) Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) - Take a database snapshot ( 'ui_take_database_snapshot' ). + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - take_database_snapshot(ss) -> PyObject * - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success Help on class text_t in module ida_kernwin: @@ -60710,11 +60163,14 @@ class text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> text_t - | x: qvector< twinline_t > const & + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60726,19 +60182,20 @@ class text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const & + | + | @param i: size_t + | @param v: twinline_t const & | | at(self, *args) | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> twinline_t - | begin(self) -> twinline_t | | capacity(self, *args) | capacity(self) -> size_t @@ -60751,16 +60208,16 @@ class text_t(__builtin__.object) | | end(self, *args) | end(self) -> twinline_t - | end(self) -> twinline_t | | erase(self, *args) | erase(self, it) -> twinline_t - | it: qvector< twinline_t >::iterator | + | @param it: qvector< twinline_t >::iterator | | erase(self, first, last) -> twinline_t - | first: qvector< twinline_t >::iterator - | last: qvector< twinline_t >::iterator + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator | | extract(self, *args) | extract(self) -> twinline_t @@ -60770,47 +60227,56 @@ class text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=twinline_t()) - | x: twinline_t const & + | + | @param x: twinline_t const & | | inject(self, *args) | inject(self, s, len) - | s: twinline_t * - | len: size_t + | + | @param s: twinline_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> twinline_t - | it: qvector< twinline_t >::iterator - | x: twinline_t const & + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: twinline_t const & + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const & | + | @param _newsize: size_t + | @param x: twinline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< twinline_t > & + | + | @param r: qvector< twinline_t > & | | truncate(self, *args) | truncate(self) @@ -60942,8 +60408,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) textctrl_info_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -60954,58 +60421,67 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) textctrl_info_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) textctrl_info_t_get_clink(_self) -> textctrl_info_t * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) textctrl_info_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) textctrl_info_t_get_flags(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) textctrl_info_t_get_tabsize(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) textctrl_info_t_get_text(_self) -> char const * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) textctrl_info_t_set_flags(_self, flags) -> bool - self: PyObject * - flags: unsigned int + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) textctrl_info_t_set_tabsize(_self, tabsize) -> bool - self: PyObject * - tabsize: unsigned int + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) textctrl_info_t_set_text(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on class twinline_t in module ida_kernwin: @@ -61016,9 +60492,11 @@ class twinline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> twinline_t - | t: place_t * - | pc: color_t - | bc: bgcolor_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t | | __repr__ = _swig_repr(self) | @@ -61032,19 +60510,19 @@ class twinline_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | twinline_t_at_get(self) -> place_t + | at | | bg_color - | twinline_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | twinline_t_is_default_get(self) -> bool + | is_default | | line - | twinline_t_line_get(self) -> qstring * + | line | | prefix_color - | twinline_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -61064,12 +60542,14 @@ class twinpos_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> twinpos_t - | t: place_t * + | __init__(self, t) -> twinpos_t | + | @param t: place_t * | | __init__(self, t, x0) -> twinpos_t - | t: place_t * - | x0: int + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -61093,13 +60573,13 @@ class twinpos_t(__builtin__.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -61110,21 +60590,17 @@ class twinpos_t(__builtin__.object) Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) - Display a load file dialog and load file ( 'ui_load_file' ). - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - @retval: true - file was successfully loaded - @retval: false - otherwise + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param ploaders: (C++: load_info_t **) list of loaders which accept file, may be changed for loaders + of temp_file + @retval true: file was successfully loaded + @retval false: otherwise Help on class ui_requests_t in module ida_kernwin: @@ -61159,29 +60635,29 @@ class ui_requests_t(__builtin__.object) Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) - Unmark selection ( 'ui_unmarksel' ) + unmark_selection() + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) - Delete a previously-registered action ( 'ui_unregister_action' ). - unregister_action(name) -> bool - @param name: name of action (C++: const char *) - @return: success + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success Help on function unregister_timer in module ida_kernwin: @@ -61196,87 +60672,91 @@ unregister_timer(*args) Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) - Update an action's checkability ( 'ui_update_action_attr' ). - update_action_checkable(name, checkable) -> bool - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) - Update an action's checked state ( 'ui_update_action_attr' ). - update_action_checked(name, checked) -> bool - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) - Update an action's icon ( 'ui_update_action_attr' ). - update_action_icon(name, icon) -> bool - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) - Update an action's label ( 'ui_update_action_attr' ). - update_action_label(name, label) -> bool - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) - Update an action's shortcut ( 'ui_update_action_attr' ). - update_action_shortcut(name, shortcut) -> bool - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) - Update an action's state ( 'ui_update_action_attr' ). - update_action_state(name, state) -> bool - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) - Update an action's tooltip ( 'ui_update_action_attr' ). - update_action_tooltip(name, tooltip) -> bool - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) - Update an action's visibility ( 'ui_update_action_attr' ). - update_action_visibility(name, visible) -> bool - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) - Test the ctrl-break flag ( 'ui_test_cancelled' ). + user_cancelled() -> bool + Test the ctrl-break flag (ui_test_cancelled). + @retval 1: Ctrl-Break is detected, a message is displayed + @retval 2: Ctrl-Break is detected again, a message is not displayed + @retval 0: Ctrl-Break is not detected Help on class view_mouse_event_location_t in module ida_kernwin: @@ -61300,10 +60780,10 @@ class view_mouse_event_location_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -61336,28 +60816,28 @@ class view_mouse_event_t(__builtin__.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -61377,1426 +60857,16 @@ warning(*args) The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION -""" -'cur_enum_member' and 'dirtree_selection' fields are present -""" - -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_HAS_SOURCE -""" -'source' field is present -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_GLOBAL -""" -Register the action globally, so that it's available even if no IDB is -present -""" - -ida_kernwin.ADF_NO_HIGHLIGHT -""" -After activating, do not update the highlight according to what's -under the cursor (listings only.) -""" - -ida_kernwin.ADF_NO_UNDO -""" -the action does not create an undo point. useful for actions that do -not modify the database. -""" - -ida_kernwin.ADF_OT_MASK -""" -Owner type mask. -""" - -ida_kernwin.ADF_OT_PLUGIN -""" -Owner is a 'plugin_t' . -""" - -ida_kernwin.ADF_OT_PLUGMOD -""" -Owner is a 'plugmod_t' . -""" - -ida_kernwin.ADF_OT_PROCMOD -""" -Owner is a 'procmod_t' . -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BOOKMARKS -""" -a persistent 'Bookmarks' widget -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -tracing view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CDVF_LINEICONS -""" -icons can be drawn over the line control -""" - -ida_kernwin.CDVF_NOLINES -""" -don't show line numbers -""" - -ida_kernwin.CDVF_STATUSBAR -""" -keep the status bar in the custom viewer -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_DRAGHINT -""" -the column number that will be used to build hints for the dragging -undo label. This should be provided for at most one column for any -given chooser. -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_INODENAME -""" -if CH_HAS_DIRTREE has been specified, this instructs the chooser that -this column shows the inode name. This should be provided for at most -one column for any given chooser. -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_HAS_DIFF -""" -The chooser can be used in a diffing/merging workflow. -""" - -ida_kernwin.CH_HAS_DIRTREE -""" -The chooser can provide a 'dirtree_t' , meaning a tree-like structure -can be provided to the user (instead of a flat table) -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_FILTER -""" -The chooser will not have filtering abilities. -""" - -ida_kernwin.CH_NO_SORT -""" -The chooser will not have sorting abilities. -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RENAME_IS_EDIT -""" -triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call -the edit() callback for the corresponding row. -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CH_TM_FOLDERS_ONLY -""" -chooser will show in folders-only mode -""" - -ida_kernwin.CH_TM_FULL_TREE -""" -chooser will show in no-tree mode -""" - -ida_kernwin.CH_TM_NO_TREE -""" -chooser will show up in no-tree mode -""" - -ida_kernwin.CK_EXTRA1 -""" -extra background overlay #1 -""" - -ida_kernwin.CK_EXTRA10 -""" -extra background overlay #10 -""" - -ida_kernwin.CK_EXTRA11 -""" -extra background overlay #11 -""" - -ida_kernwin.CK_EXTRA12 -""" -extra background overlay #12 -""" - -ida_kernwin.CK_EXTRA13 -""" -extra background overlay #13 -""" - -ida_kernwin.CK_EXTRA14 -""" -extra background overlay #14 -""" - -ida_kernwin.CK_EXTRA15 -""" -extra background overlay #15 -""" - -ida_kernwin.CK_EXTRA16 -""" -extra background overlay #16 -""" - -ida_kernwin.CK_EXTRA2 -""" -extra background overlay #2 -""" - -ida_kernwin.CK_EXTRA3 -""" -extra background overlay #3 -""" - -ida_kernwin.CK_EXTRA4 -""" -extra background overlay #4 -""" - -ida_kernwin.CK_EXTRA5 -""" -extra background overlay #5 -""" - -ida_kernwin.CK_EXTRA6 -""" -extra background overlay #6 -""" - -ida_kernwin.CK_EXTRA7 -""" -extra background overlay #7 -""" - -ida_kernwin.CK_EXTRA8 -""" -extra background overlay #8 -""" - -ida_kernwin.CK_EXTRA9 -""" -extra background overlay #9 -""" - -ida_kernwin.CK_TRACE -""" -traced address -""" - -ida_kernwin.CK_TRACE_OVL -""" -overlay trace address -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.CVNF_ACT -""" -activate (i.e., switch to) the viewer. Activation is performed before -the new 'lochist_entry_t' instance is actually copied to the viewer's -'lochist_t' (otherwise, if the viewer was invisible its -on_location_changed() handler wouldn't be called.) -""" - -ida_kernwin.CVNF_JUMP -""" -push the current position in this viewer's 'lochist_t' before going to -the new location -""" - -ida_kernwin.CVNF_LAZY -""" -try and move the cursor to a line displaying the 'place_t' if -possible. This might disregard the Y position in case of success -""" - -ida_kernwin.DP_BEFORE -""" -place src_form before dst_form in the tab bar instead of after used -with 'DP_INSIDE' . -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_SZHINT -""" -When floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IDCHK_ARG -""" -bad argument(s) -""" - -ida_kernwin.IDCHK_KEY -""" -bad hotkey name -""" - -ida_kernwin.IDCHK_MAX -""" -too many IDC hotkeys -""" - -ida_kernwin.IDCHK_OK -""" -ok -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BOOKMARKS -""" -bookmarks list (59) -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -tracing view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.LROEF_CPS_RANGE -""" -background for range of chars -""" - -ida_kernwin.LROEF_FULL_LINE -""" -full line background -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. the request must be created using -the 'new' operator to use it with this flag. it can be used in -'cancel_exec_request()' . This flag can be used to delay the code -execution until the next UI loop run even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.PCF_EA_CAPABLE -""" -toea() implementation returns meaningful data -""" - -ida_kernwin.PCF_MAKEPLACE_ALLOCATES -""" -makeplace() returns a freshly allocated (i.e., non-static) instance. -All new code should pass that flag to 'register_place_class()' , and -the corresponding makeplace() class implementation should return new -instances. -""" - -ida_kernwin.RENADDR_HR -""" -dialog for "Pseudocode" additional flags: 0x01 Library function 0x02 -Mark as decompiled -""" - -ida_kernwin.RENADDR_IDA -""" -dialog for "IDA View" -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.SVF_COPY_LINES -""" -keep a local copy of '*lines' -""" - -ida_kernwin.SVF_LINES_BYPTR -""" -remember the 'lines' ptr. do not make a copy of '*lines' -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -do not remember the current address in the navigation history -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" - -ida_kernwin.WCLS_DELETE_LATER -""" -assign the deletion of the widget to the UI loop ///< -""" - -ida_kernwin.WCLS_DONT_SAVE_SIZE -""" -don't save size of the window -""" - -ida_kernwin.WCLS_NO_CONTEXT -""" -don't change the current context (useful for toolbars) -""" - -ida_kernwin.WCLS_SAVE -""" -save state in desktop config -""" - -ida_kernwin.WOPN_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will close -""" - -ida_kernwin.WOPN_DP_BEFORE -""" -place widget before dst_form in the tab bar instead of after used with -'WOPN_DP_INSIDE' and 'WOPN_DP_TAB' -""" - -ida_kernwin.WOPN_DP_BOTTOM -""" -Dock widget below dest_ctrl. -""" - -ida_kernwin.WOPN_DP_FLOATING -""" -Make widget floating. -""" - -ida_kernwin.WOPN_DP_INSIDE -""" -Create a new tab bar with both widget and dest_ctrl. -""" - -ida_kernwin.WOPN_DP_LEFT -""" -Dock widget to the left of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_RIGHT -""" -Dock widget to the right of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_SZHINT -""" -when floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.WOPN_DP_TAB -""" -Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab -bar (otherwise the same as 'WOPN_DP_INSIDE' ) -""" - -ida_kernwin.WOPN_DP_TOP -""" -Dock widget above dest_ctrl. +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.WOPN_NOT_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will not close -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.WOPN_PERSIST -""" -widget will remain available when starting or stopping debugger -sessions -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.WOPN_RESTORE -""" -if the widget was the only widget in a floating area the last time it -was closed, it will be restored as floating, with the same -position+size as before -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -62807,246 +60877,247 @@ COLSTR(str, tag) Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) + add_extra_cmt(ea, isprev, format) -> bool Add anterior/posterior comment line(s). - add_extra_cmt(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) + add_extra_line(ea, isprev, format) -> bool Add anterior/posterior non-comment line(s). - add_extra_line(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) + add_pgm_cmt(format) -> bool Add anterior comment line(s) at the start of program. - add_pgm_cmt(format) -> bool - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function calc_bg_color in module ida_lines: calc_bg_color(*args) + calc_bg_color(ea) -> bgcolor_t Get background color for line at 'ea' - calc_bg_color(ea) -> bgcolor_t - @param ea (C++: ea_t) - @return: RGB color + @param ea: (C++: ea_t) + @return: RGB color Help on function calc_prefix_color in module ida_lines: calc_prefix_color(*args) + calc_prefix_color(ea) -> color_t Get prefix color for line at 'ea' - calc_prefix_color(ea) -> color_t - @param ea (C++: ea_t) - @return: Line prefix colors + @param ea: (C++: ea_t) + @return: Line prefix colors Help on function create_encoding_helper in module ida_lines: create_encoding_helper(*args) create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - encidx: int - nr: enum encoder_t::notify_recerr_t + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_extra_cmts in module ida_lines: delete_extra_cmts(*args) delete_extra_cmts(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) generate_disasm_line(ea, flags=0) -> str - ea: ea_t - flags: int + + @param ea: ea_t + @param flags: int Help on function generate_disassembly in module ida_lines: generate_disassembly(*args) - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) Generate disassembly lines (many lines) and put them into a buffer @param ea: address to generate disassembly for @param max_lines: how many lines max to generate @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_first_free_extra_cmtidx in module ida_lines: get_first_free_extra_cmtidx(*args) get_first_free_extra_cmtidx(ea, start) -> int - ea: ea_t - start: int + + @param ea: ea_t + @param start: int Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function install_user_defined_prefix in module ida_lines: install_user_defined_prefix(*args) - User-defined line-prefixes are displayed just after the autogenerated - line prefixes in the disassembly listing. There is no need to call - this function explicitly. Use the 'user_defined_prefix_t' class. - install_user_defined_prefix(prefix_len, udp, owner) -> bool - @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: - size_t) - @param udp: object to generate user-defined prefix (C++: struct - user_defined_prefix_t *) - @param owner: pointer to the plugin_t that owns UDP if non-NULL, - then the object will be uninstalled and destroyed when - the plugin gets unloaded (C++: const void *) + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded Help on function requires_color_esc in module ida_lines: requires_color_esc(c) Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean + Is the given char a color escape character? Help on function set_user_defined_prefix in module ida_lines: set_user_defined_prefix(*args) - set_user_defined_prefix(width, pycb) -> PyObject * + set_user_defined_prefix(width, pycb) -> bool Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * Help on function tag_addr in module ida_lines: tag_addr(*args) + tag_addr(ea) -> PyObject * Insert an address mark into a string. - tag_addr(ea) -> PyObject * - @param ea: address to include (C++: ea_t) + @param ea: (C++: ea_t) address to include Help on function tag_advance in module ida_lines: tag_advance(*args) - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - tag_advance(line, cnt) -> int - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer Help on function tag_remove in module ida_lines: tag_remove(*args) - Remove color escape sequences from a string. + tag_remove(nonnul_instr) -> str - tag_remove(nonnul_instr) -> PyObject * - nonnul_instr: char const * - @return: length of resulting string, -1 if error + @param nonnul_instr: char const * Help on function tag_skipcode in module ida_lines: tag_skipcode(*args) - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - tag_skipcode(line) -> int - @param line (C++: const char *) - @return: moved pointer + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer Help on function tag_skipcodes in module ida_lines: tag_skipcodes(*args) + tag_skipcodes(line) -> int Move the pointer past all color codes. - tag_skipcodes(line) -> int - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr Help on function tag_strlen in module ida_lines: tag_strlen(*args) - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - tag_strlen(line) -> ssize_t - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on class user_defined_prefix_t in module ida_lines: @@ -63059,24 +61130,25 @@ class user_defined_prefix_t(__builtin__.object) | | __init__(self, *args) | __init__(self, prefix_len, owner) -> user_defined_prefix_t - | prefix_len: size_t - | owner: void const * + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | | get_user_defined_prefix(self, *args) + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) | This callback must be overridden by the derived class. | - | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) - | @param ea: the current address (C++: ea_t) - | @param insn: the current instruction. if the current item is not an - | instruction, then insn.itype is zero. - an - | ida_ua.insn_t, or an address (C++: const insn_t &) - | @param lnnum (C++: int) - | @param indent: see explanations for gen_printf() (C++: int) - | @param line: the line to be generated. the line usually contains color - | tags. this argument can be examined to decide whether to - | generate the prefix. (C++: const char *) + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63096,488 +61168,201 @@ class user_defined_prefix_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_user_defined_prefix_t> | delete_user_defined_prefix_t(self) -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.COLOR_CODE -""" -Single instruction. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.COLOR_CURITEM -""" -Current item. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.COLOR_CURLINE -""" -Current line. -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.COLOR_DATA -""" -Data bytes. -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Escape character (OFF). Followed by a color code ( 'color_t' ). -""" - -ida_lines.COLOR_ON -""" -Escape character (ON). Followed by a color code ( 'color_t' ). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) - Unload database to a binary file. This function works for wide byte - processors too. - base2file(fp, pos, ea1, ea2) -> int - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) + build_snapshot_tree(root) -> bool Build the snapshot tree. - build_snapshot_tree(root) -> bool - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) clr_database_flag(dbfl) - @param dbfl (C++: uint32) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - extract_module_from_archive(fname, is_remote=False) -> PyObject * - fname: char const * - @param is_remote: is the input file remote? (C++: bool) - @retval: true - ok - @retval: false - something bad happened (error message has been - displayed to the user) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it - enabled).The storage type of the specified range will be changed to - STT_VA. - file2base(li, pos, ea1, ea2, patchable) -> int - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - @retval: 1 - ok - @retval: 0 - read error, a warning is displayed + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) + find_plugin(name, load_if_needed=False) -> plugin_t * Find a user-defined plugin and optionally load it. - find_plugin(name, load_if_needed=False) -> plugin_t * - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) + flush_buffers() -> int Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) + gen_exe_file(fp) -> int Generate an exe file (unload the database in binary form). - gen_exe_file(fp) -> int - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - @retval: 1 - ok - @retval: 0 - failed + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) - Generate an output file. 'OFILE_EXE' : - gen_file(otype, fp, ea1, ea2, flags) -> int - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - @retval: 0 - can't generate exe file - @retval: 1 - ok + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) - Get the input file type. This function can recognize libraries and zip - files. - get_basic_file_type(li) -> filetype_t - @param li (C++: linput_t *) + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) + get_elf_debug_file_directory() -> char const * Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) + get_file_type_name() -> str Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. + + @return: size of answer, this function always succeeds Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - get_fileregion_ea(offset) -> ea_t - @param offset (C++: qoff64_t) + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - get_fileregion_offset(ea) -> qoff64_t - @param ea (C++: ea_t) + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) + get_path(pt) -> char const * Get the file path - get_path(pt) -> char const * - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - get_plugin_options(plugin) -> char const * - @param plugin (C++: const char *) + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -63601,22 +61386,22 @@ class idp_desc_t(__builtin__.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -63649,13 +61434,13 @@ class idp_name_t(__builtin__.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -63669,71 +61454,69 @@ class idp_name_t(__builtin__.object) Help on function is_database_flag in module ida_loader: is_database_flag(*args) + is_database_flag(dbfl) -> bool Get the current database flag - is_database_flag(dbfl) -> bool - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) + is_trusted_idb() -> bool Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) - Load a binary file into the database. This function usually is called - from ui. - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - @retval: true - ok - @retval: false - failed (couldn't open the file) + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - load_ids_module(fname) -> int - @param fname: name of file to apply (C++: char *) - @retval: 1 - ok - @retval: 0 - some error (a message is displayed). if the ids file does - not exist, no message is displayed + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) - load_plugin(name) -> PyObject * + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -63758,13 +61541,13 @@ class loader_t(__builtin__.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -63777,12 +61560,12 @@ Help on function mem2base in module ida_loader: mem2base(*args) mem2base(py_mem, ea, fpos=-1) -> int Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -63807,37 +61590,37 @@ class plugin_info_t(__builtin__.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -63851,18 +61634,16 @@ class plugin_info_t(__builtin__.object) Help on function process_archive in module ida_loader: process_archive(*args) - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter: + + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. Help on class qvector_snapshotvec_t in module ida_loader: @@ -63873,15 +61654,19 @@ class qvector_snapshotvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> snapshot_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | x: qvector< snapshot_t * > const & + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63891,26 +61676,33 @@ class qvector_snapshotvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: snapshot_t *const & + | + | @param i: size_t + | @param v: snapshot_t *const & | | _del(self, *args) | _del(self, x) -> bool - | x: snapshot_t *const & + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | at(self, *args) | at(self, _idx) -> snapshot_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63934,70 +61726,81 @@ class qvector_snapshotvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator | + | @param it: qvector< snapshot_t * >::iterator | | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | first: qvector< snapshot_t * >::iterator - | last: qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) | extract(self) -> snapshot_t ** | | find(self, *args) | find(self, x) -> qvector< snapshot_t * >::iterator - | x: snapshot_t *const & | + | @param x: snapshot_t *const & | | find(self, x) -> qvector< snapshot_t * >::const_iterator - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | inject(self, *args) | inject(self, s, len) - | s: snapshot_t ** - | len: size_t + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator - | x: snapshot_t *const & + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: snapshot_t *const & | + | @param _newsize: size_t + | @param x: snapshot_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< snapshot_t * > & + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) | truncate(self) @@ -64023,57 +61826,81 @@ class qvector_snapshotvec_t(__builtin__.object) Help on function reload_file in module ida_loader: reload_file(*args) - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - reload_file(file, is_remote) -> bool - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) run_plugin(plg, arg) -> bool Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - save_database(outfile, flags, root=None, attr=None) -> bool - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) + set_database_flag(dbfl, cnd=True) Set or clear database flag - set_database_flag(dbfl, cnd=True) - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) + set_path(pt, path) Set the file path - set_path(pt, path) - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -64084,30 +61911,36 @@ class snapshot_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) | __le__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -64124,19 +61957,19 @@ class snapshot_t(__builtin__.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -64147,206 +61980,10 @@ class snapshot_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_snapshot_t> | delete_snapshot_t(self) -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_moves"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -the data is kept in some encoded form in the file. -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" -'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" -'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" -'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" -'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" -'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" -'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" -'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" -'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -for 'load_binary_file()' : load as a code segment -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -This is the first file loaded into the database. -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place:don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(__builtin__.object) @@ -64363,45 +62000,52 @@ class bookmarks_t(__builtin__.object) | | erase(*args) | erase(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) | find_index(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) | get(out_entry, out_desc, index, ud) -> bool - | out_entry: lochist_entry_t * - | out_desc: qstring * - | index: uint32 * - | ud: void * + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) | get_desc(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | get_dirtree_id(*args) | get_dirtree_id(e, ud) -> dirtree_id_t - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) | mark(e, index, title, desc, ud) -> uint32 - | e: lochist_entry_t const & - | index: uint32 - | title: char const * - | desc: char const * - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) | size(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64419,57 +62063,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) bookmarks_t_erase(e, index, ud) -> bool - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) bookmarks_t_find_index(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - out_entry: lochist_entry_t * - out_desc: qstring * - index: uint32 * - ud: void * + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) bookmarks_t_get_desc(e, index, ud) -> str - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_get_dirtree_id in module ida_moves: bookmarks_t_get_dirtree_id(*args) bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - e: lochist_entry_t const & - index: uint32 - title: char const * - desc: char const * - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) bookmarks_t_size(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -64480,14 +62131,16 @@ class graph_location_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -64501,16 +62154,16 @@ class graph_location_info_t(__builtin__.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -64527,33 +62180,35 @@ class lochist_entry_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> lochist_entry_t - | p: place_t const * - | r: renderer_info_t const & + | __init__(self, p, r) -> lochist_entry_t | + | @param p: place_t const * + | @param r: renderer_info_t const & | | __init__(self, other) -> lochist_entry_t - | other: lochist_entry_t const & + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | | acquire_place(self, *args) | acquire_place(self, in_p) - | @param in_p (C++: place_t *) + | + | @param in_p: place_t * | | is_valid(self, *args) | is_valid(self) -> bool | | place(self, *args) | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) | set_place(self, p) - | @param p (C++: const place_t *) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64565,10 +62220,10 @@ class lochist_entry_t(__builtin__.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag @@ -64593,8 +62248,9 @@ class lochist_t(__builtin__.object) | | back(self, *args) | back(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) | clear(self) @@ -64604,13 +62260,15 @@ class lochist_t(__builtin__.object) | | fwd(self, *args) | fwd(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) | get(self, out, index) -> bool - | @param out (C++: lochist_entry_t *) - | @param index (C++: uint32) + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) | get_current(self) -> lochist_entry_t @@ -64623,18 +62281,20 @@ class lochist_t(__builtin__.object) | | init(self, *args) | init(self, stream_name, _defpos, _ud, _flags) -> bool - | @param stream_name (C++: const char *) - | @param _defpos (C++: const place_t *) - | @param _ud (C++: void *) - | @param _flags (C++: uint32) + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) | is_history_enabled(self) -> bool | | jump(self, *args) | jump(self, try_to_unhide, e) - | @param try_to_unhide (C++: bool) - | @param e (C++: const lochist_entry_t &) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) | netcode(self) -> nodeidx_t @@ -64644,17 +62304,20 @@ class lochist_t(__builtin__.object) | | seek(self, *args) | seek(self, index, try_to_unhide) -> bool - | @param index (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) | set(self, index, e) - | @param index (C++: uint32) - | @param e (C++: const lochist_entry_t &) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) | set_current(self, e) - | @param e (C++: const lochist_entry_t &) + | + | @param e: lochist_entry_t const & | | size(self, *args) | size(self) -> uint32 @@ -64686,14 +62349,16 @@ class renderer_info_pos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -64707,13 +62372,13 @@ class renderer_info_pos_t(__builtin__.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -64733,14 +62398,21 @@ class renderer_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -64754,13 +62426,13 @@ class renderer_info_t(__builtin__.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -64780,17 +62452,20 @@ class segm_move_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | _from: ea_t - | _to: ea_t - | _sz: size_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -64804,16 +62479,16 @@ class segm_move_info_t(__builtin__.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -64830,15 +62505,19 @@ class segm_move_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | x: qvector< segm_move_info_t > const & + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64848,33 +62527,39 @@ class segm_move_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -64887,78 +62572,85 @@ class segm_move_info_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t | | find(self, *args) | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & | - | - | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -65000,7 +62692,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) | find(self, ea) -> segm_move_info_t - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65019,11 +62712,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65033,31 +62728,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -65070,16 +62771,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t @@ -65089,51 +62790,61 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -65147,22 +62858,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | __weakref__ | list of weak references to the object (if defined) +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) get_switch_info(out, ea) -> ssize_t - @param out (C++: switch_info_t *) - @param ea (C++: ea_t) + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) - Add a new encoding (e.g. "UTF-8"). + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - add_encoding(encoding) -> int - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -65186,13 +62915,13 @@ class array_parameters_t(__builtin__.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -65207,154 +62936,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) clr__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) clr__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) clr__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) clr__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) clr_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) clr_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) clr_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) clr_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) clr_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) clr_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) clr_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) clr_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) clr_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) clr_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) clr_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) clr_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) + clr_notcode(ea) Clear not-code mark. - clr_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) clr_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) clr_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) clr_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) clr_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) clr_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) clr_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) clr_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) clr_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -65365,11 +63118,13 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array - | data: short (&)[8] + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65381,15 +63136,19 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: short const & + | + | @param i: size_t + | @param v: short const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65404,7 +63163,7 @@ class custom_data_type_ids_fids_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -65430,9 +63189,13 @@ class custom_data_type_ids_t(__builtin__.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) + | get_dtid(self) -> tid_t + | | set(self, *args) | set(self, tid) - | @param tid (C++: tid_t) + | + | @param tid: tid_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65444,7 +63207,7 @@ class custom_data_type_ids_t(__builtin__.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -65461,122 +63224,142 @@ class custom_data_type_ids_t(__builtin__.object) Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) del_absbase(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) del_aflags(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) del_alignment(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) del_array_parameters(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) del_custom_data_type_ids(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) - Delete an encoding (1-based) - del_encoding(idx) -> bool - @param idx (C++: int) + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) del_ind_purged(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) del_item_color(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) del_op_tinfo(ea, n) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) del_refinfo(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) del_str_type(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) del_switch_info(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) del_switch_parent(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) del_tinfo(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) + delete_imports() Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) + ea2node(ea) -> nodeidx_t Get netnode for the specified address. - ea2node(ea) -> nodeidx_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) - Get encoding name for this strtype. - encoding_from_strtype(strtype) -> char const * - @param strtype (C++: int32) + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -65600,13 +63383,13 @@ class enum_const_t(__builtin__.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -65628,10 +63411,10 @@ enum_import_names(*args) Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) + find_custom_refinfo(name) -> int Get id of a custom refinfo type. - find_custom_refinfo(name) -> int - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: @@ -65641,90 +63424,108 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) get_absbase(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_aflags in module ida_nalt: get_aflags(*args) get_aflags(ea) -> aflags_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) get_alignment(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) + get_archive_path() -> str Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) get_array_parameters(out, ea) -> ssize_t - @param out (C++: array_parameters_t *) - @param ea (C++: ea_t) + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) + get_asm_inc_file() -> str Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) get_custom_data_type_ids(cdis, ea) -> int - @param cdis (C++: custom_data_type_ids_t *) - @param ea (C++: ea_t) + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * Get definition of a registered custom refinfo type. - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) + get_default_encoding_idx(bpu) -> int Get default encoding index for a specific string type. - get_default_encoding_idx(bpu) -> int - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument Help on function get_elapsed_secs in module ida_nalt: get_elapsed_secs(*args) + get_elapsed_secs() -> size_t Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - get_encoding_bpu(idx) -> int - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) + get_encoding_name(idx) -> char const * Get encoding name for specific index (1-based). - get_encoding_name(idx) -> char const * - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) + get_encoding_qty() -> int Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -65735,181 +63536,201 @@ get_gotea(*args) Help on function get_ida_notepad_text in module ida_nalt: get_ida_notepad_text(*args) - Get notead text. - - get_ida_notepad_text(text) -> ssize_t - @param text (C++: qstring *) + get_ida_notepad_text() -> str + Get notepad text. Help on function get_idb_ctime in module ida_nalt: get_idb_ctime(*args) + get_idb_ctime() -> time_t Get database creation timestamp. Help on function get_idb_nopens in module ida_nalt: get_idb_nopens(*args) + get_idb_nopens() -> size_t Get number of times the database is opened. Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) + get_ids_modnode() -> netnode Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) + get_imagebase() -> ea_t Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) - get_import_module_name(mod_index) -> PyObject * + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) + get_import_module_qty() -> uint Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) get_ind_purged(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_initial_ida_version in module ida_nalt: get_initial_ida_version(*args) - Get version of ida which created the database (string format like - "7.5") - - get_initial_ida_version(ver) -> ssize_t - @param ver (C++: qstring *) + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) + get_input_file_path() -> str Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) get_item_color(ea) -> bgcolor_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_loader_format_name in module ida_nalt: get_loader_format_name(*args) + get_loader_format_name() -> str Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) get_op_tinfo(tif, ea, n) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) get_refinfo(ri, ea, n) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - get_reftype_by_size(size) -> reftype_t - @param size (C++: size_t) + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) + get_root_filename() -> str Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_srcdbg_paths in module ida_nalt: get_srcdbg_paths(*args) + get_srcdbg_paths() -> str Get source debug paths. - - get_srcdbg_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_srcdbg_undesired_paths in module ida_nalt: get_srcdbg_undesired_paths(*args) + get_srcdbg_undesired_paths() -> str Get user-closed source files. - - get_srcdbg_undesired_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) + get_str_encoding_idx(strtype) -> uchar Get index of the string encoding for this string. - get_str_encoding_idx(strtype) -> uchar - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) get_str_term1(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) get_str_term2(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) get_str_type(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) get_str_type_code(strtype) -> uchar - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type_prefix_length in module ida_nalt: get_str_type_prefix_length(*args) get_str_type_prefix_length(strtype) -> size_t - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_strid in module ida_nalt: get_strid(*args) get_strid(ea) -> tid_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) get_strtype_bpu(strtype) -> int - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -65919,454 +63740,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) get_switch_parent(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) get_tinfo(tif, ea) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) getnode(ea) -> netnode - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_aflag_linnum in module ida_nalt: has_aflag_linnum(*args) has_aflag_linnum(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_lname in module ida_nalt: has_aflag_lname(*args) has_aflag_lname(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti in module ida_nalt: has_aflag_ti(*args) has_aflag_ti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti0 in module ida_nalt: has_aflag_ti0(*args) has_aflag_ti0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti1 in module ida_nalt: has_aflag_ti1(*args) has_aflag_ti1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) has_lname(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) has_ti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) has_ti0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) has_ti1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) hide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) hide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) is__bnot0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) is__bnot1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) is__invsign0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) is__invsign1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_aflag__bnot0 in module ida_nalt: is_aflag__bnot0(*args) is_aflag__bnot0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__bnot1 in module ida_nalt: is_aflag__bnot1(*args) is_aflag__bnot1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign0 in module ida_nalt: is_aflag__invsign0(*args) is_aflag__invsign0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign1 in module ida_nalt: is_aflag__invsign1(*args) is_aflag__invsign1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_align_flow in module ida_nalt: is_aflag_align_flow(*args) is_aflag_align_flow(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_colored_item in module ida_nalt: is_aflag_colored_item(*args) is_aflag_colored_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: is_aflag_data_guessed_by_hexrays(*args) is_aflag_data_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_fixed_spd in module ida_nalt: is_aflag_fixed_spd(*args) is_aflag_fixed_spd(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: is_aflag_func_guessed_by_hexrays(*args) is_aflag_func_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_border in module ida_nalt: is_aflag_hidden_border(*args) is_aflag_hidden_border(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_item in module ida_nalt: is_aflag_hidden_item(*args) is_aflag_hidden_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_libitem in module ida_nalt: is_aflag_libitem(*args) is_aflag_libitem(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero0 in module ida_nalt: is_aflag_lzero0(*args) is_aflag_lzero0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero1 in module ida_nalt: is_aflag_lzero1(*args) is_aflag_lzero1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_manual_insn in module ida_nalt: is_aflag_manual_insn(*args) is_aflag_manual_insn(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_noret in module ida_nalt: is_aflag_noret(*args) is_aflag_noret(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notcode in module ida_nalt: is_aflag_notcode(*args) is_aflag_notcode(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notproc in module ida_nalt: is_aflag_notproc(*args) is_aflag_notproc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_public_name in module ida_nalt: is_aflag_public_name(*args) is_aflag_public_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_retfp in module ida_nalt: is_aflag_retfp(*args) is_aflag_retfp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_terse_struc in module ida_nalt: is_aflag_terse_struc(*args) is_aflag_terse_struc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_tilcmt in module ida_nalt: is_aflag_tilcmt(*args) is_aflag_tilcmt(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: is_aflag_type_determined_by_hexrays(*args) is_aflag_type_determined_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: is_aflag_type_guessed_by_hexrays(*args) is_aflag_type_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_ida in module ida_nalt: is_aflag_type_guessed_by_ida(*args) is_aflag_type_guessed_by_ida(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_usersp in module ida_nalt: is_aflag_usersp(*args) is_aflag_usersp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_userti in module ida_nalt: is_aflag_userti(*args) is_aflag_userti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_weak_name in module ida_nalt: is_aflag_weak_name(*args) is_aflag_weak_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_zstroff in module ida_nalt: is_aflag_zstroff(*args) is_aflag_zstroff(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) is_align_flow(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) is_colored_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_data_guessed_by_hexrays in module ida_nalt: is_data_guessed_by_hexrays(*args) is_data_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) + is_finally_visible_item(ea) -> bool Is instruction visible? - is_finally_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) is_fixed_spd(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_func_guessed_by_hexrays in module ida_nalt: is_func_guessed_by_hexrays(*args) is_func_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) is_hidden_border(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) is_hidden_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) is_libitem(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) is_lzero0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) is_lzero1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) is_noret(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) + is_notcode(ea) -> bool Is the address marked as not-code? - is_notcode(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) is_notproc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) is_pascal(strtype) -> bool - @param strtype (C++: int32) + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) + is_reftype_target_optional(type) -> bool Can the target be calculated using operand value? - is_reftype_target_optional(type) -> bool - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) is_retfp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) is_terse_struc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) is_tilcmt(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_determined_by_hexrays in module ida_nalt: is_type_determined_by_hexrays(*args) is_type_determined_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_hexrays in module ida_nalt: is_type_guessed_by_hexrays(*args) is_type_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_ida in module ida_nalt: is_type_guessed_by_ida(*args) is_type_guessed_by_ida(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) is_usersp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) is_userti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) + is_visible_item(ea) -> bool Test visibility of item at given ea. - is_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) is_zstroff(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) node2ea(ndx) -> ea_t - @param ndx (C++: nodeidx_t) + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -66390,25 +64292,25 @@ class opinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -66439,11 +64341,13 @@ class printop_t(__builtin__.object) | | set_aflags_initialized(self, *args) | set_aflags_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | set_ti_initialized(self, *args) | set_ti_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66455,25 +64359,25 @@ class printop_t(__builtin__.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> aflags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -66495,14 +64399,21 @@ class refinfo_t(__builtin__.object) | | init(self, *args) | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | @param reft_and_flags (C++: uint32) - | @param _base (C++: ea_t) - | @param _target (C++: ea_t) - | @param _tdelta (C++: adiff_t) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) | is_custom(self) -> bool | + | is_no_ones(self, *args) + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) | is_pastend(self) -> bool | @@ -66516,14 +64427,16 @@ class refinfo_t(__builtin__.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) - | < 'is_reftype_target_optional()' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) | no_base_xref(self) -> bool | | set_type(self, *args) | set_type(self, rt) - | @param rt (C++: reftype_t) + | + | @param rt: reftype_t | | type(self, *args) | type(self) -> reftype_t @@ -66538,16 +64451,16 @@ class refinfo_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -66561,420 +64474,477 @@ class refinfo_t(__builtin__.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) - Change name for an encoding (1-based) + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - rename_encoding(idx, encoding) -> bool - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) + retrieve_input_file_md5() -> str Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) + retrieve_input_file_sha256() -> str Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: retrieve_input_file_size(*args) + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) set__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) set__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) set__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) set__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) set_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) set_absbase(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) set_aflags(ea, flags) - @param ea (C++: ea_t) - @param flags (C++: aflags_t) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) set_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) set_alignment(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) + set_archive_path(file) -> bool Set archive file path from which input file was extracted. - set_archive_path(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) set_array_parameters(ea, _in) - @param ea (C++: ea_t) - in: array_parameters_t const * + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) + set_asm_inc_file(file) -> bool Set name of the include file. - set_asm_inc_file(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) set_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) set_custom_data_type_ids(ea, cdis) - @param ea (C++: ea_t) - @param cdis (C++: const custom_data_type_ids_t *) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * Help on function set_data_guessed_by_hexrays in module ida_nalt: set_data_guessed_by_hexrays(*args) set_data_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) - set default encoding for a string type - set_default_encoding_idx(bpu, idx) -> bool - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) set_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_func_guessed_by_hexrays in module ida_nalt: set_func_guessed_by_hexrays(*args) set_func_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) set_gotea(gotea) - @param gotea (C++: ea_t) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) set_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) set_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) set_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) set_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_ida_notepad_text in module ida_nalt: set_ida_notepad_text(*args) - Set notead text. - set_ida_notepad_text(text, size=0) - @param text (C++: const char *) - @param size (C++: size_t) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) + set_ids_modnode(id) Set ids modnode. - set_ids_modnode(id) - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) + set_imagebase(base) Set image base address. - set_imagebase(base) - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) set_item_color(ea, color) - @param ea (C++: ea_t) - @param color (C++: bgcolor_t) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) set_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_loader_format_name in module ida_nalt: set_loader_format_name(*args) + set_loader_format_name(name) Set file format name for loader modules. - set_loader_format_name(name) - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) set_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) set_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) set_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) + set_notcode(ea) Mark address so that it cannot be converted to instruction. - set_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) set_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) set_op_tinfo(ea, n, tif) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) + set_outfile_encoding_idx(idx) -> bool set encoding to be used when producing files - set_outfile_encoding_idx(idx) -> bool - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) set_refinfo_ex(ea, n, ri) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t *) + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) set_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_srcdbg_paths in module ida_nalt: set_srcdbg_paths(*args) + set_srcdbg_paths(paths) Set source debug paths. - set_srcdbg_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * Help on function set_srcdbg_undesired_paths in module ida_nalt: set_srcdbg_undesired_paths(*args) + set_srcdbg_undesired_paths(paths) Set user-closed source files. - set_srcdbg_undesired_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) set_str_type(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) set_switch_info(ea, _in) - @param ea (C++: ea_t) - in: switch_info_t const & + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) set_switch_parent(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) set_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) set_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) set_tinfo(ea, tif) -> bool - @param ea (C++: ea_t) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param tif: tinfo_t const * Help on function set_type_determined_by_hexrays in module ida_nalt: set_type_determined_by_hexrays(*args) set_type_determined_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_type_guessed_by_ida in module ida_nalt: set_type_guessed_by_ida(*args) set_type_guessed_by_ida(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) set_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) set_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) set_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) + set_visible_item(ea, visible) Change visibility of item at given ea. - set_visible_item(ea, visible) - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) set_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -66985,11 +64955,13 @@ class strpath_ids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array - | data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67001,15 +64973,19 @@ class strpath_ids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67024,7 +65000,7 @@ class strpath_ids_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -67060,13 +65036,13 @@ class strpath_t(__builtin__.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -67094,21 +65070,25 @@ class switch_info_t(__builtin__.object) | | _set_values_lowcase(self, *args) | _set_values_lowcase(self, values) - | values: ea_t + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) | assign(self, other) - | other: switch_info_t const & + | + | @param other: switch_info_t const & | | clear(self, *args) | clear(self) | | get_jrange_vrange(self, *args) + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool | get separate parts of the switch | - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | @param jrange (C++: range_t *) - | @param vrange (C++: range_t *) + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) | get_jtable_element_size(self) -> int @@ -67120,7 +65100,8 @@ class switch_info_t(__builtin__.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) - | See 'SWI_SHIFT_MASK' . possible answers: 0..3. + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) | get_version(self) -> int @@ -67154,30 +65135,35 @@ class switch_info_t(__builtin__.object) | | set_elbase(self, *args) | set_elbase(self, base) - | @param base (C++: ea_t) + | + | @param base: ea_t | | set_expr(self, *args) | set_expr(self, r, dt) - | @param r (C++: int) - | @param dt (C++: op_dtype_t) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) | set_jtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_jtable_size(self, *args) | set_jtable_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_shift(self, *args) - | See 'SWI_SHIFT_MASK' . - | | set_shift(self, shift) - | @param shift (C++: int) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) | set_vtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | use_std_table(self, *args) | use_std_table(self) -> bool @@ -67192,46 +65178,46 @@ class switch_info_t(__builtin__.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -67251,951 +65237,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) switch_info_t__from_ptrval__(ptrval) -> switch_info_t - ptrval: size_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) unhide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) unhide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function upd_abits in module ida_nalt: upd_abits(*args) upd_abits(ea, clr_bits, set_bits) - @param ea (C++: ea_t) - @param clr_bits (C++: aflags_t) - @param set_bits (C++: aflags_t) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t Help on function uses_aflag_modsp in module ida_nalt: uses_aflag_modsp(*args) uses_aflag_modsp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) uses_modsp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) validate_idb_names(do_repair) -> int - do_repair: bool + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -sp delta value is fixed by analysis. should not be modified by modules -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_HR_DETERMINED -""" -the type is definitely guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_DATA -""" -the data type is guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_FUNC -""" -the function type is guessed by the decompiler -""" - -ida_nalt.AFL_IDA_GUESSED -""" -the type is guessed by IDA -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ); used only for addresses, not for -'member_t' -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_TYPE_GUESSED -""" -who guessed the type information? -""" - -ida_nalt.AFL_USEMODSP -""" -insn modifes SP and uses the modified value example: pop [rsp+N] -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -the type information is definitive. (comes from the user or type -library) if not set see 'AFL_TYPE_GUESSED' -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -alignment value if the item is 'FF_ALIGN' (should by equal to power of -2) -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference. see 'custom_refinfo_handler_t' . the id of the -custom refinfo is stored under the REFINFO_TYPE mask. -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM -set -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -elbase is present (otherwise the base of the switch segment will be -used) -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -value table elements are used as indexes into the jump table (for -sparse switches) -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -jumptable is inversed. (last entry is for first entry in values table) -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -sparse switch (value table present) otherwise lowcase present -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_USER -""" -user specified switch (starting from version 2) -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" - -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(__builtin__.object) @@ -68231,22 +65326,20 @@ class NearestName(__builtin__.object) Help on function append_struct_fields in module ida_name: append_struct_fields(*args) + append_struct_fields(disp, n, path, flags, delta, appzero) -> str Append names of struct fields to a name if the name is a struct name. - append_struct_fields(disp, n, path, flags, delta, appzero) -> str - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -68262,41 +65355,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) cleanup_name(ea, name, flags=0) -> str - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: uint32) + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) del_debug_names(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) del_global_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) del_local_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str Demangle a name. - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -68307,8 +65401,10 @@ class ea_name_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | _ea: ea_t - | _name: qstring const & + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -68322,10 +65418,10 @@ class ea_name_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -68345,11 +65441,14 @@ class ea_name_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> ea_name_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | x: qvector< ea_name_t > const & + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68361,19 +65460,20 @@ class ea_name_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: ea_name_t const & + | + | @param i: size_t + | @param v: ea_name_t const & | | at(self, *args) | at(self, _idx) -> ea_name_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) | capacity(self) -> size_t @@ -68386,16 +65486,16 @@ class ea_name_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) | erase(self, it) -> ea_name_t - | it: qvector< ea_name_t >::iterator | + | @param it: qvector< ea_name_t >::iterator | | erase(self, first, last) -> ea_name_t - | first: qvector< ea_name_t >::iterator - | last: qvector< ea_name_t >::iterator + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) | extract(self) -> ea_name_t @@ -68405,47 +65505,56 @@ class ea_name_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=ea_name_t()) - | x: ea_name_t const & + | + | @param x: ea_name_t const & | | inject(self, *args) | inject(self, s, len) - | s: ea_name_t * - | len: size_t + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> ea_name_t - | it: qvector< ea_name_t >::iterator - | x: ea_name_t const & + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: ea_name_t const & + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: ea_name_t const & | + | @param _newsize: size_t + | @param x: ea_name_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< ea_name_t > & + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) | truncate(self) @@ -68471,758 +65580,582 @@ class ea_name_vec_t(__builtin__.object) Help on function extract_name in module ida_name: extract_name(*args) + extract_name(line, x) -> str Extract a name or address from the specified string. - extract_name(line, x) -> str - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) force_name(ea, name, flags=0) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: int) + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) get_colored_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) get_colored_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) get_colored_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) get_debug_name(ea_ptr, how) -> str - @param ea_ptr (C++: ea_t *) - @param how (C++: debug_name_how_t) + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) get_debug_name_ea(name) -> ea_t - @param name (C++: const char *) + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) get_debug_names(names, ea1, ea2) - @param names (C++: ea_name_vec_t *) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - return_list: bool + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) + get_ea_name(ea, gtn_flags=0) -> qstring Get name at the specified address. - get_ea_name(ea, gtn_flags=0) -> qstring - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success Help on function get_long_name in module ida_name: get_long_name(*args) get_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_mangled_name_type in module ida_name: get_mangled_name_type(*args) get_mangled_name_type(name) -> mangled_name_type_t - name: char const * + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) get_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) + get_name_base_ea(_from, to) -> ea_t Get address of the name used in the expression for the address - get_name_base_ea(_from, to) -> ea_t - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) - Calculate flags for 'get_ea_name()' function. + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. Get name color. - get_name_color(_from, ea) -> color_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - get_name_value(_from, name) -> int - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - get_nice_colored_name(ea, flags=0) -> str - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) + get_nlist_ea(idx) -> ea_t Get address from the list at 'idx'. - get_nlist_ea(idx) -> ea_t - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) - Get index of the name in the listreturns the closest match. may return - idx >= size. - get_nlist_idx(ea) -> size_t - @param ea (C++: ea_t) + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) + get_nlist_name(idx) -> char const * Get name using idx. - get_nlist_name(idx) -> char const * - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) + get_nlist_size() -> size_t Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) get_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) get_visible_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) + hide_name(ea) Remove name from the list of names - hide_name(ea) - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) + is_ident(name) -> bool Is a valid name? (including ::MangleChars) - is_ident(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - is_ident_cp(cp) -> bool - @param cp (C++: wchar32_t) + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) + is_in_nlist(ea) -> bool Is the name included into the name list? - is_in_nlist(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool Is the name defined locally in the specified function? - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) is_public_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - is_strlit_cp(cp, specific_ranges=None) -> bool - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) + is_uname(name) -> bool Is valid user-specified name? (valid name & !dummy prefix). - is_uname(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) + is_valid_cp(cp, kind, data=None) -> bool Is the given codepoint acceptable in the given context? - is_valid_cp(cp, kind, data=None) -> bool - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) + is_valid_typename(name) -> bool Is valid type name? - is_valid_typename(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) + is_visible_cp(cp) -> bool Can a character be displayed in a name? (present in ::NameChars) - is_visible_cp(cp) -> bool - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) is_weak_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) make_name_auto(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) make_name_non_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) make_name_non_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) make_name_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) make_name_user(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) make_name_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) + rebuild_nlist() Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) + reorder_dummy_names() Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) set_debug_name(ea, name) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - set_dummy_name(_from, ea) -> bool - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - @retval: 1 - ok, dummy name is generated or the byte already had a - name - @retval: 0 - failure, invalid address or tail byte + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - set_name(ea, name, flags=0) -> bool - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, - non-auto. (C++: int) - @retval: 1 - ok, name is changed - @retval: 0 - failure, a warning is displayed + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) + show_name(ea) Insert name to the list of names. - show_name(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - validate_name(name, type, flags=0) -> PyObject * - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. -ida_name.GETN_APPZERO -""" -meaningful only if the name refers to a structure. append a struct -field name if the field offset is zero? -""" +(Namely, Btree). To learn more about Balanced Trees: +\link{http://www.bluerwhite.org/btree/} -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +We don't use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Usually there is a trivial mapping +of the linear addresses used in the program to netnodes. If we have additional +information about an address (a comment is attached to it, for example), this +information is stored in the corresponding netnode. See nalt.hpp to see how the +kernel uses netnodes. Also, some netnodes have no corresponding linear address +(however, they still have an id). They are used to store information not related +to a particular address. -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblog/getblob and other blob-related functions. -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +Advanced info: -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -if name cannot be set because of a tail byte, delete the hindering -item -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) exist(n) -> bool - n: netnode const & + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -69233,570 +66166,813 @@ class netnode(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __eq__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __init__(self, *args) | __init__(self, num=nodeidx_t(-1)) -> netnode - | num: nodeidx_t | + | @param num: nodeidx_t | | __init__(self, _name, namlen=0, do_create=False) -> netnode - | _name: char const * - | namlen: size_t - | do_create: bool + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) | __ne__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __ne__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | | altdel(self, *args) | altdel(self, alt, tag=atag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool | | altdel_all(self, *args) | altdel_all(self, tag=atag) -> bool - | tag: uchar + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) | altdel_ea(self, ea, tag=atag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) | altdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) | altfirst(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) | altfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altlast(self, *args) | altlast(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) | altlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altnext(self, *args) | altnext(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) | altnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) | altprev(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) | altprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) | altset(self, alt, value, tag=atag) -> bool - | alt: nodeidx_t - | value: nodeidx_t - | tag: uchar + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) | altset_ea(self, ea, value, tag=atag) -> bool - | ea: ea_t - | value: nodeidx_t - | tag: uchar + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) | altset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: nodeidx_t - | tag: uchar + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) | altshift(self, _from, to, size, tag=atag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) | altval(self, alt, tag=atag) -> nodeidx_t - | alt: nodeidx_t - | tag: uchar + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) | altval_ea(self, ea, tag=atag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) | altval_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) | blobsize(self, _start, tag) -> size_t - | _start: nodeidx_t - | tag: uchar + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) | blobsize_ea(self, ea, tag) -> size_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) | chardel(self, alt, tag) -> bool - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) | chardel_ea(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) | chardel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) | charfirst(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charfirst_idx8(self, *args) | charfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast(self, *args) | charlast(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast_idx8(self, *args) | charlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charnext(self, *args) | charnext(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) | charnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) | charprev(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) | charprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) | charset(self, alt, val, tag) -> bool - | alt: nodeidx_t - | val: uchar - | tag: uchar + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) | charset_ea(self, ea, val, tag) -> bool - | ea: ea_t - | val: uchar - | tag: uchar + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) | charset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: uchar - | tag: uchar + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) | charshift(self, _from, to, size, tag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) | charval(self, alt, tag) -> uchar - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) | charval_ea(self, ea, tag) -> uchar - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) | charval_idx8(self, alt, tag) -> uchar - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) | copyto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) | create(self, _name, namlen=0) -> bool - | _name: char const * - | namlen: size_t + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool | | delblob(self, *args) | delblob(self, _start, tag) -> int - | _start: nodeidx_t - | tag: uchar + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) | delblob_ea(self, ea, tag) -> int - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) | eadel(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) | eadel_idx8(self, idx, tag) -> bool - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) | eaget(self, ea, tag) -> ea_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) | eaget_idx(self, idx, tag) -> ea_t - | idx: nodeidx_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) | eaget_idx8(self, idx, tag) -> ea_t - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) | easet(self, ea, addr, tag) -> bool - | ea: ea_t - | addr: ea_t - | tag: uchar + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) | easet_idx(self, idx, addr, tag) -> bool - | idx: nodeidx_t - | addr: ea_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) | easet_idx8(self, idx, addr, tag) -> bool - | idx: uchar - | addr: ea_t - | tag: uchar + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) - | getblob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) | getblob_ea(self, ea, tag) -> PyObject * - | ea: ea_t - | tag: char + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) - | getclob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) | hashdel(self, idx, tag=htag) -> bool - | idx: char const * - | tag: uchar + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) | hashdel_all(self, tag=htag) -> bool - | tag: uchar + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) | hashfirst(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) | hashlast(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) | hashnext(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) | hashprev(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) | hashset(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: void const * - | tag: uchar + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) | hashset_buf(self, idx, py_str, tag=htag) -> bool - | idx: char const * - | py_str: PyObject * - | tag: char + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) | hashset_idx(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: nodeidx_t - | tag: uchar + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) | hashstr(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) | hashstr_buf(self, idx, tag=htag) -> PyObject * - | idx: char const * - | tag: char + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) | hashval(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) | hashval_long(self, idx, tag=htag) -> nodeidx_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) | index(self) -> nodeidx_t | | kill(self, *args) | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) | long_value(self) -> nodeidx_t | | lower_bound(self, *args) | lower_bound(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) | moveto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) | rename(self, newname, namlen=0) -> bool - | newname: char const * - | namlen: size_t + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) | set(self, value) -> bool - | value: void const * + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) | set_long(self, x) -> bool - | x: nodeidx_t + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) | setblob(self, buf, _start, tag) -> bool - | buf: void const * - | _start: nodeidx_t - | tag: uchar + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) | setblob_ea(self, buf, ea, tag) -> bool - | buf: void const * - | ea: ea_t - | tag: uchar + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) | supdel(self, alt, tag=stag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool | | supdel_all(self, *args) | supdel_all(self, tag) -> bool - | tag: uchar + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) | supdel_ea(self, ea, tag=stag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) | supdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) | supdel_range(self, idx1, idx2, tag) -> int - | idx1: nodeidx_t - | idx2: nodeidx_t - | tag: uchar + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) | supdel_range_idx8(self, idx1, idx2, tag) -> int - | idx1: uchar - | idx2: uchar - | tag: uchar + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) | supfirst(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) | supfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | suplast(self, *args) | suplast(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) | suplast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | supnext(self, *args) | supnext(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) | supnext_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) | supprev(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) | supprev_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: void const * - | tag: uchar + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: void const * - | tag: uchar + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) | supset_idx8(self, alt, value, tag) -> bool - | alt: uchar - | value: void const * - | tag: uchar + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) | supshift(self, _from, to, size, tag=stag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) | supstr(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) | supstr_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) | supstr_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) | supval(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) | supval_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) | supval_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) | value_exists(self) -> bool @@ -69806,7 +66982,9 @@ class netnode(__builtin__.object) | | exist(*args) | exist(_name) -> bool - | _name: char const * + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69830,224 +67008,254 @@ Help on function netnode_exist in module ida_netnode: netnode_exist(*args) netnode_exist(_name) -> bool - _name: char const * + + @param _name: char const * -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - @param insn: the referencing instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) + calc_basevalue(target, base) -> ea_t Calculate the value of the reference base. - calc_basevalue(target, base) -> ea_t - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - calc_offset_base(ea, n) -> ea_t - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - calc_probable_base_by_value(ea, off) -> ea_t - @param ea (C++: ea_t) - @param off (C++: uval_t) + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - calc_reference_data(target, base, _from, ri, opval) -> bool - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success Help on function calc_target in module ida_offset: calc_target(*args) - Calculates the target, using the provided 'refinfo_t' . - calc_target(_from, opval, ri) -> ea_t - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + Retrieves refinfo_t structure and calculates the target. + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & calc_target(_from, ea, n, opval) -> ea_t - @param _from (C++: ea_t) - ea: ea_t - n: int - @param opval (C++: adiff_t) + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - can_be_off32(ea) -> ea_t - @param ea (C++: ea_t) + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) + get_default_reftype(ea) -> reftype_t Get default reference type depending on the segment. - get_default_reftype(ea) -> reftype_t - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) + get_offbase(ea, n) -> ea_t Get offset base value - get_offbase(ea, n) -> ea_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) - See 'get_offset_expression()' - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - @retval: 0 - can't convert to offset expression - @retval: 1 - ok, a simple offset expression - @retval: 2 - ok, a complex offset expression + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: op_offset(*args) - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: op_offset_ex(*args) - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - op_offset_ex(ea, n, ri) -> bool - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) + op_plain_offset(ea, n, base) -> bool Convert operand to a reference with the default reference type. - op_plain_offset(ea, n, base) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -70246,15 +67454,19 @@ class boolvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bool const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | x: qvector< bool > const & + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70263,22 +67475,28 @@ class boolvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: bool const & + | + | @param i: size_t + | @param v: bool const & | | _del(self, *args) | _del(self, x) -> bool - | x: bool const & + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | append = push_back(self, *args) | @@ -70306,74 +67524,86 @@ class boolvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< bool >::iterator - | it: qvector< bool >::iterator | + | @param it: qvector< bool >::iterator | | erase(self, first, last) -> qvector< bool >::iterator - | first: qvector< bool >::iterator - | last: qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) | extract(self) -> bool * | | find(self, *args) | find(self, x) -> qvector< bool >::iterator - | x: bool const & | + | @param x: bool const & | | find(self, x) -> qvector< bool >::const_iterator - | x: bool const & + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bool()) - | x: bool const & + | + | @param x: bool const & | | has(self, *args) | has(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | inject(self, *args) | inject(self, s, len) - | s: bool * - | len: size_t + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< bool >::iterator - | it: qvector< bool >::iterator - | x: bool const & + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: bool const & + | + | @param x: bool const & + | + | push_back(self) -> bool & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: bool const & | + | @param _newsize: size_t + | @param x: bool const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< bool > & + | + | @param r: qvector< bool > & | | truncate(self, *args) | truncate(self) @@ -70430,19 +67660,19 @@ class channel_redir_t(__builtin__.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -70456,28 +67686,29 @@ class channel_redir_t(__builtin__.object) Help on function check_process_exit in module ida_pro: check_process_exit(*args) + check_process_exit(handle, exit_code, msecs=-1) -> int Check whether process has terminated or not. - check_process_exit(handle, exit_code, msecs=-1) -> int - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - msecs: int - @retval: 0 - process has exited, and the exit code is available. if - *exit_code < 0: the process was killed with a signal - -*exit_code - @retval: 1 - process has not exited yet - @retval: -1 - error happened, see error code for winerr() in - *exit_code + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on function clear_bits in module ida_pro: clear_bits(*args) + clear_bits(bitmap, low, high) Clear bits between [low, high) in 'bitmap'. - clear_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class ea_array in module ida_pro: @@ -70488,18 +67719,21 @@ class ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> ea_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: ea_t + | + | @param index: size_t + | @param value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -70509,7 +67743,8 @@ class ea_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_array - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70533,7 +67768,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) ea_array_frompointer(t) -> ea_array - t: ea_t * + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -70549,7 +67785,8 @@ class ea_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: ea_t + | + | @param value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -70562,7 +67799,8 @@ class ea_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_pointer - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70586,18 +67824,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) ea_pointer_frompointer(t) -> ea_pointer - t: ea_t * + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - extend_sign(v, nbytes, sign_extend) -> uint64 - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -70621,28 +67860,28 @@ class instant_dbgopts_t(__builtin__.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag @@ -70662,15 +67901,19 @@ class longlongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | x: qvector< long long > const & + | __init__(self, x) -> longlongvec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70679,22 +67922,28 @@ class longlongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: long long const & + | + | @param i: size_t + | @param v: long long const & | | _del(self, *args) | _del(self, x) -> bool - | x: long long const & + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | append = push_back(self, *args) | @@ -70722,70 +67971,81 @@ class longlongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< long long >::iterator - | it: qvector< long long >::iterator | + | @param it: qvector< long long >::iterator | | erase(self, first, last) -> qvector< long long >::iterator - | first: qvector< long long >::iterator - | last: qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) | extract(self) -> long long * | | find(self, *args) | find(self, x) -> qvector< long long >::iterator - | x: long long const & | + | @param x: long long const & | | find(self, x) -> qvector< long long >::const_iterator - | x: long long const & + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | inject(self, *args) | inject(self, s, len) - | s: long long * - | len: size_t + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< long long >::iterator - | it: qvector< long long >::iterator - | x: long long const & + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: long long const & + | + | @param x: long long const & + | + | push_back(self) -> long long & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: long long const & | + | @param _newsize: size_t + | @param x: long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< long long > & + | + | @param r: qvector< long long > & | | truncate(self, *args) | truncate(self) @@ -70822,7 +68082,8 @@ class int_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: int + | + | @param value: int | | cast(self, *args) | cast(self) -> int * @@ -70835,7 +68096,8 @@ class int_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> int_pointer - | t: int * + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70859,7 +68121,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) int_pointer_frompointer(t) -> int_pointer - t: int * + + @param t: int * Help on class intvec_t in module ida_pro: @@ -70870,15 +68133,19 @@ class intvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | x: qvector< int > const & + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70887,22 +68154,28 @@ class intvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) | @@ -70930,70 +68203,81 @@ class intvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -71019,69 +68303,73 @@ class intvec_t(__builtin__.object) Help on function is_control_tty in module ida_pro: is_control_tty(*args) + is_control_tty(fd) -> enum tty_control_t Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - is_control_tty(fd) -> enum tty_control_t - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) + is_main_thread() -> bool Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - log2ceil(d64) -> int - @param d64 (C++: uint64) + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) log2floor(d64) -> int - @param d64 (C++: uint64) + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - parse_dbgopts(ido, r_switch) -> bool - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) qatoll(nptr) -> int64 - @param nptr (C++: const char *) + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -71092,7 +68380,8 @@ class qmutex_locker_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t - | _lock: qmutex_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -71126,9 +68415,10 @@ class qrefcnt_obj_t(__builtin__.object) | __repr__ = _swig_repr(self) | | release(self, *args) - | Call destructor. We use 'release()' instead of operator delete() to - | maintain binary compatibility with all compilers (vc and gcc use - | different vtable layouts for operator delete) + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71140,7 +68430,7 @@ class qrefcnt_obj_t(__builtin__.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -71155,29 +68445,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) qstrvec_t_add(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) qstrvec_t_addressof(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) qstrvec_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) qstrvec_t_clear(_self, qclear) -> bool - self: PyObject * - qclear: bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -71188,123 +68482,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) qstrvec_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) qstrvec_t_from_list(_self, py_list) -> bool - self: PyObject * - py_list: PyObject * + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) qstrvec_t_get(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) qstrvec_t_get_clink(_self) -> qstrvec_t * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) qstrvec_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) qstrvec_t_insert(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) qstrvec_t_remove(_self, idx) -> bool - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) qstrvec_t_set(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) qstrvec_t_size(_self) -> size_t - self: PyObject * + + @param self: PyObject * Help on function qthread_equal in module ida_pro: qthread_equal(*args) + qthread_equal(q1, q2) -> bool Are two threads equal? - qthread_equal(q1, q2) -> bool - @param q1 (C++: qthread_t) - @param q2 (C++: qthread_t) + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - quote_cmdline_arg(arg) -> bool - @param arg (C++: qstring *) - @return: true: modified 'arg' + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) + qvector_reserve(vec, old, cnt, elsize) -> void * Change capacity of given qvector. - qvector_reserve(vec, old, cnt, elsize) -> void * - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) + readbytes(h, res, size, mf) -> int Read at most 4 bytes from file. - readbytes(h, res, size, mf) -> int - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) reloc_value(value, size, delta, mf) - @param value (C++: void *) - @param size (C++: int) - @param delta (C++: adiff_t) - @param mf (C++: bool) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) relocate_relobj(_relobj, ea, mf) -> bool - @param _relobj (C++: struct relobj_t *) - @param ea (C++: ea_t) - @param mf (C++: bool) + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -71315,18 +68620,21 @@ class sel_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> sel_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: sel_t + | + | @param index: size_t + | @param value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -71336,7 +68644,8 @@ class sel_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_array - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71360,7 +68669,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) sel_array_frompointer(t) -> sel_array - t: sel_t * + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -71376,7 +68686,8 @@ class sel_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: sel_t + | + | @param value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -71389,7 +68700,8 @@ class sel_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_pointer - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71413,17 +68725,18 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) sel_pointer_frompointer(t) -> sel_pointer - t: sel_t * + + @param t: sel_t * Help on function set_bits in module ida_pro: set_bits(*args) + set_bits(bitmap, low, high) Set bits between [low, high) in 'bitmap'. - set_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -71434,15 +68747,19 @@ class sizevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> size_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | x: qvector< size_t > const & + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71452,26 +68769,33 @@ class sizevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: size_t const & + | + | @param i: size_t + | @param v: size_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: size_t const & + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | at(self, *args) | at(self, _idx) -> size_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71495,74 +68819,86 @@ class sizevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator | + | @param it: qvector< size_t >::iterator | | erase(self, first, last) -> qvector< size_t >::iterator - | first: qvector< size_t >::iterator - | last: qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) | extract(self) -> size_t * | | find(self, *args) | find(self, x) -> qvector< size_t >::iterator - | x: size_t const & | + | @param x: size_t const & | | find(self, x) -> qvector< size_t >::const_iterator - | x: size_t const & + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=size_t()) - | x: size_t const & + | + | @param x: size_t const & | | has(self, *args) | has(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | inject(self, *args) | inject(self, s, len) - | s: size_t * - | len: size_t + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator - | x: size_t const & + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: size_t const & + | + | @param x: size_t const & + | + | push_back(self) -> size_t & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: size_t const & | + | @param _newsize: size_t + | @param x: size_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< size_t > & + | + | @param r: qvector< size_t > & | | truncate(self, *args) | truncate(self) @@ -71588,9 +68924,10 @@ class sizevec_t(__builtin__.object) Help on function str2user in module ida_pro: str2user(*args) - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -71602,11 +68939,14 @@ class strvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> simpleline_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | x: qvector< simpleline_t > const & + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71617,8 +68957,9 @@ class strvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: simpleline_t const & + | + | @param i: size_t + | @param v: simpleline_t const & | | append = push_back(self, *args) | @@ -71646,12 +68987,13 @@ class strvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator | + | @param it: qvector< simpleline_t >::iterator | | erase(self, first, last) -> qvector< simpleline_t >::iterator - | first: qvector< simpleline_t >::iterator - | last: qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) | extract(self) -> simpleline_t * @@ -71661,47 +69003,56 @@ class strvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=simpleline_t()) - | x: simpleline_t const & + | + | @param x: simpleline_t const & | | inject(self, *args) | inject(self, s, len) - | s: simpleline_t * - | len: size_t + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator - | x: simpleline_t const & + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: simpleline_t const & + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: simpleline_t const & | + | @param _newsize: size_t + | @param x: simpleline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< simpleline_t > & + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) | truncate(self) @@ -71738,7 +69089,8 @@ class sval_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) - | value: sval_t + | + | @param value: sval_t | | cast(self, *args) | cast(self) -> sval_t * @@ -71751,7 +69103,8 @@ class sval_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sval_pointer - | t: sval_t * + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71775,7 +69128,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) sval_pointer_frompointer(t) -> sval_pointer - t: sval_t * + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -71786,18 +69140,21 @@ class tid_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> tid_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: tid_t + | + | @param index: size_t + | @param value: tid_t | | cast(self, *args) | cast(self) -> tid_t * @@ -71807,7 +69164,8 @@ class tid_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> tid_array - | t: tid_t * + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71831,7 +69189,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) tid_array_frompointer(t) -> tid_array - t: tid_t * + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -71842,18 +69201,21 @@ class uchar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uchar - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: uchar + | + | @param index: size_t + | @param value: uchar | | cast(self, *args) | cast(self) -> uchar * @@ -71863,7 +69225,8 @@ class uchar_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uchar_array - | t: uchar * + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71887,7 +69250,8 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) uchar_array_frompointer(t) -> uchar_array - t: uchar * + + @param t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -71898,15 +69262,19 @@ class ulonglongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | x: qvector< unsigned long long > const & + | __init__(self, x) -> ulonglongvec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71915,22 +69283,28 @@ class ulonglongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned long long const & + | + | @param i: size_t + | @param v: unsigned long long const & | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned long long const & + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | append = push_back(self, *args) | @@ -71958,70 +69332,81 @@ class ulonglongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator | + | @param it: qvector< unsigned long long >::iterator | | erase(self, first, last) -> qvector< unsigned long long >::iterator - | first: qvector< unsigned long long >::iterator - | last: qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) | extract(self) -> unsigned long long * | | find(self, *args) | find(self, x) -> qvector< unsigned long long >::iterator - | x: unsigned long long const & | + | @param x: unsigned long long const & | | find(self, x) -> qvector< unsigned long long >::const_iterator - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | inject(self, *args) | inject(self, s, len) - | s: unsigned long long * - | len: size_t + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator - | x: unsigned long long const & + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned long long const & + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned long long const & | + | @param _newsize: size_t + | @param x: unsigned long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned long long > & + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) | truncate(self) @@ -72053,15 +69438,19 @@ class uintvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | x: qvector< unsigned int > const & + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72070,22 +69459,28 @@ class uintvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: unsigned int const & + | + | @param i: size_t + | @param v: unsigned int const & | | _del(self, *args) | _del(self, x) -> bool - | x: unsigned int const & + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | append = push_back(self, *args) | @@ -72113,70 +69508,81 @@ class uintvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator | + | @param it: qvector< unsigned int >::iterator | | erase(self, first, last) -> qvector< unsigned int >::iterator - | first: qvector< unsigned int >::iterator - | last: qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) | extract(self) -> unsigned int * | | find(self, *args) | find(self, x) -> qvector< unsigned int >::iterator - | x: unsigned int const & | + | @param x: unsigned int const & | | find(self, x) -> qvector< unsigned int >::const_iterator - | x: unsigned int const & + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | inject(self, *args) | inject(self, s, len) - | s: unsigned int * - | len: size_t + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator - | x: unsigned int const & + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: unsigned int const & + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned int const & | + | @param _newsize: size_t + | @param x: unsigned int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< unsigned int > & + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) | truncate(self) @@ -72208,18 +69614,21 @@ class uval_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uval_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) - | index: size_t - | value: uval_t + | + | @param index: size_t + | @param value: uval_t | | cast(self, *args) | cast(self) -> uval_t * @@ -72229,7 +69638,8 @@ class uval_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uval_array - | t: uval_t * + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72253,142 +69663,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) uval_array_frompointer(t) -> uval_array - t: uval_t * + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) + writebytes(h, l, size, mf) -> int Write at most 4 bytes to file. - writebytes(h, l, size, mf) -> int - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.6. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) + forget_problem(type, ea) -> bool Remove an address from a problem list - forget_problem(type, ea) -> bool - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success Help on function get_problem in module ida_problems: get_problem(*args) - Get an address from the specified problem list. The address is not - removed from the list. - get_problem(type, lowea) -> ea_t - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) - Get the human-friendly description of the problem, if one was provided - to remember_problem. - get_problem_desc(t, ea) -> str - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) + get_problem_name(type, longname=True) -> char const * Get problem list description. - get_problem_name(type, longname=True) -> char const * - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) + is_problem_present(t, ea) -> bool Check if the specified address is present in the problem list. - is_problem_present(t, ea) -> bool - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - remember_problem(type, ea, msg=None) - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) was_ida_decision(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -72399,15 +69781,19 @@ class array_of_rangesets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rangeset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | x: qvector< rangeset_t > const & + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72417,33 +69803,39 @@ class array_of_rangesets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: rangeset_t const & + | + | @param i: size_t + | @param v: rangeset_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: rangeset_t const & + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | at(self, *args) | at(self, _idx) -> rangeset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) | capacity(self) -> size_t @@ -72456,78 +69848,85 @@ class array_of_rangesets(__builtin__.object) | | end(self, *args) | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) | erase(self, it) -> rangeset_t - | it: qvector< rangeset_t >::iterator | + | @param it: qvector< rangeset_t >::iterator | | erase(self, first, last) -> rangeset_t - | first: qvector< rangeset_t >::iterator - | last: qvector< rangeset_t >::iterator + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) | extract(self) -> rangeset_t | | find(self, *args) | find(self, x) -> rangeset_t - | x: rangeset_t const & | - | - | find(self, x) -> rangeset_t - | x: rangeset_t const & + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rangeset_t()) - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | has(self, *args) | has(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | inject(self, *args) | inject(self, s, len) - | s: rangeset_t * - | len: size_t + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> rangeset_t - | it: qvector< rangeset_t >::iterator - | x: rangeset_t const & + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: rangeset_t const & + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: rangeset_t const & | + | @param _newsize: size_t + | @param x: rangeset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< rangeset_t > & + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) | truncate(self) @@ -72559,24 +69958,30 @@ class range_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | ea1: ea_t - | ea2: ea_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -72584,48 +69989,50 @@ class range_t(__builtin__.object) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72639,12 +70046,12 @@ class range_t(__builtin__.object) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -72658,10 +70065,10 @@ class range_t(__builtin__.object) Help on function range_t_print in module ida_range: range_t_print(*args) + range_t_print(cb) -> str Helper function. Should not be called directly! - range_t_print(cb) -> str - cb: range_t const * + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -72672,17 +70079,20 @@ class rangeset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | range: range_t const & + | __init__(self, range) -> rangeset_t | + | @param range: range_t const & | | __init__(self, ivs) -> rangeset_t - | ivs: rangeset_t const & + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72691,7 +70101,8 @@ class rangeset_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -72699,160 +70110,157 @@ class rangeset_t(__builtin__.object) | _print(self) -> size_t | | add(self, *args) - | Add an address range to the set. If 'range' intersects an existing - | element e, then e is extended to include 'range', and any superfluous - | elements (subsets of e) are removed. - | | add(self, range) -> bool - | @param range: address range to add. cannot be empty (C++: const - | range_t &) - | @return: false if no elements were added (the set was unchanged) + | Add each element of 'aset' to the set. | + | @param range: range_t const & | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool - | start: ea_t - | _end: ea_t - | @return: false if no elements were added (the set was unchanged) | + | @param start: ea_t + | @param _end: ea_t | | add(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if no elements were added (the set was unchanged) + | + | @param aset: rangeset_t const & | | begin(self, *args) + | begin(self) -> range_t | Get an iterator that points to the first element in the set. | | cached_range(self, *args) - | When searching the rangeset, we keep a cached element to help speed up - | searches. + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) - | Delete all elements from the set. See 'qvector::clear()' + | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) - | Does an element of the rangeset contain 'ea'? See - | range_t::contains(ea_t) - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) | + | @param ea: ea_t | | contains(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | empty(self, *args) + | empty(self) -> bool | Does the set have zero elements. | | end(self, *args) - | Get an iterator that points to the end of the set. (This is NOT the - | last element) + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) + | find_range(self, ea) -> range_t | Get the element from the set that contains 'ea'. | - | find_range(self, ea) -> range_t - | @param ea (C++: ea_t) - | @return: NULL if there is no such element + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) - | Get the 'range_t' at index 'idx'. - | | getrange(self, idx) -> range_t - | @param idx (C++: int) + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) - | Is there an ea in 'range' that is also in the rangeset? - | | has_common(self, range) -> bool - | @param range (C++: const range_t &) + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() | + | @param range: range_t const & | | has_common(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | includes(self, *args) + | includes(self, range) -> bool | Is every ea in 'range' contained in the rangeset? | - | includes(self, range) -> bool - | @param range (C++: const range_t &) + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) + | intersect(self, aset) -> bool | Set the rangeset to its intersection with 'aset'. | - | intersect(self, aset) -> bool - | @param aset (C++: const rangeset_t &) - | @return: false if the set was unchanged + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) + | is_equal(self, aset) -> bool | Do this rangeset and 'aset' have identical elements? | - | is_equal(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) + | is_subset_of(self, aset) -> bool | Is every element in the rangeset contained in an element of 'aset'? | - | is_subset_of(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) - | Get the last 'range_t' in the set. + | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) - | Get the smallest ea_t value greater than 'ea' contained in the - | rangeset. - | | next_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) - | Get the smallest ea_t value greater than 'ea' that is not in the same - | range as 'ea'. - | | next_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) - | Get the number of 'range_t' elements in the set. + | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) + | prev_addr(self, ea) -> ea_t | Get the largest ea_t value less than 'ea' contained in the rangeset. | - | prev_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | prev_range(self, *args) - | Get the largest ea_t value less than 'ea' that is not in the same - | range as 'ea'. - | | prev_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) - | Subtract an address range from the set. All subsets of 'range' will be - | removed, and all elements that intersect 'range' will be - | truncated/split so they do not include 'range'. - | | sub(self, range) -> bool - | @param range: address range to subtract. cannot be empty. (C++: const - | range_t &) - | @return: false if nothing was subtracted (the set was unchanged) + | Subtract each range in 'aset' from the set | + | @param range: range_t const & | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool - | ea: ea_t - | @return: false if nothing was subtracted (the set was unchanged) | + | @param ea: ea_t | | sub(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if nothing was subtracted (the set was unchanged) + | + | @param aset: rangeset_t const & | | swap(self, *args) - | Set this = 'r' and 'r' = this. See 'qvector::swap()' - | | swap(self, r) - | @param r (C++: rangeset_t &) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72881,15 +70289,19 @@ class rangevec_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | x: qvector< range_t > const & + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72899,33 +70311,39 @@ class rangevec_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -72938,78 +70356,85 @@ class rangevec_base_t(__builtin__.object) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -73066,11 +70491,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73080,31 +70507,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -73117,78 +70550,85 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -73202,50 +70642,63 @@ class rangevec_t(rangevec_base_t) | __weakref__ | list of weak references to the object (if defined) +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) + reg_data_type(name, subkey=None) -> regval_type_t Get data type of a given value. - reg_data_type(name, subkey=None) -> regval_type_t - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) + reg_delete(name, subkey=None) -> bool Delete a value from the registry. - reg_delete(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) + reg_delete_subkey(name) -> bool Delete a key from the registry. - reg_delete_subkey(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) + reg_delete_tree(name) -> bool Delete a subtree from the registry. - reg_delete_tree(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) + reg_exists(name, subkey=None) -> bool Is there already a value with the given name? - reg_exists(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -73260,759 +70713,718 @@ reg_load(*args) Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - reg_read_binary(name, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) + reg_read_bool(name, defval, subkey=None) -> bool Read boolean value from the registry. - reg_read_bool(name, defval, subkey=None) -> bool - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) + reg_read_int(name, defval, subkey=None) -> int Read integer value from the registry. - reg_read_int(name, defval, subkey=None) -> int - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - reg_read_string(name, subkey=None, _def=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - def: char const * - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - reg_read_strlist(subkey) - @param subkey (C++: const char *) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) + reg_subkey_exists(name) -> bool Is there already a key with the given name? - reg_subkey_exists(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - reg_subkey_subkeys(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - reg_subkey_values(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) Update list of strings associated with given key. - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * Write binary data to the registry. - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - py_bytes: PyObject * - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) + reg_write_bool(name, value, subkey=None) Write boolean value to the registry. - reg_write_bool(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) + reg_write_int(name, value, subkey=None) Write integer value to the registry. - reg_write_int(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) + reg_write_string(name, utf8, subkey=None) Write a string to the registry. - reg_write_string(name, utf8, subkey=None) - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) + find_error(ea, sflag) -> ea_t Find next error or problem. - find_error(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) + find_not_func(ea, sflag) -> ea_t Find next code address that does not belong to a function. - find_not_func(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) + find_notype(ea, sflag) -> ea_t Find next operand without any type info. - find_notype(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_reg_access in module ida_search: find_reg_access(*args) - Find access to a register.This function does not care about the - control flow and probes all instructions in the specified range, - starting from START_EA. Only direct references to registers are - detected. Function calls and system traps are ignored. - find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t - @param out: pointer to the output buffer. must be non-null. upon - success contains info about the found register. upon - failed search for a read access out->range contains the - info about the non-redefined parts of the register. (C++: - struct reg_access_t *) - @param start_ea: starting address (C++: ea_t) - @param end_ea: ending address. BADADDR means that the end limit is - missing. otherwise, if the search direction is - SEARCH_UP, END_EA must be lower than START_EA. (C++: - ea_t) - @param regname: the register to search for. (C++: const char *) - @param sflag: combination of Search flags bits. (C++: int) - @return: the found address. BADADDR if not found or error. + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) - See 'search()' - find_text(start_ea, y, x, ustr, sflag) -> ea_t - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) - Is the 'SEARCH_DOWN' bit set? - search_down(sflag) -> bool - @param sflag (C++: int) + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if the search was cancelled. +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DEF -""" -find_reg_access: search for a definition (write access) -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +(start address of segment - segment base linear address) -ida_search.SEARCH_NEXT -""" -skip the starting address when searching. this bit is useful only for -'search()' , 'bin_search2()' , 'find_reg_access()' . find_.. functions -skip the starting address automatically. -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -do not test if the user clicked cancel to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -do not display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (supported only for the text -search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" - -ida_search.SEARCH_USE -""" -find_reg_access: search for a use (read access) -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - add_segm(para, start, end, name, sclass, flags=0) -> bool - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @retval 1: ok + @retval 0: failed, a warning message is displayed + @param flags: (C++: int) Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - add_segm_ex(s, name, sclass, flags) -> bool - @param s: pointer to filled segment structure. segment - selector should have proper mapping (see - set_selector() ). if s.start_ea== BADADDR then - s.start_ea <- get_segm_base(&s) if s.end_ea== - BADADDR , then a segment up to the next segment will - be created (if the next segment doesn't exist, then - 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and - the new segment would overlap the next segment, - s.end_ea is adjusted properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) + add_segment_translation(segstart, mappedseg) -> bool Add segment translation. - add_segment_translation(segstart, mappedseg) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - allocate_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - change_segment_status(s, is_deb_segm) -> int - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) + del_segment_translations(segstart) Delete the translation list - del_segment_translations(segstart) - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) + find_free_selector() -> sel_t Find first unused selector. + + @return: a number >= 1 Help on function find_selector in module ida_segment: find_selector(*args) + find_selector(base) -> sel_t Find a selector that has mapping to the specified paragraph. - find_selector(base) -> sel_t - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) get_defsr(s, reg) -> sel_t - s: segment_t * - reg: int + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) + get_first_seg() -> segment_t Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) + get_group_selector(grpsel) -> sel_t Get common selector for a group of segments. - get_group_selector(grpsel) -> sel_t - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) + get_last_seg() -> segment_t Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) + get_next_seg(ea) -> segment_t Get pointer to the next segment. - get_next_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) + get_prev_seg(ea) -> segment_t Get pointer to the previous segment. - get_prev_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - get_segm_base(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - get_segm_by_name(name) -> segment_t - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - get_segm_by_sel(selector) -> segment_t - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) + get_segm_class(s) -> str Get segment class. Segment class is arbitrary text (max 8 characters). - get_segm_class(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) + get_segm_name(s, flags=0) -> str Get true segment name by pointer to segment. - get_segm_name(s, flags=0) -> str - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) + get_segm_num(ea) -> int Get number of segment by address. - get_segm_num(ea) -> int - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - get_segm_para(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) + get_segm_qty() -> int Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) + get_segment_alignment(align) -> char const * Get text representation of segment alignment code. - get_segment_alignment(align) -> char const * - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) + get_segment_cmt(s, repeatable) -> str Get segment comment. - get_segment_cmt(s, repeatable) -> str - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) + get_segment_combination(comb) -> char const * Get text representation of segment combination code. - get_segment_combination(comb) -> char const * - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) + get_segment_translations(transmap, segstart) -> ssize_t Get segment translation list. - get_segment_translations(transmap, segstart) -> ssize_t - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: get_selector_qty(*args) + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) + get_visible_segm_name(s) -> str Get segment name by pointer to segment. - get_visible_segm_name(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) - Get description of selector (0.. 'get_selector_qty()' -1) - getn_selector(n) -> bool - @param n (C++: int) + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - getnseg(n) -> segment_t - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) + getseg(ea) -> segment_t Get pointer to segment by linear address. - getseg(ea) -> segment_t - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - is_finally_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) + is_miniidb() -> bool Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) + is_segm_locked(segm) -> bool Is a segment pointer locked? - is_segm_locked(segm) -> bool - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - is_spec_ea(ea) -> bool - @param ea: linear address (C++: ea_t) + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - is_spec_segm(seg_type) -> bool - @param seg_type (C++: uchar) + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) - See 'SFL_HIDDEN' . - is_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_segm(segm, lock) - @param segm (C++: const segment_t *) - @param lock (C++: bool) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -74023,7 +71435,8 @@ class lock_segment(__builtin__.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment - | _segm: segment_t const * + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -74048,76 +71461,74 @@ class lock_segment(__builtin__.object) Help on function move_segm in module ida_segment: move_segm(*args) - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - move_segm(s, to, flags=0) -> int - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - move_segm_start(ea, newstart, mode) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) + segm_adjust_diff(s, delta) -> adiff_t Truncate and sign extend a delta depending on the segment. - segm_adjust_diff(s, delta) -> adiff_t - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) + segm_adjust_ea(s, ea) -> ea_t Truncate an address depending on the segment. - segm_adjust_ea(s, ea) -> ea_t - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) Help on class segment_t in module ida_segment: @@ -74137,9 +71548,11 @@ class segment_t(ida_range.range_t) | __repr__ = _swig_repr(self) | | abits(self, *args) + | abits(self) -> int | Get number of address bits. | | abytes(self, *args) + | abytes(self) -> int | Get number of address bytes. | | clr_comorg(self, *args) @@ -74152,12 +71565,15 @@ class segment_t(ida_range.range_t) | comorg(self) -> bool | | is_16bit(self, *args) + | is_16bit(self) -> bool | Is a 16-bit segment? | | is_32bit(self, *args) + | is_32bit(self) -> bool | Is a 32-bit segment? | | is_64bit(self, *args) + | is_64bit(self) -> bool | Is a 64-bit segment? | | is_header_segm(self, *args) @@ -74180,32 +71596,39 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) | set_debugger_segm(self, debseg) - | debseg: bool + | + | @param debseg: bool | | set_header_segm(self, *args) | set_header_segm(self, on) - | on: bool + | + | @param on: bool | | set_hidden_segtype(self, *args) | set_hidden_segtype(self, hide) - | hide: bool + | + | @param hide: bool | | set_loader_segm(self, *args) | set_loader_segm(self, ldrseg) - | ldrseg: bool + | + | @param ldrseg: bool | | set_ob_ok(self, *args) | set_ob_ok(self) | | set_visible_segm(self, *args) | set_visible_segm(self, visible) - | visible: bool + | + | @param visible: bool | | update(self, *args) - | Update segment information. You must call this function after - | modification of segment characteristics. Note that not all fields of - | segment structure may be modified directly, there are special - | functions to modify some fields. + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | | use64 = is_64bit(self, *args) | @@ -74213,49 +71636,49 @@ class segment_t(ida_range.range_t) | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | defsr | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -74268,66 +71691,72 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -74345,814 +71774,380 @@ class segment_t(ida_range.range_t) Help on function segtype in module ida_segment: segtype(*args) + segtype(ea) -> uchar Get segment type. - segtype(ea) -> uchar - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) + sel2ea(selector) -> ea_t Get mapping of a selector as a linear address. - sel2ea(selector) -> ea_t - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) + sel2para(selector) -> ea_t Get mapping of a selector. - sel2para(selector) -> ea_t - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) set_defsr(s, reg, value) - s: segment_t * - reg: int - value: sel_t + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) + set_group_selector(grp, sel) -> int Create a new group of segments (used OMF files). - set_group_selector(grp, sel) -> int - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - set_segm_addressing(s, bitness) -> bool - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) + set_segm_base(s, newbase) -> bool Internal function. - set_segm_base(s, newbase) -> bool - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) + set_segm_class(s, sclass, flags=0) -> int Set segment class. - set_segm_class(s, sclass, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is NULL or bad or segment is NULL + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + @param flags: (C++: int) Help on function set_segm_end in module ida_segment: set_segm_end(*args) - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_end(ea, newend, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - set_segm_name(s, name, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is bad or segment is NULL + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_start(ea, newstart, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) + set_segment_cmt(s, cmt, repeatable) Set segment comment. - set_segment_cmt(s, cmt, repeatable) - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) + set_segment_translations(segstart, transmap) -> bool Set new translation list. - set_segment_translations(segstart, transmap) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) - See 'SFL_HIDDEN' . - set_visible_segm(s, visible) - @param s (C++: segment_t *) - @param visible (C++: bool) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - setup_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - std_out_segm_footer(ctx, seg) - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function update_segm in module ida_segment: update_segm(*args) update_segm(s) -> bool - @param s (C++: segment_t *) + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes -will be decoded accordingly -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -set all default segment register values to 'BADSEL' (undefine all -default segment registers) -""" - -ida_segment.ADDSEG_NOTRUNC -""" -don't truncate the new segment at the beginning of the next segment if -they overlap. destroy/truncate old segments instead. -""" - -ida_segment.ADDSEG_OR_DIE -""" -'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new ranges of the created segment. -please note that the ranges that were already enabled before creating -the segment will not change their storage type. -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -not enough memory (might be because the segment is too big) -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok -""" - -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -call loader only once with the special calling method. valid for -'rebase_program()' . see 'loader_t::move_segm' . -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -move netnodes instead of changing inf.netdelta (this is slower) valid -for 'rebase_program()' -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -loader segments will overwrite any existing debugger segments when -moved. valid for 'move_segm()' -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -don't move info from the start of segment to the new start address -(for 'set_segm_start()' ) -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -use sparse storage if extending the segment (for 'set_segm_start()' , -'set_segm_end()' ) -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -segment with 'extern' definitions. no instructions are allowed -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -This value is used by the PharLap OMF for page (4K) alignment. It is -not supported by LINK. -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -Relocatable, aligned on a double word (4-byte) boundary. -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -Private. Do not combine with any other program segment. -""" - -ida_segment.scPub -""" -Public. Combine by appending at an offset that meets the alignment -requirement. -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -Stack. Combine as for C=2. This combine type forces byte alignment. -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) Duplicate segment register ranges. - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - del_sreg_range(ea, rg) -> bool - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - get_prev_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - get_sreg(ea, rg) -> sel_t - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) + get_sreg_range(out, ea, rg) -> bool Get segment register range by linear address. - get_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) + get_sreg_range_num(ea, rg) -> int Get number of segment register range by address. - get_sreg_range_num(ea, rg) -> int - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) + get_sreg_ranges_qty(rg) -> size_t Get number of segment register ranges. - get_sreg_ranges_qty(rg) -> size_t - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) + getn_sreg_range(out, rg, n) -> bool Get segment register range by its number. - getn_sreg_range(out, rg, n) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) + set_default_dataseg(ds_sel) Set default value of DS register for all segments. - set_default_dataseg(ds_sel) - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) + set_default_sreg_value(sg, rg, value) -> bool Set default value of a segment register for a segment. - set_default_sreg_value(sg, rg, value) -> bool - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - set_sreg_at_next_code(ea1, ea2, rg, value) - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success Help on class sreg_range_t in module ida_segregs: @@ -75175,13 +72170,13 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -75194,66 +72189,72 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -75267,63 +72268,123 @@ class sreg_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA +Module "ida_srclang"s docstring: """ +Third-party compiler support.""" -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" +Help on function parse_decls_for_srclang in module ida_srclang: -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" +parse_decls_for_srclang(*args) + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source -ida_segregs.SR_user +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: """ -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + Help on function build_strlist in module ida_strlist: build_strlist(*args) + build_strlist() Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) + clear_strlist() Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - get_strlist_item(si, n) -> bool - @param si (C++: string_info_t *) - @param n (C++: size_t) + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: get_strlist_options(*args) + get_strlist_options() -> strwinsetup_t Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) - Get number of elements in the string list. The list will be loaded - from the database (if saved) or built from scratch. + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -75333,12 +72394,14 @@ class string_info_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | _ea: ea_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: string_info_t const & + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -75352,16 +72415,16 @@ class string_info_t(__builtin__.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -75386,7 +72449,10 @@ class strwinsetup_t(__builtin__.object) | | _set_strtypes(self, *args) | _set_strtypes(self, py_t) -> PyObject * - | py_t: PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75398,16 +72464,16 @@ class strwinsetup_t(__builtin__.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -75421,71 +72487,72 @@ class strwinsetup_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_strwinsetup_t> | delete_strwinsetup_t(self) +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - add_struc(idx, name, is_union=False) -> tid_t - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t Add member to existing structure. - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) + del_member_tinfo(sptr, mptr) -> bool Delete tinfo for given member. - del_member_tinfo(sptr, mptr) -> bool - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) + del_struc(sptr) -> bool Delete a structure type. - del_struc(sptr) -> bool - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) + del_struc_member(sptr, offset) -> bool Delete member at given offset. - del_struc_member(sptr, offset) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) + del_struc_members(sptr, off1, off2) -> int Delete members which occupy range of offsets (off1..off2). - del_struc_members(sptr, off1, off2) -> int - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error Help on class dyn_member_ref_array in module ida_struct: @@ -75496,12 +72563,14 @@ class dyn_member_ref_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_member_ref_array - | _data: member_t * - | _count: size_t + | + | @param _data: member_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75513,8 +72582,9 @@ class dyn_member_ref_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: member_t const & + | + | @param i: size_t + | @param v: member_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75526,10 +72596,10 @@ class dyn_member_ref_array(__builtin__.object) | list of weak references to the object (if defined) | | count - | dyn_member_ref_array_count_get(self) -> size_t + | count | | data - | dyn_member_ref_array_data_get(self) -> member_t + | data | | thisown | The membership flag @@ -75543,38 +72613,41 @@ class dyn_member_ref_array(__builtin__.object) Help on function expand_struc in module ida_struct: expand_struc(*args) + expand_struc(sptr, offset, delta, recalc=True) -> bool Expand/Shrink structure type. - expand_struc(sptr, offset, delta, recalc=True) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - get_best_fit_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_innermost_member in module ida_struct: get_innermost_member(*args) - get_innermost_member(sptr, offset) -> PyObject * + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) Get the innermost member at the given offset + @param sptr: the starting structure @param offset: offset into the starting structure - @return: - - None on failure + @return: - None on failure - tuple(member_t, struct_t, offset) where member_t: a member in SPTR (it is not a structure), struct_t: the innermost structure, @@ -75583,325 +72656,327 @@ get_innermost_member(*args) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) - For unions: returns number of members, for structs: returns size of - structure. - get_max_offset(sptr) -> ea_t - @param sptr (C++: struc_t *) + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) + get_member(sptr, offset) -> member_t Get member at given offset. - get_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) + get_member_by_fullname(fullname) -> member_t Get a member by its fully qualified name, "struct.field". - get_member_by_fullname(fullname) -> member_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) - Check if the specified member id points to a struct member. - get_member_by_id(mid) -> member_t - @param mid (C++: tid_t) + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) + get_member_by_name(sptr, membername) -> member_t Get a member by its name, like "field44". - get_member_by_name(sptr, membername) -> member_t - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) + get_member_cmt(mid, repeatable) -> str Get comment of structure member. - get_member_cmt(mid, repeatable) -> str - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) + get_member_fullname(mid) -> str Get a member's fully qualified name, "struct.field". - get_member_fullname(mid) -> str - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) + get_member_id(sptr, offset) -> tid_t Get member id at given offset. - get_member_id(sptr, offset) -> tid_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) - Get name of structure member. - get_member_name(mid) -> str - @param mid (C++: tid_t) + + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - get_member_size(mptr) -> asize_t - @param mptr (C++: const member_t *) + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) + get_member_struc(fullname) -> struc_t Get containing structure of member by its full name "struct.field". - get_member_struc(fullname) -> struc_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) + get_member_tinfo(tif, mptr) -> bool Get tinfo for given member. - get_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) + get_next_member_idx(sptr, off) -> ssize_t Get the next member idx, if it does not exist, return -1. - get_next_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) + get_or_guess_member_tinfo(tif, mptr) -> bool Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - get_or_guess_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) + get_prev_member_idx(sptr, off) -> ssize_t Get the prev member idx, if it does not exist, return -1. - get_prev_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) + get_sptr(mptr) -> struc_t Get child struct if member is a struct. - get_sptr(mptr) -> struc_t - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) + get_struc(id) -> struc_t Get pointer to struct type info. - get_struc(id) -> struc_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) + get_struc_first_offset(sptr) -> ea_t Get offset of first member. - get_struc_first_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) + get_struc_last_offset(sptr) -> ea_t Get offset of last member. - get_struc_last_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) + get_struc_next_offset(sptr, offset) -> ea_t Get offset of member with smallest offset larger than 'offset'. - get_struc_next_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) + get_struc_prev_offset(sptr, offset) -> ea_t Get offset of member with largest offset less than 'offset'. - get_struc_prev_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) + is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"? - is_anonymous_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) + is_dummy_member_name(name) -> bool Is member name an auto-generated name? - is_dummy_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) + is_member_id(mid) -> bool Is a member id? - is_member_id(mid) -> bool - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) + is_special_member(id) -> bool Is a special member with the name beginning with ' '? - is_special_member(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) + is_union(id) -> bool Is a union? - is_union(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) + is_varmember(mptr) -> bool Is variable size member? - is_varmember(mptr) -> bool - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) + is_varstr(id) -> bool Is variable size structure? - is_varstr(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -75916,27 +72991,39 @@ class member_t(__builtin__.object) | __repr__ = _swig_repr(self) | | by_til(self, *args) + | by_til(self) -> bool | Was the member created due to the type system? | + | get_size(self, *args) + | get_size(self) -> asize_t + | Get member size. + | | get_soff(self, *args) + | get_soff(self) -> ea_t | Get start offset (for unions - returns 0) | | has_ti(self, *args) + | has_ti(self) -> bool | Has type information? | | has_union(self, *args) + | has_union(self) -> bool | Has members of type "union"? | | is_baseclass(self, *args) + | is_baseclass(self) -> bool | Is a base class member? | | is_destructor(self, *args) + | is_destructor(self) -> bool | Is a virtual destructor? | | is_dupname(self, *args) + | is_dupname(self) -> bool | Duplicate name was resolved during import? | | unimem(self, *args) + | unimem(self) -> bool | Is a member of a union? | | ---------------------------------------------------------------------- @@ -75949,19 +73036,19 @@ class member_t(__builtin__.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -75975,130 +73062,129 @@ class member_t(__builtin__.object) Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) + retrieve_member_info(buf, mptr) -> opinfo_t Get operand type info for member. - retrieve_member_info(buf, mptr) -> opinfo_t - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) + save_struc(sptr, may_update_ltypes=True) Update struct information in the database (internal function) - save_struc(sptr, may_update_ltypes=True) - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) + set_member_cmt(mptr, cmt, repeatable) -> bool Set member comment. - set_member_cmt(mptr, cmt, repeatable) -> bool - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) + set_member_name(sptr, offset, name) -> bool Set name of member at given offset. - set_member_name(sptr, offset, name) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t Set tinfo for given member. - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) - Set type of member at given offset (also see 'add_struc_member()' ) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) - Set structure alignment ( 'SF_ALIGN' ) - set_struc_align(sptr, shift) -> bool - @param sptr (C++: struc_t *) - @param shift (C++: int) + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) + set_struc_hidden(sptr, is_hidden) Hide/unhide a struct type. - set_struc_hidden(sptr, is_hidden) - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - set_struc_idx(sptr, idx) -> bool - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) + set_struc_listed(sptr, is_listed) Add/remove a struct type from the struct list. - set_struc_listed(sptr, is_listed) - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) + stroff_as_size(plen, sptr, value) -> bool Should display a structure offset expression as the structure size? - stroff_as_size(plen, sptr, value) -> bool - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -76115,45 +73201,75 @@ class struc_t(__builtin__.object) | __repr__ = _swig_repr(self) | | from_til(self, *args) + | from_til(self) -> bool | Does structure come from a type library? | | get_alignment(self, *args) - | See 'SF_ALIGN' . + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) + | get_last_member(self) -> member_t | | get_member(self, index) | | has_union(self, *args) + | has_union(self) -> bool | Has members of type "union"? | | is_choosable(self, *args) - | Is included in chooser list? Use 'set_struc_listed' to change the - | listed status + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) + | is_frame(self) -> bool | Is this structure a function frame? | | is_ghost(self, *args) + | is_ghost(self) -> bool | Is a ghost copy of a local type? | | is_hidden(self, *args) - | Is the structure collapsed? Use 'set_struc_hidden' to change the - | hidden status + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) + | is_union(self) -> bool | Is a union? | | is_varstr(self, *args) + | is_varstr(self) -> bool | Is variable size structure? | + | like_union(self, *args) + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | | set_alignment(self, *args) - | Do not use; use 'set_struc_align()' - | | set_alignment(self, shift) - | @param shift (C++: int) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) | set_ghost(self, _is_ghost) - | @param _is_ghost (C++: bool) + | + | @param _is_ghost: bool + | + | unsync(self, *args) + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76165,22 +73281,22 @@ class struc_t(__builtin__.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -76202,14 +73318,16 @@ class struct_field_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_field(self, *args) | visit_field(self, sptr, mptr) -> int - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76232,148 +73350,40 @@ class struct_field_visitor_t(__builtin__.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -is a union? varunions are prohibited! -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) + add_tryblk(tb) -> int Add one try block information. - add_tryblk(tb) -> int - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -76398,13 +73408,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -76422,21 +73432,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76446,31 +73458,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76480,78 +73498,85 @@ class catch_t(try_handler_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -76574,15 +73599,19 @@ class catchvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> catch_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | x: qvector< catch_t > const & + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76592,33 +73621,39 @@ class catchvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: catch_t const & + | + | @param i: size_t + | @param v: catch_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: catch_t const & + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | at(self, *args) | at(self, _idx) -> catch_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76631,78 +73666,85 @@ class catchvec_t(__builtin__.object) | | end(self, *args) | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) | erase(self, it) -> catch_t - | it: qvector< catch_t >::iterator | + | @param it: qvector< catch_t >::iterator | | erase(self, first, last) -> catch_t - | first: qvector< catch_t >::iterator - | last: qvector< catch_t >::iterator + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) | extract(self) -> catch_t | | find(self, *args) | find(self, x) -> catch_t - | x: catch_t const & | - | - | find(self, x) -> catch_t - | x: catch_t const & + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=catch_t()) - | x: catch_t const & + | + | @param x: catch_t const & | | has(self, *args) | has(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | inject(self, *args) | inject(self, s, len) - | s: catch_t * - | len: size_t + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> catch_t - | it: qvector< catch_t >::iterator - | x: catch_t const & + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: catch_t const & + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: catch_t const & | + | @param _newsize: size_t + | @param x: catch_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< catch_t > & + | + | @param r: qvector< catch_t > & | | truncate(self, *args) | truncate(self) @@ -76728,31 +73770,39 @@ class catchvec_t(__builtin__.object) Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) + del_tryblks(range) Delete try block information in the specified range. - del_tryblks(range) - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) + find_syseh(ea) -> ea_t Find the start address of the system eh region including the argument. - find_syseh(ea) -> ea_t - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - get_tryblks(tbv, range) -> size_t - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() Help on class seh_t in module ida_tryblks: @@ -76780,10 +73830,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -76798,21 +73848,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76822,31 +73874,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -76856,78 +73914,85 @@ class seh_t(try_handler_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -76966,10 +74031,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -76985,11 +74050,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76999,31 +74066,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t @@ -77033,78 +74106,85 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -77133,7 +74213,9 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | r: tryblk_t const & + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -77168,7 +74250,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -77184,11 +74266,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77198,109 +74282,122 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) | capacity(self) -> size_t | | end(self, *args) | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -77323,15 +74420,19 @@ class tryblks_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> tryblk_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | x: qvector< tryblk_t > const & + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77341,33 +74442,39 @@ class tryblks_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: tryblk_t const & + | + | @param i: size_t + | @param v: tryblk_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: tryblk_t const & + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | at(self, *args) | at(self, _idx) -> tryblk_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) | capacity(self) -> size_t @@ -77380,78 +74487,85 @@ class tryblks_t(__builtin__.object) | | end(self, *args) | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) | erase(self, it) -> tryblk_t - | it: qvector< tryblk_t >::iterator | + | @param it: qvector< tryblk_t >::iterator | | erase(self, first, last) -> tryblk_t - | first: qvector< tryblk_t >::iterator - | last: qvector< tryblk_t >::iterator + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) | extract(self) -> tryblk_t | | find(self, *args) | find(self, x) -> tryblk_t - | x: tryblk_t const & | - | - | find(self, x) -> tryblk_t - | x: tryblk_t const & + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=tryblk_t()) - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | has(self, *args) | has(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | inject(self, *args) | inject(self, s, len) - | s: tryblk_t * - | len: size_t + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> tryblk_t - | it: qvector< tryblk_t >::iterator - | x: tryblk_t const & + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: tryblk_t const & + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: tryblk_t const & | + | @param _newsize: size_t + | @param x: tryblk_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< tryblk_t > & + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) | truncate(self) @@ -77474,74 +74588,82 @@ class tryblks_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_tryblks_t> | delete_tryblks_t(self) -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +class swigvarlink(object) + | Swig var link object + | + | Methods defined here: + | + | __repr__(...) + | x.__repr__() <==> repr(x) + | + | __str__(...) + | x.__str__() <==> str(x) + +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(__builtin__.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) - Load a til file. - add_til(name, flags) -> int - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) - \call2{alloc_type_ordinals,ti,1} - alloc_type_ordinal(ti) -> uint32 - @param ti (C++: til_t *) + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) + alloc_type_ordinals(ti, qty) -> uint32 Allocate a range of ordinal numbers for new types. - alloc_type_ordinals(ti, qty) -> uint32 - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -77554,15 +74676,17 @@ class aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int - | @param v (C++: argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -77585,129 +74709,122 @@ class aloc_visitor_t(__builtin__.object) Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - append_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) - Serialize argument location Deserialize an argument location. Argument - FORBID_STKOFF check location type. It can be used, for example, to - check the return location of a function that cannot return a value in - the stack - append_argloc(out, vloc) -> bool - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) append_tinfo_covered(out, typid, offset) -> bool - out: rangeset_t * - typid: uint32 - offset: uint64 + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - apply_callee_tinfo(caller, tif) -> bool - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - apply_cdecl(til, ea, decl, flags=0) -> bool - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) + apply_named_type(ea, name) -> bool Apply the specified named type to the address. - apply_named_type(ea, name) -> bool - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - apply_once_tinfo_and_name(dea, tif, name) -> bool - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - apply_tinfo(ea, tif, flags) -> bool - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -77721,242 +74838,282 @@ class argloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | r: argloc_t const & + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -77990,34 +75147,40 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | a: argloc_t const & + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: argpart_t const & + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | | bad_offset(self, *args) + | bad_offset(self) -> bool | Does this argpart have a valid offset? | | bad_size(self, *args) + | bad_size(self) -> bool | Does this argpart have a valid size? | | swap(self, *args) + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: argpart_t &) + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -78033,226 +75196,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -78272,15 +75472,19 @@ class argpartvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | x: qvector< argpart_t > const & + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -78290,33 +75494,39 @@ class argpartvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) | capacity(self) -> size_t @@ -78329,78 +75539,85 @@ class argpartvec_t(__builtin__.object) | | end(self, *args) | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -78434,44 +75651,45 @@ class argtinfo_helper_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> argtinfo_helper_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | has_delay_slot(self, *args) + | has_delay_slot(self, arg0) -> bool | The call instruction with a delay slot?. | - | has_delay_slot(self, arg0) -> bool - | arg0: ea_t + | @param arg0: ea_t | | is_stkarg_load(self, *args) - | Is the current insn a stkarg load?. if yes:src: index of the source - | operand in \insn_t{ops}dst: index of the destination operand in - | \insn_t{ops} \insn_t{ops}[dst].addr is expected to have the stack - | offset - | | is_stkarg_load(self, insn, src, dst) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param src (C++: int *) - | @param dst (C++: int *) + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) | | set_op_tinfo(self, *args) + | set_op_tinfo(self, insn, x, tif, name) -> bool | Set the operand type as specified. | - | set_op_tinfo(self, insn, x, tif, name) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param x (C++: const op_t &) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * | | use_arg_tinfos(self, *args) + | use_arg_tinfos(self, caller, fti, rargs) | This function is to be called by the processor module in response to | ev_use_arg_types. | - | use_arg_tinfos(self, caller, fti, rargs) - | @param caller (C++: ea_t) - | @param fti (C++: func_type_data_t *) - | @param rargs (C++: funcargvec_t *) + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78483,7 +75701,7 @@ class argtinfo_helper_t(__builtin__.object) | list of weak references to the object (if defined) | | reserved - | argtinfo_helper_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -78503,16 +75721,17 @@ class array_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t - | b: size_t - | n: size_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | | swap(self, *args) + | swap(self, r) | set this = r and r = this | - | swap(self, r) - | @param r (C++: array_type_data_t &) + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78524,13 +75743,13 @@ class array_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -78544,12 +75763,11 @@ class array_type_data_t(__builtin__.object) Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - begin_type_updating(utp) - @param utp (C++: update_type_t) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -78560,43 +75778,52 @@ class bitfield_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | _nbytes: uchar - | _width: uchar - | _is_unsigned: bool + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) | __le__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) | swap(self, r) - | @param r (C++: bitfield_type_data_t &) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78608,16 +75835,16 @@ class bitfield_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -78628,45 +75855,43 @@ class bitfield_type_data_t(__builtin__.object) Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) + calc_c_cpp_name(name, type, ccn_flags) -> str Get C or C++ form of the name. - calc_c_cpp_name(name, type, ccn_flags) -> str - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - @retval: 0 - data is not expandable - @retval: -1 - error, see qerrno - @retval: else - the max number of lines + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) calc_tinfo_gaps(out, typid) -> bool - out: rangeset_t * - typid: uint32 + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) calc_type_size(ti, tp) -> PyObject * Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -78678,7 +75903,9 @@ class callregs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | cc: cm_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | @@ -78686,37 +75913,40 @@ class callregs_t(__builtin__.object) | by_slots(self) -> bool | | init_regs(self, *args) + | init_regs(self, cc) | Init policy & registers for given CC. | - | init_regs(self, cc) - | @param cc (C++: cm_t) + | @param cc: (C++: cm_t) | | reginds(self, *args) + | reginds(self, gp_ind, fp_ind, r) -> bool | Get register indexes within GP/FP arrays. (-1 -> is not present in the | corresponding array) | - | reginds(self, gp_ind, fp_ind, r) -> bool - | @param gp_ind (C++: int *) - | @param fp_ind (C++: int *) - | @param r (C++: int) + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) + | reset(self) | Set policy and registers to invalid values. | | set(self, *args) + | set(self, _policy, gprs, fprs) | Init policy & registers (arrays are -1-terminated) | - | set(self, _policy, gprs, fprs) - | @param _policy (C++: argreg_policy_t) - | @param gprs (C++: const int *) - | @param fprs (C++: const int *) + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) | regcount(cc) -> int - | cc: cm_t + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78728,16 +75958,16 @@ class callregs_t(__builtin__.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -78752,77 +75982,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) callregs_t_regcount(cc) -> int - cc: cm_t + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 Choose a type from the local type library. - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) - Choose a type from the local type library and specify the pointer - shift value. - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool Choose a type from a type library. - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) clear_tinfo_t(_this) - _this: tinfo_t * + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) + compact_til(ti) -> bool Collect garbage in til. Must be called before storing the til. - compact_til(ti) -> bool - @param ti (C++: til_t *) - @return: true if any memory was freed + @param ti: (C++: til_t *) + @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) compare_tinfo(t1, t2, tcflags) -> bool - t1: uint32 - t2: uint32 - tcflags: int + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -78835,15 +76062,17 @@ class const_aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int - | @param v (C++: const argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78866,149 +76095,154 @@ class const_aloc_visitor_t(__builtin__.object) Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - convert_pt_flags_to_hti(pt_flags) -> int - @param pt_flags (C++: int) + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - copy_named_type(dsttil, srctil, name) -> uint32 - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) copy_tinfo_t(_this, r) - _this: tinfo_t * - r: tinfo_t const & + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - create_numbered_type_name(ord) -> str - @param ord (C++: int32) + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) create_tinfo(_this, bt, bt2, ptr) -> bool - _this: tinfo_t * - bt: type_t - bt2: type_t - ptr: void * + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) - Get compiler specified by \varmem{inf,idainfo,cc}. + default_compiler() -> comp_t + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) + del_named_type(ti, name, ntf_flags) -> bool Delete information about a symbol. - del_named_type(ti, name, ntf_flags) -> bool - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) + del_numbered_type(ti, ordinal) -> bool Delete a numbered type. - del_numbered_type(ti, ordinal) -> bool - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) + del_til(name) -> bool Unload a til file. - del_til(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) del_tinfo_attr(tif, key, make_copy) -> bool - tif: tinfo_t * - key: qstring const & - make_copy: bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool Help on function del_vftable_ea in module ida_typeinf: del_vftable_ea(*args) + del_vftable_ea(ordinal) -> bool Delete the address of a vftable instance for a vftable type. - del_vftable_ea(ordinal) -> bool - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: success + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool Dereference a pointer. - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - tif: tinfo_t * - til: til_t const * - ptype: type_t const ** - pfields: p_list const ** - pfldcmts: p_list const ** + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) dstr_tinfo(tif) -> char const * - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) - Use 'func_type_data_t::dump()' - dump_func_type_data(fti, praloc_bits) -> str - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - end_type_updating(utp) - @param utp (C++: update_type_t) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -79019,20 +76253,23 @@ class enum_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: enum_member_t &) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79044,16 +76281,16 @@ class enum_member_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -79070,15 +76307,19 @@ class enum_member_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | x: qvector< enum_member_t > const & + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79088,33 +76329,39 @@ class enum_member_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -79127,78 +76374,85 @@ class enum_member_vec_t(__builtin__.object) | | end(self, *args) | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< enum_member_t > & + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) | truncate(self) @@ -79235,7 +76489,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | _bte: bte_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -79261,22 +76516,22 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) + | swap(self, r) | swap two instances | - | swap(self, r) - | @param r (C++: enum_type_data_t &) + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -79292,11 +76547,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79306,31 +76563,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -79343,71 +76606,77 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -79428,68 +76697,73 @@ Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) extract_argloc(vloc, ptype, forbid_stkoff) -> bool - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param forbid_stkoff (C++: bool) + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) find_tinfo_udt_member(udm, typid, strmem_flags) -> int - udm: udt_member_t * - typid: uint32 - strmem_flags: int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - first_named_type(ti, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param ntf_flags: (C++: int) Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) + for_all_arglocs(vv, vloc, size, off=0) -> int Compress larger argloc types and initiate the aloc visitor. - for_all_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) - See 'for_all_arglocs()' - for_all_const_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) + free_til(ti) Free memory allocated by til. - free_til(ti) - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - func_has_stkframe_hole(ea, fti) -> bool - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -79509,22 +76783,31 @@ class func_type_data_t(funcargvec_t) | __repr__ = _swig_repr(self) | | dump(self, *args) - | Dump information that is not always visible in the function prototype. - | (argument locations, return location, total stkarg size) - | | dump(self, praloc_bits=0x02) -> bool - | @param praloc_bits (C++: int) + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) | get_call_method(self) -> int | | guess_cc(self, *args) - | Guess function calling convention use the following info: argument - | locations and 'stkargs' - | | guess_cc(self, purged, cc_flags) -> cm_t - | @param purged (C++: int) - | @param cc_flags (C++: int) + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) + | is_const(self) -> bool + | + | is_ctor(self, *args) + | is_ctor(self) -> bool + | + | is_dtor(self, *args) + | is_dtor(self) -> bool | | is_golang_cc(self, *args) | is_golang_cc(self) -> bool @@ -79538,33 +76821,40 @@ class func_type_data_t(funcargvec_t) | is_pure(self, *args) | is_pure(self) -> bool | + | is_static(self, *args) + | is_static(self) -> bool + | | is_vararg_cc(self, *args) | is_vararg_cc(self) -> bool | + | is_virtual(self, *args) + | is_virtual(self) -> bool + | | swap(self, *args) | swap(self, r) - | @param r (C++: func_type_data_t &) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -79580,11 +76870,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79594,31 +76886,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -79631,71 +76929,77 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -79721,14 +77025,16 @@ class funcarg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -79742,22 +77048,22 @@ class funcarg_t(__builtin__.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -79774,15 +77080,19 @@ class funcargvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | x: qvector< funcarg_t > const & + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79792,33 +77102,39 @@ class funcargvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) | capacity(self) -> size_t @@ -79831,78 +77147,85 @@ class funcargvec_t(__builtin__.object) | | end(self, *args) | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< funcarg_t > & + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) | truncate(self) @@ -79928,55 +77251,60 @@ class funcargvec_t(__builtin__.object) Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) + gcc_layout() -> bool Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) - Generic function for 'decorate_name()' (may be used in IDP modules) - gen_decorate_name(name, mangle, cc, type) -> str - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * Help on function gen_use_arg_tinfos2 in module ida_typeinf: gen_use_arg_tinfos2(*args) - Do not call this function directly, use 'argtinfo_helper_t' . - gen_use_arg_tinfos2(_this, caller, fti, rargs) - @param _this (C++: struct argtinfo_helper_t *) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) + get_abi_name() -> str Get ABI name. + + @return: length of the name (>=0) Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - get_alias_target(ti, ordinal) -> uint32 - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: @@ -79990,277 +77318,284 @@ get_arg_addrs(*args) Help on function get_base_type in module ida_typeinf: get_base_type(*args) - Get get basic type bits ( 'TYPE_BASE_MASK' ) - get_base_type(t) -> type_t - @param t (C++: type_t) + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) + get_c_header_path() -> str Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) + get_c_macros() -> str Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) + get_comp(comp) -> comp_t Get compiler bits. - get_comp(comp) -> comp_t - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) + get_compiler_abbr(id) -> char const * Get abbreviated compiler name. - get_compiler_abbr(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) + get_compiler_name(id) -> char const * Get full compiler name. - get_compiler_name(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) + get_compilers(ids, names, abbrs) Get names of all built-in compilers. - get_compilers(ids, names, abbrs) - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - get_enum_member_expr(tif, serial, value) -> str - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - get_full_type(t) -> type_t - @param t (C++: type_t) + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) - Extract information from a 'tinfo_t' . - get_idainfo_by_type(tif) -> bool - @param tif: the type to inspect (C++: const tinfo_t &) + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) - get_named_type(til, name, ntf_flags) -> PyObject * + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - get_named_type64(til, name, ntf_flags) -> PyObject * - til: til_t const * - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - get_numbered_type(til, ordinal) -> PyObject * - til: til_t const * - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - get_numbered_type_name(ti, ordinal) -> char const * - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - get_ordinal_from_idb_type(name, type) -> int - @param name (C++: const char *) - @param type (C++: const type_t *) + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) + get_ordinal_qty(ti) -> uint32 Get number of allocated ordinals. - get_ordinal_qty(ti) -> uint32 - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) get_scalar_bt(size) -> type_t - @param size (C++: int) + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) get_stock_tinfo(tif, id) -> bool - tif: tinfo_t * - id: enum stock_type_id_t + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) get_tinfo_attr(typid, key, bv, all_attrs) -> bool - typid: uint32 - key: qstring const & - bv: bytevec_t * - all_attrs: bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - typid: uint32 - tav: type_attrs_t * - include_ref_attrs: bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) get_tinfo_details(typid, bt2, buf) -> bool - typid: uint32 - bt2: type_t - buf: void * + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) get_tinfo_pdata(outptr, typid, what) -> size_t - outptr: void * - typid: uint32 - what: int + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) get_tinfo_property(typid, gta_prop) -> size_t - typid: uint32 - gta_prop: int + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) get_tinfo_size(p_effalign, typid, gts_code) -> size_t - p_effalign: uint32 * - typid: uint32 - gts_code: int + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) - Get type flags ( 'TYPE_FLAGS_MASK' ) - get_type_flags(t) -> type_t - @param t (C++: type_t) + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) + get_type_ordinal(ti, name) -> int32 Get type ordinal by its name. - get_type_ordinal(ti, name) -> int32 - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * Help on function get_vftable_ea in module ida_typeinf: get_vftable_ea(*args) + get_vftable_ea(ordinal) -> ea_t Get address of a virtual function table. - get_vftable_ea(ordinal) -> ea_t - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: address of the corresponding virtual function table in the - current database. + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. Help on function get_vftable_ordinal in module ida_typeinf: get_vftable_ordinal(*args) + get_vftable_ordinal(vftable_ea) -> uint32 Get ordinal number of the virtual function table. - get_vftable_ordinal(vftable_ea) -> uint32 - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: ordinal number of the corresponding vftable type. 0 - - failure. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) - Use 'func_type_data_t::guess_cc()' - guess_func_cc(fti, npurged, cc_flags) -> cm_t - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - guess_tinfo(tif, id) -> int - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -80276,21 +77611,24 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | _tif: tinfo_t const & - | _ea: ea_t - | _pb: int + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, arg3) -> int - | @param candidate (C++: const tinfo_t &) - | arg3: func_type_data_t const & + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -80317,623 +77655,656 @@ Help on function idc_get_local_type in module ida_typeinf: idc_get_local_type(*args) idc_get_local_type(ordinal, flags, buf, maxsize) -> int - ordinal: int - flags: int - buf: char * - maxsize: size_t + + @param ordinal: int + @param flags: int + @param buf: char * + @param maxsize: size_t Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) idc_get_local_type_name(ordinal) -> str - ordinal: int + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) - idc_get_local_type_raw(ordinal) -> PyObject * - ordinal: int + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) idc_get_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) idc_get_type_raw(ea) -> PyObject * - ea: ea_t + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) idc_guess_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) - idc_parse_decl(ti, decl, flags) -> PyObject * - ti: til_t * - decl: char const * - flags: int + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) idc_parse_types(input, flags) -> int - input: char const * - flags: int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) - idc_print_type(type, fields, name, flags) -> PyObject * - type: type_t const * - fields: p_list const * - name: char const * - flags: int + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) idc_set_local_type(ordinal, dcl, flags) -> int - ordinal: int - dcl: char const * - flags: int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) + import_type(til, idx, name, flags=0) -> tid_t Copy a named type from til to idb. - import_type(til, idx, name, flags=0) -> tid_t - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) + is_autosync(name, type) -> bool Is the specified idb type automatically synchronized? - is_autosync(name, type) -> bool - @param name (C++: const char *) - @param type (C++: const type_t *) - + @param name: (C++: const char *) char const * + @param type: type_t const * is_autosync(name, tif) -> bool - @param name (C++: const char *) - tif: tinfo_t const & + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) + is_code_far(cm) -> bool Does the given model specify far code?. - is_code_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) - See 'COMP_UNSURE' . - is_comp_unsure(comp) -> comp_t - @param comp (C++: comp_t) + See COMP_UNSURE. + + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) + is_data_far(cm) -> bool Does the given model specify far data?. - is_data_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) - Is the target compiler 'COMP_GNU' ? + is_gcc() -> bool + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) + is_gcc32() -> bool Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) + is_gcc64() -> bool Is the target compiler 64 bit gcc? Help on function is_golang_cc in module ida_typeinf: is_golang_cc(*args) + is_golang_cc(cc) -> bool GO language calling convention (return value in stack)? - is_golang_cc(cc) -> bool - @param cc (C++: cm_t) + @param cc: (C++: cm_t) Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - is_ordinal_name(name, ord=None) -> bool - @param name (C++: const char *) - @param ord (C++: uint32 *) + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - is_purging_cc(cm) -> bool - @param cm (C++: cm_t) + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) is_restype_enum(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) is_restype_struct(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) is_restype_struni(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) is_restype_void(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - is_sdacl_byte(t) -> bool - @param t (C++: type_t) + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - is_tah_byte(t) -> bool - @param t (C++: type_t) + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) + is_type_arithmetic(t) -> bool Is the type an arithmetic type? (floating or integral) - is_type_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) - See 'BT_ARRAY' . - is_type_array(t) -> bool - @param t (C++: type_t) + See BT_ARRAY. + + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) - See 'BT_BITFIELD' . - is_type_bitfld(t) -> bool - @param t (C++: type_t) + See BT_BITFIELD. + + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) - See 'BTF_BOOL' . - is_type_bool(t) -> bool - @param t (C++: type_t) + See BTF_BOOL. + + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_char(t) -> bool - @param t (C++: type_t) + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) - See 'BT_COMPLEX' . - is_type_complex(t) -> bool - @param t (C++: type_t) + See BT_COMPLEX. + + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) - See 'BTM_CONST' . - is_type_const(t) -> bool - @param t (C++: type_t) + See BTM_CONST. + + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) - See 'BTF_DOUBLE' . - is_type_double(t) -> bool - @param t (C++: type_t) + See BTF_DOUBLE. + + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) - See 'BTF_ENUM' . - is_type_enum(t) -> bool - @param t (C++: type_t) + See BTF_ENUM. + + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) + is_type_ext_arithmetic(t) -> bool Is the type an extended arithmetic type? (arithmetic or enum) - is_type_ext_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) + is_type_ext_integral(t) -> bool Is the type an extended integral type? (integral or enum) - is_type_ext_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) - See 'BTF_FLOAT' . - is_type_float(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) + is_type_floating(t) -> bool Is the type a floating point type? - is_type_floating(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) - See 'BT_FUNC' . - is_type_func(t) -> bool - @param t (C++: type_t) + See BT_FUNC. + + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - is_type_int(bt) -> bool - @param bt (C++: type_t) + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int128(t) -> bool - @param t (C++: type_t) + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int16(t) -> bool - @param t (C++: type_t) + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int32(t) -> bool - @param t (C++: type_t) + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int64(t) -> bool - @param t (C++: type_t) + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) + is_type_integral(t) -> bool Is the type an integral type (char/short/int/long/bool)? - is_type_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) - See 'BTF_LDOUBLE' . - is_type_ldouble(t) -> bool - @param t (C++: type_t) + See BTF_LDOUBLE. + + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) + is_type_paf(t) -> bool Is the type a pointer, array, or function type? - is_type_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - is_type_partial(t) -> bool - @param t (C++: type_t) + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) - See 'BT_PTR' . - is_type_ptr(t) -> bool - @param t (C++: type_t) + See BT_PTR. + + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) + is_type_ptr_or_array(t) -> bool Is the type a pointer or array type? - is_type_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) - See 'BTF_STRUCT' . - is_type_struct(t) -> bool - @param t (C++: type_t) + See BTF_STRUCT. + + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) + is_type_struni(t) -> bool Is the type a struct or union? - is_type_struni(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) + is_type_sue(t) -> bool Is the type a struct/union/enum? - is_type_sue(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) - See 'BTF_FLOAT' . - is_type_tbyte(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) - See 'BTF_TYPEDEF' . - is_type_typedef(t) -> bool - @param t (C++: type_t) + See BTF_TYPEDEF. + + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) - See 'BTF_UCHAR' . - is_type_uchar(t) -> bool - @param t (C++: type_t) + See BTF_UCHAR. + + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) - See 'BTF_UINT' . - is_type_uint(t) -> bool - @param t (C++: type_t) + See BTF_UINT. + + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) - See 'BTF_UINT128' . - is_type_uint128(t) -> bool - @param t (C++: type_t) + See BTF_UINT128. + + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) - See 'BTF_UINT16' . - is_type_uint16(t) -> bool - @param t (C++: type_t) + See BTF_UINT16. + + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) - See 'BTF_UINT32' . - is_type_uint32(t) -> bool - @param t (C++: type_t) + See BTF_UINT32. + + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) - See 'BTF_UINT64' . - is_type_uint64(t) -> bool - @param t (C++: type_t) + See BTF_UINT64. + + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) - See 'BTF_UNION' . - is_type_union(t) -> bool - @param t (C++: type_t) + See BTF_UNION. + + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) - See 'BT_UNKNOWN' . - is_type_unknown(t) -> bool - @param t (C++: type_t) + See BT_UNKNOWN. + + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) - See 'BTF_VOID' . - is_type_void(t) -> bool - @param t (C++: type_t) + See BTF_VOID. + + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) - See 'BTM_VOLATILE' . - is_type_volatile(t) -> bool - @param t (C++: type_t) + See BTM_VOLATILE. + + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - is_typeid_last(t) -> bool - @param t (C++: type_t) + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) + is_user_cc(cm) -> bool Does the calling convention specify argument locations explicitly? - is_user_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) + is_vararg_cc(cm) -> bool Does the calling convention use ellipsis? - is_vararg_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) lexcompare_tinfo(t1, t2, arg3) -> int - t1: uint32 - t2: uint32 - arg3: int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - load_til(name, tildir=None) -> til_t - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) + load_til_header(tildir, name) -> til_t Get human-readable til description. - load_til_header(tildir, name) -> til_t - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - lower_type(til, tif, name=None, _helper=None) -> int - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - @retval: 1 - removed FTI_HIGH , - @retval: 2 - made substantial changes - @retval: -1 - failure + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -80948,13 +78319,15 @@ class lowertype_helper_t(__builtin__.object) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, candidate_data) -> int - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -80977,72 +78350,73 @@ class lowertype_helper_t(__builtin__.object) Help on function new_til in module ida_typeinf: new_til(*args) + new_til(name, desc) -> til_t Initialize a til. - new_til(name, desc) -> til_t - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - next_named_type(ti, name, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - optimize_argloc(vloc, size, gaps) -> bool - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - @retval: true - success - @retval: false - the input argloc was illegal + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t Write a typed idc object to the database. - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: @@ -81052,8 +78426,10 @@ pack_object_to_idb(*args) Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -81061,36 +78437,33 @@ pack_object_to_idb(*args) Help on function parse_decl in module ida_typeinf: parse_decl(*args) - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - parse_decl(tif, til, decl, flags) -> str - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - @retval: true - ok - @retval: false - declaration is bad, the error message is displayed if - !PT_SIL + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - parse_decls(til, input, printer, hti_flags) -> int - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -81103,16 +78476,18 @@ class predicate_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> predicate_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | should_display(self, *args) | should_display(self, til, name, type, fields) -> bool - | @param til (C++: const til_t *) - | @param name (C++: const char *) - | @param type (C++: const type_t *) - | @param fields (C++: const p_list *) + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81135,51 +78510,51 @@ class predicate_t(__builtin__.object) Help on function print_argloc in module ida_typeinf: print_argloc(*args) + print_argloc(vloc, size=0, vflags=0) -> str Convert an argloc to human readable form. - print_argloc(vloc, size=0, vflags=0) -> str - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for use in a + header file. This is the reverse parse_decls(). - print_decls(printer, til, py_ordinals, flags) -> PyObject * - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - py_ordinals: PyObject * - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - @retval: >0 - the number of types exported - @retval: 0 - an error occurred - @retval: <0 - the negated number of types exported. There were minor - errors and the resulting output might not be compilable. + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param flags: (C++: uint32) flags for the algorithm. A combination of PDF_* constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - prefix: char const * - indent: int - cmtindent: int - flags: int - tif: tinfo_t const * - name: char const * - cmt: char const * + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) + print_type(ea, prtype_flags) -> str Get type declaration for the specified address. - print_type(ea, prtype_flags) -> str - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -81190,32 +78565,36 @@ class ptr_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | c: tinfo_t - | bps: uchar - | p: tinfo_t - | d: int32 + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | | is_code_ptr(self, *args) + | is_code_ptr(self) -> bool | Are we pointing to code? | | is_shifted(self, *args) | is_shifted(self) -> bool | | swap(self, *args) + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: ptr_type_data_t &) + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81227,22 +78606,22 @@ class ptr_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -81257,9 +78636,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - typid: uint32 - v: uint64 - bitoff: int + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -81270,15 +78650,19 @@ class reginfovec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | x: qvector< reg_info_t > const & + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81287,22 +78671,28 @@ class reginfovec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: reg_info_t const & + | + | @param i: size_t + | @param v: reg_info_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: reg_info_t const & + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | append = push_back(self, *args) | @@ -81313,7 +78703,6 @@ class reginfovec_t(__builtin__.object) | | begin(self, *args) | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) | capacity(self) -> size_t @@ -81326,78 +78715,85 @@ class reginfovec_t(__builtin__.object) | | end(self, *args) | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) | erase(self, it) -> reg_info_t - | it: qvector< reg_info_t >::iterator | + | @param it: qvector< reg_info_t >::iterator | | erase(self, first, last) -> reg_info_t - | first: qvector< reg_info_t >::iterator - | last: qvector< reg_info_t >::iterator + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) | extract(self) -> reg_info_t | | find(self, *args) | find(self, x) -> reg_info_t - | x: reg_info_t const & | - | - | find(self, x) -> reg_info_t - | x: reg_info_t const & + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_info_t()) - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | has(self, *args) | has(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | inject(self, *args) | inject(self, s, len) - | s: reg_info_t * - | len: size_t + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_info_t - | it: qvector< reg_info_t >::iterator - | x: reg_info_t const & + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: reg_info_t const & + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_info_t const & | + | @param _newsize: size_t + | @param x: reg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< reg_info_t > & + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) | truncate(self) @@ -81445,16 +78841,16 @@ class regobj_t(__builtin__.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -81496,7 +78892,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81506,19 +78903,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) | capacity(self) -> size_t @@ -81531,16 +78929,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -81550,47 +78948,56 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -81613,11 +79020,14 @@ class regobjvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | x: qvector< regobj_t > const & + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81629,19 +79039,20 @@ class regobjvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) | capacity(self) -> size_t @@ -81654,16 +79065,16 @@ class regobjvec_t(__builtin__.object) | | end(self, *args) | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -81673,47 +79084,56 @@ class regobjvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -81740,49 +79160,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) remove_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts (C++: const char *) - @param user_level (C++: bool) + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - remove_pointer(tif) -> tinfo_t - @param tif (C++: const tinfo_t &) + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - remove_tinfo_pointer(tif, name, til) -> PyObject * - @param tif (C++: tinfo_t *) - name: char const * - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - replace_ordinal_typerefs(til, tif) -> int - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - @retval: number - of replaced subtypes, -1 on failure + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) resolve_typedef(til, type) -> type_t const * - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -81806,10 +79226,10 @@ class rrel_t(__builtin__.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -81824,11 +79244,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - tif: tinfo_t * - til: til_t * - ord: size_t - name: char const * - ntf_flags: int + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -81864,11 +79285,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81878,31 +79301,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) | capacity(self) -> size_t @@ -81915,78 +79344,85 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -82004,135 +79440,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) score_tinfo(tif) -> uint32 - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - type: qtype * - fields: qtype * - fldcmts: qtype * - tif: tinfo_t const * - sudt_flags: int + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) - Set abi name (see 'Compiler IDs' ) - set_abi_name(abiname, user_level=False) -> bool - @param abiname (C++: const char *) - @param user_level (C++: bool) + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) + set_c_header_path(incdir) Set include directory path the target compiler. - set_c_header_path(incdir) - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) + set_c_macros(macros) Set predefined macros for the target compiler. - set_c_macros(macros) - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) + set_compiler(cc, flags, abiname=None) -> bool Change current compiler. - set_compiler(cc, flags, abiname=None) -> bool - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) - Set the compiler id (see 'Compiler IDs' ) - set_compiler_id(id, abiname=None) -> bool - @param id (C++: comp_t) - @param abiname (C++: const char *) + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) set_compiler_string(compstr, user_level) -> bool - @param compstr: - compiler description in form <abbr>:<abiname> (C++: - const char *) - @param user_level: - initiated by user if TRUE (C++: bool) - @return: success + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) set_tinfo_attr(tif, ta, may_overwrite) -> bool - tif: tinfo_t * - ta: type_attr_t const & - may_overwrite: bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) set_tinfo_attrs(tif, ta) -> bool - tif: tinfo_t * - ta: type_attrs_t * + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) set_tinfo_property(tif, sta_prop, x) -> size_t - tif: tinfo_t * - sta_prop: int - x: size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) Help on function set_vftable_ea in module ida_typeinf: set_vftable_ea(*args) + set_vftable_ea(ordinal, vftable_ea) -> bool Set the address of a vftable instance for a vftable type. - set_vftable_ea(ordinal, vftable_ea) -> bool - @param ordinal: ordinal number of the corresponding vftable type. - (C++: uint32) - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: success + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -82143,15 +79583,17 @@ class simd_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | nm: char const * - | sz: uint16 - | memt: type_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | | match_pattern(self, *args) | match_pattern(self, pattern) -> bool - | @param pattern (C++: const simd_info_t *) + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82163,19 +79605,19 @@ class simd_info_t(__builtin__.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -82183,25 +79625,67 @@ class simd_info_t(__builtin__.object) | __swig_destroy__ = <built-in function delete_simd_info_t> | delete_simd_info_t(self) +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(__builtin__.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_stkarg_area_info_t> + | delete_stkarg_area_info_t(self) + Help on function store_til in module ida_typeinf: store_til(*args) - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - store_til(ti, tildir, name) -> bool - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success Help on function switch_to_golang in module ida_typeinf: switch_to_golang(*args) + switch_to_golang() switch to GOLANG calling convention (to be used as default CC) Help on class text_sink_t in module ida_typeinf: @@ -82215,13 +79699,17 @@ class text_sink_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> text_sink_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, str) -> int - | str: char const * + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82250,8 +79738,9 @@ class til_symbol_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t - | n: char const * - | t: til_t const * + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -82265,13 +79754,13 @@ class til_symbol_t(__builtin__.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -82293,13 +79782,17 @@ class til_t(__builtin__.object) | | base(self, *args) | base(self, n) -> til_t - | n: int + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) - | Has the til been modified? ( 'TIL_MOD' ) + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) - | Mark the til as modified ( 'TIL_MOD' ) + | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82311,28 +79804,28 @@ class til_t(__builtin__.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -82352,35 +79845,43 @@ class tinfo_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | decl_type: type_t + | __init__(self, decl_type) -> tinfo_t | + | @param decl_type: type_t | | __init__(self, r) -> tinfo_t - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __le__(self, *args) | __le__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -82389,48 +79890,51 @@ class tinfo_t(__builtin__.object) | | _print(self, *args) | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | name: char const * - | prtype_flags: int - | indent: int - | cmtindent: int - | prefix: char const * - | cmt: char const * + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) + | append_covered(self, out, offset=0) -> bool | Calculate set of covered bytes for the type | - | append_covered(self, out, offset=0) -> bool - | @param out: pointer to the output buffer. covered bytes will be - | appended to it. (C++: rangeset_t *) - | @param offset (C++: uint64) + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) | | calc_gaps(self, *args) + | calc_gaps(self, out) -> bool | Calculate set of padding bytes for the type | - | calc_gaps(self, out) -> bool - | @param out: pointer to the output buffer; old buffer contents will be - | lost. (C++: rangeset_t *) + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) - | 'BT_FUNC' : Calculate number of purged bytes + | calc_purged_bytes(self) -> int | | calc_score(self, *args) + | calc_score(self) -> uint32 | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) - | Calculate the udt alignments using the field offsets/sizes and the - | total udt size This function does not work on typerefs - | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | @param sudt_flags (C++: int) + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) + | change_sign(self, sign) -> bool | Change the type sign. Works only for the types that may have sign. | - | change_sign(self, sign) -> bool - | @param sign (C++: type_sign_t) + | @param sign: (C++: type_sign_t) | | clear(self, *args) + | clear(self) | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) @@ -82444,17 +79948,18 @@ class tinfo_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | compare_with(self, *args) - | Compare two types, based on given flags (see 'tinfo_t comparison - | flags' ) - | | compare_with(self, r, tcflags=0) -> bool - | @param r (C++: const tinfo_t &) - | @param tcflags (C++: int) + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) + | convert_array_to_ptr(self) -> bool | Convert an array into a pointer. type[] => type * | | copy(self, *args) @@ -82462,746 +79967,890 @@ class tinfo_t(__builtin__.object) | | create_array(self, *args) | create_array(self, p, decl_type=BT_ARRAY) -> bool - | @param p (C++: const array_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: array_type_data_t const & + | @param decl_type: type_t | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | tif: tinfo_t const & - | nelems: uint32 - | base: uint32 - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | @param p (C++: const bitfield_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | nbytes: uchar - | width: uchar - | is_unsigned: bool - | @param decl_type (C++: type_t) + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | p: enum_type_data_t & - | decl_type: type_t + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) - | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , - | or 'BTF_ENUM' - | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | @param til (C++: til_t *) - | @param decl_type (C++: type_t) - | @param name (C++: const char *) - | @param ntf_flags (C++: int) + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) | create_func(self, p, decl_type=BT_FUNC) -> bool - | p: func_type_data_t & - | decl_type: type_t + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) | create_ptr(self, p, decl_type=BT_PTR) -> bool - | @param p (C++: const ptr_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | tif: tinfo_t const & - | bps: uchar - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) | create_simple_type(self, decl_type) -> bool - | @param decl_type (C++: type_t) + | + | @param decl_type: type_t | | create_typedef(self, *args) | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | @param p (C++: const typedef_type_data_t &) - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | til: til_t const * - | name: char const * - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | til: til_t const * - | ord: uint - | @param decl_type (C++: type_t) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) | create_udt(self, p, decl_type) -> bool - | p: udt_type_data_t & - | decl_type: type_t + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) + | del_attr(self, key, make_copy=True) -> bool | Del a type attribute. typerefs cannot be modified by this function. | - | del_attr(self, key, make_copy=True) -> bool - | @param key (C++: const qstring &) - | @param make_copy (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) + | del_attrs(self) | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) - | Deserialize a type string into a 'tinfo_t' object. - | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | @param til (C++: const til_t *) - | @param ptype (C++: const type_t **) - | @param pfields (C++: const p_list **) - | @param pfldcmts (C++: const p_list **) + | Deserialize a type string into a tinfo_t object. | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** | | deserialize(self, til, type, fields, cmts=None) -> bool - | @param til (C++: const til_t *) - | type: type_t const * - | fields: p_list const * - | cmts: p_list const * + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) + | dstr(self) -> char const * | Function to facilitate debugging. | | empty(self, *args) - | Was 'tinfo_t' initialized with some type info or not? + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) | equals_to(self, r) -> bool - | @param r (C++: const tinfo_t &) + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) - | 'BTF_STRUCT' , 'BTF_UNION' : Find a udt member.at the specified - | offset ( 'STRMEM_OFFSET' )with the specified index ( 'STRMEM_INDEX' - | )with the specified type ( 'STRMEM_TYPE' )with the specified name ( - | 'STRMEM_NAME' ) - | | find_udt_member(self, udm, strmem_flags) -> int - | @param udm (C++: struct udt_member_t *) - | @param strmem_flags (C++: int) - | @return: the index of the found member or -1 + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) + | get_array_details(self, ai) -> bool | Get the array specific info. | - | get_array_details(self, ai) -> bool - | @param ai (C++: array_type_data_t *) + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) - | 'BT_ARRAY' : get type of array element. See also - | 'get_ptrarr_object()' + | get_array_element(self) -> tinfo_t | | get_array_nelems(self, *args) - | 'BT_ARRAY' : get number of elements (-1 means error) + | get_array_nelems(self) -> int | | get_attr(self, *args) + | get_attr(self, key, all_attrs=True) -> str or None | Get a type attribute. | - | get_attr(self, key, all_attrs=True) -> PyObject * - | @param key (C++: const qstring &) - | @param all_attrs (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) - | Get type attributes (all_attrs: include attributes of referenced - | types, if any) - | | get_attrs(self, tav, all_attrs=False) -> bool - | @param tav (C++: type_attrs_t *) - | @param all_attrs (C++: bool) + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) + | get_bitfield_details(self, bi) -> bool | Get the bitfield specific info. | - | get_bitfield_details(self, bi) -> bool - | @param bi (C++: bitfield_type_data_t *) + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) + | get_declalign(self) -> uchar | Get declared alignment of the type. | | get_decltype(self, *args) - | Get declared type (without resolving type references; they are - | returned as is). Obviously this is a very fast function and should be - | used instead of 'get_realtype()' if possible. + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) - | Get enum base type (convert enum to integer type) Returns 'BT_UNK' if - | failed to convert + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) + | get_enum_details(self, ei) -> bool | Get the enum specific info. | - | get_enum_details(self, ei) -> bool - | @param ei (C++: enum_type_data_t *) + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) + | get_final_ordinal(self) -> uint32 | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) + | get_final_type_name(self) -> bool | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) - | Get only the function specific info for this 'tinfo_t' . - | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | @param fi (C++: func_type_data_t *) - | @param gtd (C++: gtd_func_t) + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) | get_modifiers(self) -> type_t | | get_named_type(self, *args) - | Create a 'tinfo_t' object for an existing named type. - | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param name: name of the type to link to (C++: const char *) - | @param decl_type: if the reference was explicitly specified with the - | type tag ( BTF_STRUCT / BTF_UNION / BTF_ENUM ) - | you may specify it. the kernel will accept only - | the specified tag after resolving the type. If - | the resolved type does not correspond to the - | explicitly specified tag, the type will be - | considered as undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code. false: return true but do not immediately - | resolve the type (C++: bool) - | @param try_ordinal: true: try to replace name reference by an ordinal - | reference (C++: bool) + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 - | - error) + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) + | get_next_type_name(self) -> bool | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means - | return type, see 'get_rettype()' ) - | | get_nth_arg(self, n) -> tinfo_t - | @param n (C++: int) + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) - | Create a 'tinfo_t' object for an existing ordinal type. - | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param ordinal: number of the type to link to (C++: uint32) - | @param decl_type: if the reference was explicitly specified with the - | type tag (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may - | specify it. the kernel will accept only the - | specified tag after resolving the type. If the - | resolved type does not correspond to the explicitly - | specified tag, the type will be considered as - | undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code false: return true but do not immediately resolve - | the type (C++: bool) + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) - | For objects consisting of one member entirely: return type of the - | member. + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) - | Get type ordinal (only if the type was created as a numbered type, 0 - | if none) + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) - | 'BT_PTR' : get type of pointed object. If the current type is not a - | pointer, return empty type info. See also 'get_ptrarr_object()' and - | 'remove_pointer()' + | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) + | get_ptr_details(self, pi) -> bool | Get the pointer info. | - | get_ptr_details(self, pi) -> bool - | @param pi (C++: ptr_type_data_t *) + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) - | 'BT_PTR' & 'BT_ARRAY' : get the pointed object or array element. If - | the current type is not a pointer or array, return empty type info. + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) - | 'BT_PTR' & 'BT_ARRAY' : get size of pointed object or array element. - | On error returns -1 + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) - | Get the resolved base type. Deserialization options:if full=true, the - | referenced type will be deserialized fully, this may not always be - | desirable (slows down things)if full=false, we just return the base - | type, the referenced type will be resolved again later if necessary - | (this may lead to multiple resolvings of the same type) imho - | full=false is a better approach because it does not perform - | unnecessary actions just in case. however, in some cases the caller - | knows that it is very likely that full type info will be required. in - | those cases full=true makes sense - | | get_realtype(self, full=False) -> type_t - | @param full (C++: bool) + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) + | get_sign(self) -> type_sign_t | Get type sign. | | get_size(self, *args) + | get_size(self, p_effalign=None, gts_code=0) -> size_t | Get the type size in bytes. | - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | @param p_effalign: buffer for the alignment value (C++: uint32 *) - | @param gts_code: combination of GTS_... constants (C++: int) - | @return: BADSIZE in case of problems + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) - | Get the type library for 'tinfo_t' . + | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) - | Does a type refer to a name?. If yes, fill the provided buffer with - | the type name and return true. Names are returned for numbered types - | too: either a user-defined nice name or, if a user-provided name does - | not exist, an ordinal name (like #xx, see - | 'create_numbered_type_name()' ). + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool | Get the udt specific info. | - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | @param udt (C++: udt_type_data_t *) - | @param gtd (C++: gtd_udt_t) + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) + | get_udt_nmembers(self) -> int | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) - | Get the type size in bytes without the final padding, in bytes. For - | some UDTs 'get_unpadded_size()' != 'get_size()' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) + | has_details(self) -> bool | Does this type refer to a nontrivial type? | | has_vftable(self, *args) + | has_vftable(self) -> bool | Has a vftable? | | is_anonymous_udt(self, *args) - | Is an anonymous struct/union? We assume that types with names are - | anonymous if the name starts with $ + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) - | \isreal{is_type_arithmetic} + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) - | \isreal{is_type_array} + | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) - | \isreal{is_type_bitfld} + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) - | \isreal{is_type_bool} + | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) | is_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_char(self, *args) - | \isreal{is_type_char} + | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) - | \isreal{is_type_complex} + | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) - | \isreal{is_type_const} + | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) - | Is the type object correct?. It is possible to create incorrect types. - | For example, we can define a function that returns a enum and then - | delete the enum type. If this function returns false, the type should - | not be used in disassembly. Please note that this function does not - | verify all involved types: for example, pointers to undefined types - | are permitted. + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) - | \isdecl{is_type_array} + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) - | \isdecl{is_type_bitfld} + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) - | \isdecl{is_type_bool} + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) - | \isdecl{is_type_char} + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) - | \isdecl{is_type_complex} + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) - | \isdecl{is_type_const} + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) - | \isdecl{is_type_double} + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) - | \isdecl{is_type_enum} + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) - | \isdecl{is_type_float} + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) - | \isdecl{is_type_floating} + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) - | \isdecl{is_type_func} + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) - | \isdecl{is_type_int} + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) - | \isdecl{is_type_int128} + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) - | \isdecl{is_type_int16} + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) - | \isdecl{is_type_int32} + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) - | \isdecl{is_type_int64} + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) - | \isdecl{is_typeid_last} + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) - | \isdecl{is_type_ldouble} + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) - | \isdecl{is_type_paf} + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) - | \isdecl{is_type_partial} + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) - | \isdecl{is_type_ptr} + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) - | \isdecl{is_type_struct} + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) - | \isdecl{is_type_sue} + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) - | \isdecl{is_type_tbyte} + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) - | \isdecl{is_type_typedef} + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) - | \isdecl{is_type_uchar} + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) - | \isdecl{is_type_struni} + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) - | \isdecl{is_type_uint} + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) - | \isdecl{is_type_uint128} + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) - | \isdecl{is_type_uint16} + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) - | \isdecl{is_type_uint32} + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) - | \isdecl{is_type_uint64} + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) - | \isdecl{is_type_union} + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) - | \isdecl{is_type_unknown} + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) - | \isdecl{is_type_void} + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) - | \isdecl{is_type_volatile} + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) - | \isreal{is_type_double} + | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) + | is_empty_udt(self) -> bool | Is an empty struct/union? (has no fields) | | is_enum(self, *args) - | \isreal{is_type_enum} + | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) - | \isreal{is_type_ext_arithmetic} + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) - | \isreal{is_type_ext_integral} + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) - | \isreal{is_type_float} + | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) - | \isreal{is_type_floating} + | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) - | Is this a forward declaration?. Forward declarations are placeholders: - | the type definition does not exist + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) - | Was the named type found in some base type library (not the top level - | type library)?. If yes, it usually means that the type comes from some - | loaded type library, not the local type library for the database + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) - | \isreal{is_type_func} + | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) + | is_funcptr(self) -> bool | Is this pointer to a function? | | is_high_func(self, *args) - | 'BT_FUNC' : Is high level type? + | is_high_func(self) -> bool | | is_int(self, *args) - | \isreal{is_type_int} + | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) - | \isreal{is_type_int128} + | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) - | \isreal{is_type_int16} + | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) - | \isreal{is_type_int32} + | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) - | \isreal{is_type_int64} + | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) - | \isreal{is_type_integral} + | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) - | \isreal{is_type_ldouble} + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) | is_manually_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) - | Floating value or an object consisting of one floating member - | entirely. + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) - | \isreal{is_type_paf} + | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) - | \isreal{is_type_partial} + | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) - | \isreal{is_type_ptr} + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) - | \isreal{is_type_ptr_or_array} + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) - | \tinfocc{is_purging_cc} + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) - | Is "void *"?. This function does not check the pointer attributes and - | type modifiers. + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) + | is_scalar(self) -> bool | Does the type represent a single number? | | is_shifted_ptr(self, *args) + | is_shifted_ptr(self) -> bool | Is a shifted pointer? | | is_signed(self, *args) + | is_signed(self) -> bool | Is this a signed type? | | is_small_udt(self, *args) + | is_small_udt(self) -> bool | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) + | is_sse_type(self) -> bool | Is a SSE vector type? | | is_struct(self, *args) - | \isreal{is_type_struct} + | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) - | \isreal{is_type_sue} + | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) - | \isreal{is_type_tbyte} + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) - | Is this type a type reference?. Type references cannot be modified. - | Once created, they do not change. Because of this, the set_... - | functions applied to typerefs create a new type id. Other types are - | modified directly. + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) - | \isreal{is_type_uchar} + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) - | \isreal{is_type_struni} + | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) - | \isreal{is_type_uint} + | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) - | \isreal{is_type_uint128} + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) - | \isreal{is_type_uint16} + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) - | \isreal{is_type_uint32} + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) - | \isreal{is_type_uint64} + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) - | \isreal{is_type_union} + | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) - | \isreal{is_type_unknown} + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) + | is_unsigned(self) -> bool | Is this an unsigned type? | | is_user_cc(self, *args) - | \tinfocc{is_user_cc} + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) - | \tinfocc{is_vararg_cc} + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) + | is_varstruct(self) -> bool | Is a variable-size structure? | | is_vftable(self, *args) + | is_vftable(self) -> bool | Is a vftable type? | | is_void(self, *args) - | \isreal{is_type_void} + | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) - | \isreal{is_type_volatile} + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) - | !( 'empty()' ) && !( 'is_decl_partial()' ) + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) - | Is the type really present? (not a reference to a missing type, for - | example) + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) | read_bitfield_value(self, v, bitoff) -> uint64 - | v: uint64 - | bitoff: int + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) - | Replace the current type with the ptr obj or array element. This - | function performs one of the following conversions:type[] => typetype* - | => type If the conversion is performed successfully, return true + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) + | requires_qualifier(self, name, offset) -> bool | Requires full qualifier? (name is not unique) | - | requires_qualifier(self, name, offset) -> bool - | @param name: field name (C++: const char *) - | @param offset (C++: uint64) - | @return: if the name is not unique, returns true + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) - | Serialize 'tinfo_t' object into a type string. + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. | - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | @param sudt_flags (C++: int) + | @param sudt_flags: (C++: int) | | set_attr(self, *args) + | set_attr(self, ta, may_overwrite=True) -> bool | Set a type attribute. If necessary, a new typid will be created. | - | set_attr(self, ta, may_overwrite=True) -> bool - | @param ta (C++: const type_attr_t &) - | @param may_overwrite (C++: bool) + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) - | Set type attributes. If necessary, a new typid will be created. this - | function modifies tav! (returns old attributes, if any) - | | set_attrs(self, tav) -> bool - | @param tav (C++: type_attrs_t *) - | @return: false: bad attributes + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) | set_const(self) | | set_declalign(self, *args) + | set_declalign(self, declalign) -> bool | Set declared alignment of the type. | - | set_declalign(self, declalign) -> bool - | @param declalign (C++: uchar) + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) | set_modifiers(self, mod) - | mod: type_t + | + | @param mod: type_t | | set_named_type(self, *args) | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | til: til_t * - | ord: uint32 - | ntf_flags: int - | name: char const * + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) | set_volatile(self) | | swap(self, *args) + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: tinfo_t &) + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | dst: uint64 - | v: uint64 - | bitoff: int + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) | get_stock(id) -> tinfo_t - | id: enum stock_type_id_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83225,7 +80874,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) tinfo_t_get_stock(id) -> tinfo_t - id: enum stock_type_id_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -83238,34 +80888,35 @@ class tinfo_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t - | s: int + | + | @param s: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | apply_to(self, tif, out=None, name=None, cmt=None) -> int | Call this function to initiate the traversal. | - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | @param tif (C++: const tinfo_t &) - | @param out (C++: type_mods_t *) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) + | prune_now(self) | To refuse to visit children of the current type, use this: | | visit_type(self, *args) - | Visit a subtype. this function must be implemented in the derived - | class. it may optionally fill out with the new type info. this can be - | used to modify types (in this case the 'out' argument of 'apply_to()' - | may not be NULL) return 0 to continue the traversal. return !=0 to - | stop the traversal. - | | visit_type(self, out, tif, name, cmt) -> int - | @param out (C++: type_mods_t *) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83277,7 +80928,7 @@ class tinfo_visitor_t(__builtin__.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -83297,14 +80948,16 @@ class type_attr_t(__builtin__.object) | | __ge__(self, *args) | __ge__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -83318,13 +80971,13 @@ class type_attr_t(__builtin__.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83341,11 +80994,14 @@ class type_attrs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> type_attr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | x: qvector< type_attr_t > const & + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83357,19 +81013,20 @@ class type_attrs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: type_attr_t const & + | + | @param i: size_t + | @param v: type_attr_t const & | | at(self, *args) | at(self, _idx) -> type_attr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83382,16 +81039,16 @@ class type_attrs_t(__builtin__.object) | | end(self, *args) | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) | erase(self, it) -> type_attr_t - | it: qvector< type_attr_t >::iterator | + | @param it: qvector< type_attr_t >::iterator | | erase(self, first, last) -> type_attr_t - | first: qvector< type_attr_t >::iterator - | last: qvector< type_attr_t >::iterator + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) | extract(self) -> type_attr_t @@ -83401,47 +81058,56 @@ class type_attrs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=type_attr_t()) - | x: type_attr_t const & + | + | @param x: type_attr_t const & | | inject(self, *args) | inject(self, s, len) - | s: type_attr_t * - | len: size_t + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> type_attr_t - | it: qvector< type_attr_t >::iterator - | x: type_attr_t const & + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: type_attr_t const & + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: type_attr_t const & | + | @param _newsize: size_t + | @param x: type_attr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< type_attr_t > & + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) | truncate(self) @@ -83493,19 +81159,21 @@ class type_mods_t(__builtin__.object) | | set_new_cmt(self, *args) | set_new_cmt(self, c) - | @param c (C++: const qstring &) + | + | @param c: qstring const & | | set_new_name(self, *args) | set_new_name(self, n) - | @param n (C++: const qstring &) + | + | @param n: qstring const & | | set_new_type(self, *args) - | The visit_type() function may optionally save the modified type info. - | Use the following functions for that. The new name and comment will be - | applied only if the current tinfo element has storage for them. - | | set_new_type(self, t) - | @param t (C++: const tinfo_t &) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83517,19 +81185,19 @@ class type_mods_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83546,21 +81214,23 @@ class typedef_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | _name: char const * - | _resolve: bool | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | ord: uint32 - | _resolve: bool + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) - | @param r (C++: typedef_type_data_t &) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83572,16 +81242,22 @@ class typedef_type_data_t(__builtin__.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83598,18 +81274,21 @@ class udt_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) | __lt__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -83619,6 +81298,9 @@ class udt_member_t(__builtin__.object) | clr_baseclass(self, *args) | clr_baseclass(self) | + | clr_method(self, *args) + | clr_method(self) + | | clr_unaligned(self, *args) | clr_unaligned(self) | @@ -83640,6 +81322,9 @@ class udt_member_t(__builtin__.object) | is_bitfield(self, *args) | is_bitfield(self) -> bool | + | is_method(self, *args) + | is_method(self) -> bool + | | is_unaligned(self, *args) | is_unaligned(self) -> bool | @@ -83655,6 +81340,9 @@ class udt_member_t(__builtin__.object) | set_baseclass(self, *args) | set_baseclass(self) | + | set_method(self, *args) + | set_method(self) + | | set_unaligned(self, *args) | set_unaligned(self) | @@ -83666,7 +81354,8 @@ class udt_member_t(__builtin__.object) | | swap(self, *args) | swap(self, r) - | @param r (C++: udt_member_t &) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83678,31 +81367,31 @@ class udt_member_t(__builtin__.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83718,6 +81407,7 @@ class udt_type_data_t(udtmembervec_t) | Method resolution order: | udt_type_data_t | udtmembervec_t + | udtmembervec_template_t | __builtin__.object | | Methods defined here: @@ -83732,7 +81422,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) | is_last_baseclass(self, idx) -> bool - | @param idx (C++: size_t) + | + | @param idx: size_t | | is_msstruct(self, *args) | is_msstruct(self) -> bool @@ -83748,34 +81439,35 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) | swap(self, r) - | @param r (C++: udt_type_data_t &) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -83784,15 +81476,17 @@ class udt_type_data_t(udtmembervec_t) | delete_udt_type_data_t(self) | | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: + | Methods inherited from udtmembervec_template_t: | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83802,31 +81496,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83839,71 +81539,77 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -83912,7 +81618,7 @@ class udt_type_data_t(udtmembervec_t) | truncate(self) | | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: + | Data descriptors inherited from udtmembervec_template_t: | | __dict__ | dictionary for instance variables (if defined) @@ -83922,22 +81628,45 @@ class udt_type_data_t(udtmembervec_t) Help on class udtmembervec_t in module ida_typeinf: -class udtmembervec_t(__builtin__.object) - | Proxy of C++ qvector< udt_member_t > class. +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | __builtin__.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = <built-in function delete_udtmembervec_t> + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | x: qvector< udt_member_t > const & + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83947,33 +81676,37 @@ class udtmembervec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) | capacity(self) -> size_t @@ -83986,78 +81719,253 @@ class udtmembervec_t(__builtin__.object) | | end(self, *args) | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< udt_member_t > & + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(__builtin__.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> udt_member_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> udt_member_t + | + | erase(self, *args) + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) + | extract(self) -> udt_member_t + | + | find(self, *args) + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) | truncate(self) @@ -84077,33 +81985,33 @@ class udtmembervec_t(__builtin__.object) | ---------------------------------------------------------------------- | Data and other attributes defined here: | - | __swig_destroy__ = <built-in function delete_udtmembervec_t> - | delete_udtmembervec_t(self) + | __swig_destroy__ = <built-in function delete_udtmembervec_template_t> + | delete_udtmembervec_template_t(self) Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t Read a typed idc object from the byte vector. - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t Collection of register objects. Read a typed idc object from the database - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: @@ -84111,28 +82019,30 @@ unpack_object_from_bv(*args) unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * - ti: til_t * - type: type_t const * - fields: p_list const * - ea: ea_t - pio_flags: int + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int Help on function use_golang_cc in module ida_typeinf: use_golang_cc(*args) + use_golang_cc() -> bool is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -84157,19 +82067,19 @@ class valstr_t(__builtin__.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -84214,7 +82124,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84224,19 +82135,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -84249,16 +82161,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -84268,47 +82180,56 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -84331,11 +82252,14 @@ class valstrvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | x: qvector< valstr_t > const & + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84347,19 +82271,20 @@ class valstrvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) | capacity(self) -> size_t @@ -84372,16 +82297,16 @@ class valstrvec_t(__builtin__.object) | | end(self, *args) | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -84391,47 +82316,56 @@ class valstrvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -84457,1198 +82391,270 @@ class valstrvec_t(__builtin__.object) Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) - Verify 'argloc_t' . - verify_argloc(vloc, size, gaps) -> int - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) verify_tinfo(typid) -> int - typid: uint32 + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) visit_subtypes(visitor, out, tif, name, cmt) -> int - visitor: tinfo_visitor_t * - out: type_mods_t * - tif: tinfo_t const & - name: char const * - cmt: char const * + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - typid: uint32 - dst: uint64 - v: uint64 - bitoff: int + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_GOLANG_OK -""" -can use __golang calling convention -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FAI_UNUSED -""" -argument is not used by the function -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -info about argument locations has been calculated (stkargs and retloc -too) -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -"input" is file name, otherwise "input" contains a C declaration -""" - -ida_typeinf.HTI_HIGH -""" -assume high level prototypes (with hidden args, etc) -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -check that synchronization to IDB passed OK (set_numbered_type, -set_named_type) -""" - -ida_typeinf.NTF_FIXNAME -""" -force-validate the name of the type when setting (set_named_type, -set_numbered_type only) -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -symbol, name is mangled ('_func') only one of 'NTF_TYPE' and -'NTF_SYMU' , 'NTF_SYMM' can be used -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" -'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" -'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" -'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" -'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" -'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -assume high level prototypes (with hidden args, etc) -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if unionnb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by numberin: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by namein: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offsetin: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type.in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -recalculate field alignments, struct packing, etc to match the offsets -and size info -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) + can_decode(ea) -> bool Can the bytes at address 'ea' be decoded as instruction? - can_decode(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction Help on function construct_macro in module ida_ua: construct_macro(*args) construct_macro(insn, enable, build_macro) -> bool See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * Help on function construct_macro2 in module ida_ua: construct_macro2(*args) construct_macro2(_this, insn, enable) -> bool - @param _this (C++: macro_constructor_t *) - @param insn (C++: insn_t *) - @param enable (C++: bool) + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t Create a new output context. To delete it, just use "delete pctx" - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - decode_insn(out, ea) -> int - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) - decode_preceding_insn(out, ea) -> PyObject * + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) + decode_prev_insn(out, ea) -> ea_t Decode previous instruction if it exists, fill 'out'. - decode_prev_insn(out, ea) -> ea_t - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) - Get 'op_t::dtype' from size. - get_dtype_by_size(size) -> int - @param size (C++: asize_t) + Get op_t::dtype from size. + + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: get_dtype_flag(*args) - Get flags for 'op_t::dtype' field. - get_dtype_flag(dtype) -> flags_t - @param dtype (C++: op_dtype_t) + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) + get_dtype_size(dtype) -> size_t Get size of opt_::dtype field. - get_dtype_size(dtype) -> size_t - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - get_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) + get_printable_immvals(ea, n, F=0) -> PyObject * Get immediate ready-to-print values at the specified address - get_printable_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) insn_add_cref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum cref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) insn_add_dref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum dref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) insn_add_off_drefs(insn, x, type, outf) -> ea_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - type: enum dref_t - outf: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) insn_create_stkvar(insn, x, v, flags) -> bool - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - v: adiff_t - flags: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -85662,14 +82668,15 @@ class insn_t(__builtin__.object) | | __get_operand__(self, *args) | __get_operand__(self, n) -> op_t - | n: int + | + | @param n: int | | __get_ops__(self, *args) | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -85680,74 +82687,89 @@ class insn_t(__builtin__.object) | | __set_auxpref__(self, *args) | __set_auxpref__(self, v) - | v: uint32 + | + | @param v: uint32 | | add_cref(self, *args) + | add_cref(self, to, opoff, type) | Add a code cross-reference from the instruction. | - | add_cref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction. if - | the offset is unknown, then 0. (C++: int) - | @param type: type of xref (C++: cref_t) + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) - | Add a data cross-reference from the instruction. See 'add_off_drefs()' - | - usually it can be used in most cases. - | | add_dref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction if - | the offset is unknown, then 0 (C++: int) - | @param type: type of xref (C++: dref_t) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) - | Add xrefs for an operand of the instruction. This function creates all - | cross references for 'enum', 'offset' and 'structure offset' operands. - | Use 'add_off_drefs()' in the presence of negative offsets. - | | add_off_drefs(self, x, type, outf) -> ea_t - | @param x: reference to operand (C++: const op_t &) - | @param type: type of xref (C++: dref_t) - | @param outf: out_value() flags. These flags should match the flags - | used to output the operand (C++: int) - | @return: if is_off() : the reference target address (the same as - | calc_reference_data). if is_stroff() : BADADDR because for - | stroffs the target address is unknown else: BADADDR because - | enums do not represent addresses + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) | assign(self, other) - | other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) | create_op_data(self, ea_, opoff, dtype) -> bool - | ea_: ea_t - | opoff: int - | dtype: op_dtype_t + | Convenient alias. | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t | | create_op_data(self, ea_, op) -> bool - | ea_: ea_t - | op: op_t const & + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) | create_stkvar(self, x, v, flags_) -> bool - | x: op_t const & - | v: adiff_t - | flags_: int + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) - | see 'instruc_t::feature' - | | get_canon_feature(self, ph) -> uint32 - | @param ph (C++: const processor_t &) + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) - | see 'instruc_t::name' - | | get_canon_mnem(self, ph) -> char const - | @param ph (C++: const processor_t &) + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) | get_next_byte(self) -> uint8 @@ -85762,15 +82784,19 @@ class insn_t(__builtin__.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) + | is_64bit(self) -> bool | Belongs to a 64bit segment? | | is_canon_insn(self, *args) - | see \ph{ 'is_canon_insn()' } - | | is_canon_insn(self, ph) -> bool - | @param ph (C++: const processor_t &) + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool | | is_macro(self, *args) + | is_macro(self) -> bool | Is a macro instruction? | | ---------------------------------------------------------------------- @@ -85801,32 +82827,38 @@ class insn_t(__builtin__.object) | auxpref | __get_auxpref__(self) -> uint32 | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -85841,15 +82873,16 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) insn_t__from_ptrval__(ptrval) -> insn_t - ptrval: size_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) + is_floating_dtype(dtype) -> bool Is a floating type operand? - is_floating_dtype(dtype) -> bool - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on class macro_constructor_t in module ida_ua: @@ -85862,28 +82895,25 @@ class macro_constructor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> macro_constructor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | build_macro(self, *args) + | build_macro(self, insn, may_go_forward) -> bool | Try to extend the instruction. | - | build_macro(self, insn, may_go_forward) -> bool - | @param insn: Instruction to modify, usually the first instruction of - | the macro (C++: insn_t *) - | @param may_go_forward: Is it ok to consider the next instruction for - | the macro? This argument may be false, for - | example, if there is a cross reference to the - | end of INSN. In this case creating a macro is - | not desired. However, it may still be useful to - | perform minor tweaks to the instruction using - | the information about the surrounding - | instructions. (C++: bool) - | @return: true if created an macro instruction. This function may - | modify 'insn' and return false; these changes will be - | accepted by the kernel but the instruction will not be - | considered as a macro. + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -85895,7 +82925,7 @@ class macro_constructor_t(__builtin__.object) | list of weak references to the object (if defined) | | reserved - | macro_constructor_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -85909,52 +82939,46 @@ class macro_constructor_t(__builtin__.object) Help on function map_code_ea in module ida_ua: map_code_ea(*args) - Map a code address. This function takes into account the segment - translations. - map_code_ea(insn, addr, opnum) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_code_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) - Map a data address. - map_data_ea(insn, addr, opnum=-1) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_data_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) map_ea(insn, op, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param op (C++: const op_t &) - @param iscode (C++: bool) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool map_ea(insn, addr, opnum, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - addr: ea_t - opnum: int - @param iscode (C++: bool) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -85982,46 +83006,54 @@ class op_t(__builtin__.object) | | __set_addr__(self, *args) | __set_addr__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) | __set_reg_phrase__(self, r) - | r: uint16 + | + | @param r: uint16 | | __set_specval__(self, *args) | __set_specval__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_value__(self, *args) | __set_value__(self, v) - | v: ea_t + | + | @param v: ea_t | | assign(self, *args) | assign(self, other) - | other: op_t const & + | + | @param other: op_t const & | | clr_shown(self, *args) + | clr_shown(self) | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) + | is_imm(self, v) -> bool | Is immediate operand? | - | is_imm(self, v) -> bool - | @param v (C++: uval_t) + | @param v: (C++: uval_t) | | is_reg(self, *args) + | is_reg(self, r) -> bool | Is register operand? | - | is_reg(self, r) -> bool - | @param r (C++: int) + | @param r: (C++: int) | | set_shown(self, *args) + | set_shown(self) | Set operand to be shown. | | shown(self, *args) + | shown(self) -> bool | Is operand set to be shown? | | ---------------------------------------------------------------------- @@ -86037,19 +83069,19 @@ class op_t(__builtin__.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -86058,16 +83090,16 @@ class op_t(__builtin__.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -86076,7 +83108,7 @@ class op_t(__builtin__.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t @@ -86091,7 +83123,8 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) op_t__from_ptrval__(ptrval) -> op_t - ptrval: size_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -86102,11 +83135,13 @@ class operands_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array - | data: op_t (&)[8] + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -86118,15 +83153,19 @@ class operands_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: op_t const & + | + | @param i: size_t + | @param v: op_t const & | | _get_bytes(self, *args) | _get_bytes(self) -> bytevec_t | | _set_bytes(self, *args) | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86141,7 +83180,7 @@ class operands_array(__builtin__.object) | _get_bytes(self) -> bytevec_t | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -86173,21 +83212,21 @@ class outctx_base_t(__builtin__.object) | display_voids(self) -> bool | | flush_buf(self, *args) - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -86196,84 +83235,80 @@ class outctx_base_t(__builtin__.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) | multiline(self) -> bool @@ -86282,153 +83317,156 @@ class outctx_base_t(__builtin__.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -86438,24 +83476,25 @@ class outctx_base_t(__builtin__.object) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | setup_outctx(self, *args) + | setup_outctx(self, prefix, makeline_flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, makeline_flags) - | @param prefix (C++: const char *) - | @param makeline_flags (C++: int) + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86467,13 +83506,13 @@ class outctx_base_t(__builtin__.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -86482,7 +83521,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - ptrval: size_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -86502,17 +83542,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) | gen_func_footer(self, pfn) - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) | gen_func_header(self, pfn) - | @param pfn (C++: func_t *) + | + | @param pfn: func_t * | | gen_header(self, *args) | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | @param flags (C++: int) - | @param proc_name (C++: const char *) - | @param proc_flavour (C++: const char *) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) | gen_header_extra(self) @@ -86521,118 +83564,119 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) - | Output custom mnemonic for 'insn'. E.g. if it should differ from the - | one in 'ph.instruc'. This function outputs colored text. See - | 'out_mnem' - | | out_custom_mnem(self, mnem, width=8, postfix=None) - | @param mnem: custom mnemonic (C++: const char *) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to 'mnem' (C++: const char *) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) | out_data(self, analyze_only) - | @param analyze_only (C++: bool) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) - | Print all operand values as commented character constants. This - | function is used to comment void operands with their representation in - | the form of character constants. This function outputs a colored text. + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) - | Output instruction mnemonic for 'insn' using information in - | 'ph.instruc' array. This function outputs a colored text. It should be - | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will - | output at least one space after the instruction. mnemonic even if the - | specified 'width' is not enough. - | | out_mnem(self, width=8, postfix=None) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to the instruction mnemonic - | (C++: const char *) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) - | Output instruction mnemonic using information in 'insn'. It should be - | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or - | 'out_mnem' . This function outputs a colored text. + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) - | Use this function to output an operand of an instruction. This - | function checks for the existence of a manually defined operand and - | will output it if it exists. It should be called from - | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This - | function outputs a colored text. - | | out_one_operand(self, n) -> bool - | @param n: number of operand (C++: int) - | @retval: 1 - operand is displayed - | @retval: 0 - operand is hidden + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) | out_specea(self, segtype) -> bool - | @param segtype (C++: uchar) + | + | @param segtype: uchar | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) | set_bin_state(self, value) - | @param value (C++: int) + | + | @param value: int | | setup_outctx(self, *args) + | setup_outctx(self, prefix, flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, flags) - | @param prefix (C++: const char *) - | flags: int + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ash - | outctx_t_ash_get(self) -> asm_t + | ash | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn | | ph - | outctx_t_ph_get(self) -> processor_t + | ph | | procmod - | outctx_t_procmod_get(self) -> procmod_t + | procmod | | saved_immvals - | outctx_t_saved_immvals_get(self) -> uval_t [8] + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -86647,21 +83691,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -86670,81 +83714,77 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) | multiline(self) -> bool @@ -86753,145 +83793,147 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | set_comment_addr(self, *args) | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -86901,17 +83943,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -86923,328 +83966,77 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) outctx_t__from_ptrval__(ptrval) -> outctx_t - ptrval: size_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) + print_insn_mnem(ea) -> str Print instruction mnemonics. - print_insn_mnem(ea) -> str - @param ea: linear address of the instruction (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address of the instruction + @return: success Help on function print_operand in module ida_ua: print_operand(*args) - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -in case of an error, use a CP_REPLCHAR instead of a hex representation -of the problematic byte -""" +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" +Cross-references are automatically sorted.""" -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -do not suppress leading spaces currently works only for floating point -numbers -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -packed factor defined. (! 'o_reg' + 'dt_packreal' ) -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_dref in module ida_xref: add_dref(*args) + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: @@ -87287,10 +84079,10 @@ class cases_and_targets_t(__builtin__.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -87310,15 +84102,19 @@ class casevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87327,22 +84123,28 @@ class casevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) - | i: size_t - | v: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | _del(self, *args) | _del(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) | @@ -87370,74 +84172,86 @@ class casevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) | has(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) | inject(self, s, len) - | s: qvector< signed-ea-like-numeric-type > *↗ - | len: size_t + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) - | _newsize: size_t - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) - | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) | truncate(self) @@ -87490,171 +84304,165 @@ create_switch_xrefs(*args) Help on function del_cref in module ida_xref: del_cref(*args) + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) delete_switch_table(jump_ea, si) - jump_ea: ea_t - si: switch_info_t const & + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) + has_external_refs(pfn, ea) -> bool Has a location external to the function references? - has_external_refs(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -87668,27 +84476,61 @@ class xrefblk_t(__builtin__.object) | | __repr__ = _swig_repr(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) | first_from(self, _from, flags) -> bool - | _from: ea_t - | flags: int + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) | first_to(self, _to, flags) -> bool - | _to: ea_t - | flags: int + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) | next_from(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) | next_to(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87700,22 +84542,22 @@ class xrefblk_t(__builtin__.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -87726,57 +84568,24 @@ class xrefblk_t(__builtin__.object) Help on function xrefchar in module ida_xref: xrefchar(*args) + xrefchar(xrtype) -> char Get character describing the xref type. - xrefchar(xrtype) -> char - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -87867,13 +84676,13 @@ EVAL_FAILURE(code) Help on function get_cmt in module ida_bytes: get_cmt(*args) + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -88119,40 +84928,30 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_default_til in module idc: @@ -88165,32 +84964,30 @@ add_default_til(name) Help on function add_dref in module ida_xref: add_dref(*args) + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function add_enum in module idc: @@ -88231,39 +85028,39 @@ add_enum_member(enum_id, name, value, bmask) Help on function add_func in module ida_funcs: add_func(*args) - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -88288,16 +85085,15 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function add_struc in module idc: @@ -88354,13 +85150,12 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function append_func_tail in module idc: @@ -88392,19 +85187,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_yn in module ida_kernwin: ask_yn(*args) + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -88422,53 +85220,51 @@ atol(s) Help on function attach_process in module ida_dbg: attach_process(*args) - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -88523,11 +85319,11 @@ can_exc_continue() Help on function check_bpt in module ida_dbg: check_bpt(*args) + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -88549,17 +85345,15 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -88582,32 +85376,30 @@ create_byte(ea) Help on function create_custdata in module ida_bytes: create_custdata(*args) + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module idc: @@ -88639,16 +85431,16 @@ create_float(ea) Help on function create_insn in module ida_ua: create_insn(*args) - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -88736,16 +85528,15 @@ create_yword(ea) Help on function define_exception in module ida_dbg: define_exception(*args) + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -88779,49 +85570,45 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: del_cref(*args) + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -88841,25 +85628,26 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_hash_string in module idc: @@ -88874,72 +85662,70 @@ del_hash_string(hash_id, key) Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function del_stkpnt in module idc: @@ -89006,28 +85792,30 @@ demangle_name(name, disable_mask) Help on function detach_process in module ida_dbg: detach_process(*args) - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -89062,8 +85850,9 @@ eval_idc(expr) Help on function exit_process in module ida_dbg: exit_process(*args) - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -89090,34 +85879,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -89133,12 +85922,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -89155,24 +85944,24 @@ find_selector(val) Help on function find_suspop in module ida_search: find_suspop(*args) + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -89346,13 +86135,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -89376,24 +86167,24 @@ get_bpt_ea(n) Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -89412,13 +86203,13 @@ get_bytes(ea, size, use_dbg=False) Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -89440,19 +86231,19 @@ get_curline() Help on function get_current_thread in module ida_dbg: get_current_thread(*args) - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -89462,69 +86253,70 @@ get_debugger_event_cond(*args) Help on function get_entry in module ida_entry: get_entry(*args) + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) + get_entry_qty() -> size_t Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -89543,18 +86335,18 @@ get_enum_member(enum_id, value, serial, bmask) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -89569,10 +86361,10 @@ get_enum_member_cmt(const_id, repeatable) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -89586,40 +86378,39 @@ get_enum_member_name(const_id) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -89718,8 +86509,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -89735,67 +86527,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -89812,13 +86600,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -89877,7 +86667,10 @@ get_first_seg() Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -89932,12 +86725,12 @@ get_fixup_target_type(ea) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -90001,11 +86794,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: get_full_flags(*args) + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -90095,27 +86888,26 @@ get_inf_attr(attr) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) + get_input_file_path() -> str Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -90129,11 +86921,11 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -90189,7 +86981,10 @@ get_last_member(sid) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -90202,11 +86997,11 @@ get_local_tinfo(ordinal) Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -90379,16 +87174,15 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -90403,65 +87197,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -90491,24 +87281,26 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -90587,11 +87379,11 @@ get_next_seg(ea) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -90642,22 +87434,22 @@ get_ordinal_qty() Help on function get_original_byte in module ida_bytes: get_original_byte(*args) - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -90687,11 +87479,11 @@ get_prev_fchunk(ea) Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -90751,78 +87543,81 @@ get_prev_offset(sid, offset) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_reg_val in module ida_dbg: get_reg_val(*args) - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) + get_root_filename() -> str Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -90875,19 +87670,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -90929,8 +87725,11 @@ get_sreg(ea, reg) Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_str_type in module idc: @@ -90954,67 +87753,68 @@ get_strlit_contents(ea, length=-1, strtype=0) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -91031,8 +87831,9 @@ get_tev_reg_mem_qty(tev) Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -91042,19 +87843,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -91067,10 +87871,10 @@ get_tinfo(ea) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -91084,35 +87888,35 @@ get_type(ea) Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -91125,32 +87929,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -91245,11 +88048,11 @@ is_align(F) Help on function is_bf in module ida_enum: is_bf(*args) - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -91410,10 +88213,10 @@ is_unknown(F) Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -91422,47 +88225,46 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -91501,7 +88303,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -91514,11 +88316,11 @@ msg(*args) Help on function next_addr in module ida_bytes: next_addr(*args) + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -91546,115 +88348,115 @@ next_head(ea, maxea=BADADDR)↗ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function op_num in module ida_bytes: op_num(*args) - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: op_offset(*args) - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -91714,25 +88516,25 @@ op_plain_offset(ea, n, base) Help on function op_seg in module ida_bytes: op_seg(*args) - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module idc: @@ -91771,79 +88573,75 @@ parse_decls(inputtype, flags=0) Help on function patch_byte in module ida_bytes: patch_byte(*args) - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -91859,22 +88657,20 @@ plan_and_wait(sEA, eEA, final_pass=True) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -91890,11 +88686,11 @@ prev_head(ea, minea=0) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -91968,20 +88764,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -92012,8 +88809,10 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -92060,43 +88859,45 @@ readstr(handle) Help on function rebase_program in module ida_segment: rebase_program(*args) + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -92126,15 +88927,14 @@ rename_array(array_id, newname) Help on function rename_entry in module ida_entry: rename_entry(*args) + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function resume_process in module idc: @@ -92143,18 +88943,19 @@ resume_process() Help on function resume_thread in module ida_dbg: resume_thread(*args) + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) + retrieve_input_file_md5() -> str Get input file md5. Help on function rotate_byte in module idc: @@ -92186,19 +88987,15 @@ rotate_word(x, count) Help on function run_to in module ida_dbg: run_to(*args) - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -92212,11 +89009,11 @@ save_database(idbname, flags=0) Help on function save_trace_file in module ida_dbg: save_trace_file(*args) + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -92237,14 +89034,14 @@ sel2para(sel) Help on function select_thread in module ida_dbg: select_thread(*args) - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -92348,14 +89145,15 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) Help on function set_cmt in module ida_bytes: set_cmt(*args) + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_color in module idc: @@ -92371,18 +89169,19 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -92398,76 +89197,76 @@ set_default_sreg_value(ea, reg, value) Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -92539,12 +89338,12 @@ set_func_cmt(ea, cmt, repeatable) Help on function set_func_end in module ida_funcs: set_func_end(*args) + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_flags in module idc: @@ -92581,11 +89380,11 @@ set_hash_string(hash_id, key, value) Help on function set_ida_state in module ida_auto: set_ida_state(*args) + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function set_inf_attr in module idc: @@ -92608,12 +89407,11 @@ set_local_type(ordinal, input, flags) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -92681,14 +89479,14 @@ set_name(ea, name, flags=0) Help on function set_processor_type in module ida_idp: set_processor_type(*args) - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_reg_value in module idc: @@ -92705,22 +89503,21 @@ set_reg_value(value, name) Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -92809,57 +89606,57 @@ set_segment_bounds(ea, startea, endea, flags) Help on function set_selector in module ida_segment: set_selector(*args) - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -92877,11 +89674,11 @@ set_struc_idx(sid, index) Help on function set_struc_name in module ida_struct: set_struc_name(*args) + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -92898,21 +89695,20 @@ set_tail_owner(tailea, funcea) Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -92931,42 +89727,44 @@ split_sreg_range(ea, reg, value, tag=2) Help on function start_process in module ida_dbg: start_process(*args) - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -92983,38 +89781,39 @@ substr(s, x1, x2) Help on function suspend_process in module ida_dbg: suspend_process(*args) - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function to_ea in module idc: @@ -93035,20 +89834,21 @@ toggle_bnot(ea, n) Help on function toggle_sign in module ida_bytes: toggle_sign(*args) - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -93107,16 +89907,15 @@ value_is_string(var) Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: @@ -93157,3 +89956,15670 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + only 32/16bit functions can be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block (after a tail call) + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + empty ? function_mode : snippet mode + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + R-records. + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_IF_ENABLED in module ida_kernwin: + + add item only if it is enabled (prevents unusable, greyed-out items) + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: "#tooltip + #column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom popup menu names. Used to replace labels for the standard + handlers (Insert, Delete, Edit, Refresh). + An empty name means that the default name will be used. + @note: Availability of items in the popup menu is determined by the `CH_CAN_...` + flags. + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_NOCHECK in module ida_name: + + Don't fail if the name contains invalid characters. If this bit is clear, all + invalid chars (those !is_ident_cp()) will be replaced by SUBSTCHAR List of valid + characters is defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v7.7. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/release_pydoc_injections3.txt b/release_pydoc_injections3.txt index a9ab7b6..580bb85 100644 --- a/release_pydoc_injections3.txt +++ b/release_pydoc_injections3.txt @@ -1,34 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) -> 'void' + auto_apply_tail(tail_ea, parent_ea) Plan to apply the tail_ea chunk to the parent - auto_apply_tail(tail_ea, parent_ea) - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) -> 'void' + auto_apply_type(caller, callee) Plan to apply the callee's type to the calling point. - auto_apply_type(caller, callee) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) -> 'void' - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - auto_cancel(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -55,264 +75,269 @@ class auto_display_t(builtins.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type Help on function auto_get in module ida_auto: auto_get(*args) -> 'ea_t' - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - auto_get(type, lowEA, highEA) -> ea_t - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) -> 'bool' + auto_is_ok() -> bool Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) -> 'void' + auto_make_code(ea) Plan to make code. - auto_make_code(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) -> 'void' + auto_make_proc(ea) Plan to make code&function. - auto_make_proc(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_step in module ida_auto: auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool Analyze one address in the specified range and return true. - auto_make_step(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: if processed anything. false means that there is nothing to - process in the specified range. + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) -> 'void' + auto_mark(ea, type) Put single address into a queue. Queues keep addresses sorted. - auto_mark(ea, type) - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) -> 'int' + auto_recreate_insn(ea) -> int Try to create instruction - auto_recreate_insn(ea) -> int - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) -> 'ssize_t' + auto_wait_range(ea1, ea2) -> ssize_t Process everything in the specified range and return true. - auto_wait_range(ea1, ea2) -> ssize_t - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) -> 'bool' - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - enable_auto(enable) -> bool - @param enable (C++: bool) - @return: old state + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state Help on function get_auto_display in module ida_auto: get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - get_auto_display(auto_display) -> bool - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) -> 'atype_t' - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) -> 'bool' + is_auto_enabled() -> bool Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) -> 'bool' - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) -> 'bool' - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) -> 'ea_t' - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - peek_auto_queue(low_ea, type) -> ea_t - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) -> 'int' - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - plan_and_wait(ea1, ea2, final_pass=True) -> int - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - @retval: 1 - ok - @retval: 0 - Ctrl-Break was pressed + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) -> 'void' + plan_ea(ea) Plan to perform reanalysis. - plan_ea(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) -> 'void' + plan_range(sEA, eEA) Plan to perform reanalysis. - plan_range(sEA, eEA) - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) -> 'void' - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - reanalyze_callers(ea, noret) - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) -> 'void' + revert_ida_decisions(ea1, ea2) Delete all analysis info that IDA generated for for the given range. - revert_ida_decisions(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) -> 'atype_t' + set_auto_state(new_state) -> atype_t Set current state of autoanalyzer. - set_auto_state(new_state) -> atype_t - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) -> 'void' - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - show_addr(ea) - @param ea: - linear address to display (C++: ea_t) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) -> 'void' + show_auto(ea, type=AU_NONE) Change autoanalysis indicator value. - show_auto(ea, type=AU_NONE) - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" Help on class bitrange_t in module ida_bitrange: @@ -323,32 +348,39 @@ class bitrange_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __init__(self, *args) | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t - | bit_ofs: uint16 - | size_in_bits: uint16 + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | __repr__ = _swig_repr(self) | @@ -359,91 +391,99 @@ class bitrange_t(builtins.object) | delete_bitrange_t(self) | | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool | Apply mask to a bitrange | - | apply_mask(self, subrange) -> bool - | @param subrange: range inside the main bitrange to keep After this - | operation the main bitrange will be truncated to have - | only the bits that are specified by subrange. - | Example: [off=8,nbits=4], subrange[off=1,nbits=2] => - | [off=9,nbits=2] (C++: const bitrange_t &) - | @return: success + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success | | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint | Get offset of 1st bit. | | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint | Get size of the value in bits. | | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint | Size of the value in bytes. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitrange_t const & + | + | @param r: bitrange_t const & | | create_union(self, *args) -> 'void' + | create_union(self, r) | Create union of 2 ranges including the hole between them. | - | create_union(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Is the bitrange empty? | | extract(self, *args) -> 'bool' | extract(self, src, is_mf) -> bool - | src: void const * - | is_mf: bool + | + | @param src: void const * + | @param is_mf: bool | | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool | Does have common bits with another bitrange? | - | has_common(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) | Initialize offset and size to given values. | - | init(self, bit_ofs, size_in_bits) - | @param bit_ofs (C++: uint16) - | @param size_in_bits (C++: uint16) + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) | | inject(self, *args) -> 'bool' | inject(self, dst, src, is_mf) -> bool - | dst: void * - | src: bytevec_t const & - | is_mf: bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool | | intersect(self, *args) -> 'void' + | intersect(self, r) | Intersect two ranges. | - | intersect(self, r) - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 | Convert to mask of 64 bits. | | reset(self, *args) -> 'void' + | reset(self) | Make the bitrange empty. | | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) | Shift range down (left) | - | shift_down(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) | Shift range up (right) | - | shift_up(self, cnt) - | @param cnt (C++: uint) + | @param cnt: (C++: uint) | | sub(self, *args) -> 'bool' + | sub(self, r) -> bool | Subtract a bitrange. | - | sub(self, r) -> bool - | @param r (C++: const bitrange_t &) + | @param r: (C++: const bitrange_t &) bitrange_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -462,6 +502,19 @@ class bitrange_t(builtins.object) | | __hash__ = None +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + Help on function __walk_types_and_formats in module ida_bytes: __walk_types_and_formats(formats, type_action, format_action, installing) @@ -470,115 +523,115 @@ __walk_types_and_formats(formats, type_action, format_action, installing) Help on function add_byte in module ida_bytes: add_byte(*args) -> 'void' - Add a value to one byte of the program. This function works for wide - byte processors too. - add_byte(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) -> 'void' - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - add_dword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) -> 'bool' - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - add_mapping(_from, to, size) -> bool - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success Help on function add_qword in module ida_bytes: add_qword(*args) -> 'void' - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - add_qword(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) -> 'void' - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - add_word(ea, value) - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: align_flag(*args) -> 'flags_t' + align_flag() -> flags_t Get a flags_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) -> 'bool' - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - append_cmt(ea, str, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) -> 'bool' + attach_custom_data_format(dtid, dfid) -> bool Attach the data format to the data type. - attach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - has already been attached to the data type + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: bin_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + bin_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: @@ -591,149 +644,182 @@ bin_search(*args) -> 'ea_t' @param data: the prepared data to search for (see parse_binpat_str()) @param flags: combination of BIN_SEARCH_* flags @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: byte_flag(*args) -> 'flags_t' + byte_flag() -> flags_t Get a flags_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) -> 'int' + bytesize(ea) -> int Get number of bytes required to store a byte at the given address. - bytesize(ea) -> int - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) -> 'int' + calc_def_align(ea, mina, maxa) -> int Calculate the default alignment exponent. - calc_def_align(ea, mina, maxa) -> int - @param ea: linear address (C++: ea_t) - @param mina: minimal possible alignment exponent. (C++: int) - @param maxa: minimal possible alignment exponent. (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: calc_dflags(*args) -> 'flags_t' calc_dflags(f, force) -> flags_t - @param f (C++: flags_t) - @param force (C++: bool) + + @param f: flags_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' + calc_max_align(endea) -> int Calculate the maximal possible alignment exponent. - calc_max_align(endea) -> int - @param endea: end address of the alignment item. (C++: ea_t) - @return: a value in the 0..32 range + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) -> 'ea_t' - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - calc_max_item_end(ea, how=15) -> ea_t - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) -> 'int' + calc_min_align(length) -> int Calculate the minimal possible alignment exponent. - calc_min_align(length) -> int - @param length: size of the item in bytes. (C++: asize_t) - @return: a value in the 1..32 range + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) -> 'bool' - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - can_define_item(ea, length, flags) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @param length: (C++: asize_t) + @param flags: (C++: flags_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function char_flag in module ida_bytes: char_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + char_flag() -> flags_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) -> 'asize_t' + chunk_size(ea) -> asize_t Get size of the contiguous address block containing 'ea'. - chunk_size(ea) -> asize_t - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) -> 'ea_t' + chunk_start(ea) -> ea_t Get start of the contiguous address block containing 'ea'. - chunk_start(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) -> 'bool' + clr_lzero(ea, n) -> bool Clear lzero bit. - clr_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function clr_op_type in module ida_bytes: clr_op_type(*args) -> 'bool' - Remove operand representation information. (set operand representation - to be 'undefined') - clr_op_type(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function code_flag in module ida_bytes: code_flag(*args) -> 'flags_t' - 'FF_CODE' + code_flag() -> flags_t + FF_CODE Help on class compiled_binpat_t in module ida_bytes: @@ -744,14 +830,16 @@ class compiled_binpat_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __init__(self, *args) | __init__(self) -> compiled_binpat_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: compiled_binpat_t const & + | + | @param r: compiled_binpat_t const & | | __repr__ = _swig_repr(self) | @@ -774,16 +862,16 @@ class compiled_binpat_t(builtins.object) | list of weak references to the object (if defined) | | bytes - | compiled_binpat_t_bytes_get(self) -> bytevec_t * + | bytes | | encidx - | compiled_binpat_t_encidx_get(self) -> int + | encidx | | mask - | compiled_binpat_t_mask_get(self) -> bytevec_t * + | mask | | strlits - | compiled_binpat_t_strlits_get(self) -> rangevec_t + | strlits | | thisown | The membership flag @@ -802,15 +890,19 @@ class compiled_binpat_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __getitem__(self, *args) -> 'compiled_binpat_t const &' | __getitem__(self, i) -> compiled_binpat_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> compiled_binpat_vec_t - | x: qvector< compiled_binpat_t > const & + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -820,36 +912,42 @@ class compiled_binpat_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< compiled_binpat_t > const & + | + | @param r: qvector< compiled_binpat_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: compiled_binpat_t const & + | + | @param i: size_t + | @param v: compiled_binpat_t const & | | __swig_destroy__ = delete_compiled_binpat_vec_t(...) | delete_compiled_binpat_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: compiled_binpat_t const & + | + | Parameters + | ---------- + | x: compiled_binpat_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | at(self, *args) -> 'compiled_binpat_t const &' | at(self, _idx) -> compiled_binpat_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | begin(self) -> compiled_binpat_t - | begin(self) -> compiled_binpat_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -862,78 +960,85 @@ class compiled_binpat_vec_t(builtins.object) | | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | end(self) -> compiled_binpat_t - | end(self) -> compiled_binpat_t | | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' | erase(self, it) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator | + | @param it: qvector< compiled_binpat_t >::iterator | | erase(self, first, last) -> compiled_binpat_t - | first: qvector< compiled_binpat_t >::iterator - | last: qvector< compiled_binpat_t >::iterator + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator | | extract(self, *args) -> 'compiled_binpat_t *' | extract(self) -> compiled_binpat_t | | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & | - | - | find(self, x) -> compiled_binpat_t - | x: compiled_binpat_t const & + | @param x: compiled_binpat_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=compiled_binpat_t()) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: compiled_binpat_t * - | len: size_t + | + | @param s: compiled_binpat_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' | insert(self, it, x) -> compiled_binpat_t - | it: qvector< compiled_binpat_t >::iterator - | x: compiled_binpat_t const & + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'compiled_binpat_t &' | push_back(self, x) - | x: compiled_binpat_t const & + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: compiled_binpat_t const & | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< compiled_binpat_t > & + | + | @param r: qvector< compiled_binpat_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -958,210 +1063,207 @@ class compiled_binpat_vec_t(builtins.object) Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) -> 'bool' + create_16bit_data(ea, length) -> bool Convert to 16-bit quantity (take the byte size into account) - create_16bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) -> 'bool' + create_32bit_data(ea, length) -> bool Convert to 32-bit quantity (take the byte size into account) - create_32bit_data(ea, length) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) -> 'bool' + create_byte(ea, length, force=False) -> bool Convert to byte. - create_byte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module ida_bytes: create_double(*args) -> 'bool' + create_double(ea, length, force=False) -> bool Convert to double. - create_double(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) -> 'bool' + create_dword(ea, length, force=False) -> bool Convert to dword. - create_dword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) -> 'bool' + create_float(ea, length, force=False) -> bool Convert to float. - create_float(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) -> 'bool' + create_oword(ea, length, force=False) -> bool Convert to octaword/xmm word. - create_oword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) -> 'bool' + create_packed_real(ea, length, force=False) -> bool Convert to packed decimal real. - create_packed_real(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) -> 'bool' + create_qword(ea, length, force=False) -> bool Convert to quadword. - create_qword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) -> 'bool' - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - create_strlit(start, len, strtype) -> bool - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success Help on function create_struct in module ida_bytes: create_struct(*args) -> 'bool' + create_struct(ea, length, tid, force=False) -> bool Convert to struct. - create_struct(ea, length, tid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) -> 'bool' + create_tbyte(ea, length, force=False) -> bool Convert to tbyte. - create_tbyte(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) -> 'bool' + create_word(ea, length, force=False) -> bool Convert to word. - create_word(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) -> 'bool' + create_yword(ea, length, force=False) -> bool Convert to ymm word. - create_yword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) -> 'bool' + create_zword(ea, length, force=False) -> bool Convert to zmm word. - create_zword(ea, length, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: cust_flag(*args) -> 'flags_t' + cust_flag() -> flags_t Get a flags_t representing custom type data. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + custfmt_flag() -> flags_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -1175,13 +1277,14 @@ class data_format_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | props: int - | hotkey: char const * - | text_width: int32 + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -1192,7 +1295,10 @@ class data_format_t(builtins.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1204,28 +1310,28 @@ class data_format_t(builtins.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size Help on class data_type_t in module ida_bytes: @@ -1239,13 +1345,14 @@ class data_type_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | self: PyObject * - | name: char const * - | value_size: asize_t - | menu_name: char const * - | hotkey: char const * - | asm_keyword: char const * - | props: int + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1256,7 +1363,10 @@ class data_type_t(builtins.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1268,499 +1378,506 @@ class data_type_t(builtins.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size Help on function dec_flag in module ida_bytes: dec_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + dec_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) -> 'void' + del_mapping(ea) Delete memory mapping range. - del_mapping(ea) - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) -> 'void' - Delete byte value from flags. The corresponding byte becomes - uninitialized. - del_value(ea) - @param ea (C++: ea_t) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) -> 'bool' - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - detach_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - @retval: true - ok - @retval: false - no such dtid , or no such dfid , or the data format - was not attached to the data type + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) -> 'error_t' - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - disable_flags(start_ea, end_ea) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: double_flag(*args) -> 'flags_t' + double_flag() -> flags_t Get a flags_t representing a double. Help on function dword_flag in module ida_bytes: dword_flag(*args) -> 'flags_t' + dword_flag() -> flags_t Get a flags_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) -> 'error_t' - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - enable_flags(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: enum_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + enum_flag() -> flags_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) -> 'bool' + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - equal_bytes(ea, image, mask, len, sense_case) -> bool - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == nullptr, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - @retval: 1 - equal - @retval: 0 - not equal + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) -> 'bool' f_has_cmt(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) -> 'bool' - Does the current byte have dummy (auto-generated, with special prefix) - name? - f_has_dummy_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) -> 'bool' f_has_extra_cmts(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + + @param f: flags_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) -> 'bool' + f_has_name(f, arg2) -> bool Does the current byte have non-trivial (non-dummy) name? - f_has_name(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) -> 'bool' + f_has_user_name(F, arg2) -> bool Does the current byte have user-specified name? - f_has_user_name(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) -> 'bool' + f_has_xref(f, arg2) -> bool Does the current byte have cross-references to it? - f_has_xref(f, arg2) -> bool - @param f (C++: flags_t) - arg2: void * + @param f: (C++: flags_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) -> 'bool' - See 'is_align()' - f_is_align(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_align() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) -> 'bool' - See 'is_byte()' - f_is_byte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_byte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) -> 'bool' + f_is_code(F, arg2) -> bool Does flag denote start of an instruction? - f_is_code(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) -> 'bool' - See 'is_custom()' - f_is_custom(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_custom() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) -> 'bool' + f_is_data(F, arg2) -> bool Does flag denote start of data? - f_is_data(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) -> 'bool' - See 'is_double()' - f_is_double(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_double() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) -> 'bool' - See 'is_dword()' - f_is_dword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_dword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) -> 'bool' - See 'is_float()' - f_is_float(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_float() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) -> 'bool' + f_is_head(F, arg2) -> bool Does flag denote start of instruction OR data? - f_is_head(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) -> 'bool' + f_is_not_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_not_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) -> 'bool' - See 'is_oword()' - f_is_oword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_oword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) -> 'bool' - See 'is_pack_real()' - f_is_pack_real(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_pack_real() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) -> 'bool' - See 'is_qword()' - f_is_qword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_qword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) -> 'bool' - See 'is_strlit()' - f_is_strlit(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_strlit() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) -> 'bool' - See 'is_struct()' - f_is_struct(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_struct() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) -> 'bool' + f_is_tail(F, arg2) -> bool Does flag denote tail byte? - f_is_tail(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) -> 'bool' - See 'is_tbyte()' - f_is_tbyte(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_tbyte() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) -> 'bool' - See 'is_word()' - f_is_word(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_word() + + @param F: (C++: flags_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) -> 'bool' - See 'is_yword()' - f_is_yword(F, arg2) -> bool - @param F (C++: flags_t) - arg2: void * + See is_yword() + + @param F: (C++: flags_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) -> 'ea_t' - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - find_byte(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) -> 'ea_t' - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - find_byter(sEA, size, value, bin_search_flags) -> ea_t - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) -> 'int' + find_custom_data_format(name) -> int Get id of a custom data format. - find_custom_data_format(name) -> int - @param name: name of the custom data format (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data format + @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) -> 'int' + find_custom_data_type(name) -> int Get id of a custom data type. - find_custom_data_type(name) -> int - @param name: name of the custom data type (C++: const char *) - @return: id or -1 + @param name: (C++: const char *) name of the custom data type + @return: id or -1 Help on function float_flag in module ida_bytes: float_flag(*args) -> 'flags_t' + float_flag() -> flags_t Get a flags_t representing a float. Help on function flt_flag in module ida_bytes: flt_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + flt_flag() -> flags_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) -> 'ea_t' + free_chunk(bottom, size, step) -> ea_t Search for a hole in the addressing space of the program. - free_chunk(bottom, size, step) -> ea_t - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: (C++: ea_t) address to start searching + @param size: (C++: asize_t) size of desired block + @param step: (C++: int32) bit mask for the start of hole (0xF would align hole to a + paragraph). if 'step' is negative, the bottom address with be + aligned. otherwise the kernel will try to use it as is and align it + only when the hole is too small. + @return: start of the hole or BADADDR Help on function get_16bit in module ida_bytes: get_16bit(*args) -> 'uint32' + get_16bit(ea) -> uint32 Get 16bits of the program at 'ea'. - get_16bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) -> 'uint32' + get_32bit(ea) -> uint32 Get not more than 32bits of the program at 'ea'. - get_32bit(ea) -> uint32 - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) -> 'uint64' + get_64bit(ea) -> uint64 Get not more than 64bits of the program at 'ea'. - get_64bit(ea) -> uint64 - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint32 *) - @param nbit (C++: int *) + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - get_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) -> 'PyObject *' - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: @@ -1769,455 +1886,454 @@ get_bytes_and_mask(*args) -> 'PyObject *' get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) -> 'data_format_t const *' + get_custom_data_format(dfid) -> data_format_t Get definition of a registered custom data format. - get_custom_data_format(dfid) -> data_format_t - @param dfid: data format id (C++: int) - @return: data format definition or nullptr + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) -> 'int' + get_custom_data_formats(out, dtid) -> int Get list of attached custom data formats for the specified data type. - get_custom_data_formats(out, dtid) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) -> 'data_type_t const *' + get_custom_data_type(dtid) -> data_type_t Get definition of a registered custom data type. - get_custom_data_type(dtid) -> data_type_t - @param dtid: data type id (C++: int) - @return: data type definition or nullptr + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) -> 'int' + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int Get list of registered custom data type ids. - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - @param out: buffer for the output. may be nullptr (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) -> 'asize_t' + get_data_elsize(ea, F, ti=None) -> asize_t Get size of data type specified in flags 'F'. - get_data_elsize(ea, F, ti=None) -> asize_t - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) -> 'bool' - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - get_data_value(v, ea, size) -> bool - @param v: pointer to the result. may be nullptr (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) -> 'int' + get_default_radix() -> int Get default base of number for the current processor. + + @return: 2, 8, 10, 16 Help on function get_dword in module ida_bytes: get_dword(*args) -> 'uint32' - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_dword(ea) -> uint32 - @param ea (C++: ea_t) + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) -> 'uchar *' + get_enum_id(ea, n) -> enum_t Get enum id of 'enum' operand. - get_enum_id(ea, n) -> enum_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) -> 'hidden_range_t *' + get_first_hidden_range() -> hidden_range_t Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: get_flags(*args) -> 'flags_t' - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - get_flags(ea) -> flags_t - @param ea (C++: ea_t) + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: get_flags_by_size(*args) -> 'flags_t' - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - get_flags_by_size(size) -> flags_t - @param size (C++: size_t) + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: get_flags_ex(*args) -> 'flags_t' + get_flags_ex(ea, how) -> flags_t Get flags for the specified address, extended form. - get_flags_ex(ea, how) -> flags_t - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) -> 'asize_t' - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - get_full_data_elsize(ea, F, ti=None) -> asize_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: get_full_flags(*args) -> 'flags_t' + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) -> 'hidden_range_t *' + get_hidden_range(ea) -> hidden_range_t Get pointer to hidden range structure, in: linear address. - get_hidden_range(ea) -> hidden_range_t - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) -> 'int' + get_hidden_range_num(ea) -> int Get number of a hidden range. - get_hidden_range_num(ea) -> int - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) -> 'int' + get_hidden_range_qty() -> int Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: get_item_flag(*args) -> 'flags_t' - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - get_item_flag(_from, n, ea, appzero) -> flags_t - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) -> 'asize_t' - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - get_item_size(ea) -> asize_t - @param ea (C++: ea_t) + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) -> 'hidden_range_t *' + get_last_hidden_range() -> hidden_range_t Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' + get_mapping(n) -> bool Get memory mapping range by its number. - get_mapping(n) -> bool - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) -> 'size_t' + get_mappings_qty() -> size_t Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) -> 'size_t' - Determine maximum length of string literal.If the string literal has a - length prefix (e.g., STRTYPE_LEN2 has a two-byte length prefix), the - length of that prefix (i.e., 2) will be part of the returned value. - get_max_strlit_length(ea, strtype, options=0) -> size_t - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) -> 'hidden_range_t *' + get_next_hidden_range(ea) -> hidden_range_t Get pointer to next hidden range. - get_next_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) -> 'PyObject *' - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - + get_octet(ea, v, nbit) -> (int, int, int, int) + Get 8 bits of the program at 'ea'. The main usage of this function is to iterate + range of bytes. Here is an example: uint64 v; int nbit = 0; for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... + uchar byte = get_octet(&ea, &v, &nbit); + ... } + 'ea' is incremented each time when a new byte is read. In the above example, it + will be incremented in the first loop iteration. - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - get_octet(ea, v, nbit) -> PyObject * - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ea: (C++: ea_t *) ea_t + @param v: (C++: uint64 *) uint64 + @param nbit: (C++: int *) int Help on function get_opinfo in module ida_bytes: get_opinfo(*args) -> 'opinfo_t *' + get_opinfo(buf, ea, n, flags) -> opinfo_t Get additional information about an operand representation. - get_opinfo(buf, ea, n, flags) -> opinfo_t - @param buf: buffer to receive the result. may not be nullptr (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: nullptr if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: get_optype_flags0(*args) -> 'flags_t' + get_optype_flags0(F) -> flags_t Get flags for first operand. - get_optype_flags0(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) -> 'flags_t' + get_optype_flags1(F) -> flags_t Get flags for second operand. - get_optype_flags1(F) -> flags_t - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) -> 'uint64' - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - get_original_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) -> 'uint64' - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - get_original_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) -> 'uint64' - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - get_original_word(ea) -> uint64 - @param ea (C++: ea_t) + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) -> 'qstring *' + get_predef_insn_cmt(ins) -> str Get predefined comment. - get_predef_insn_cmt(ins) -> str - @param ins: current instruction information - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @return: size of comment or -1 + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) -> 'hidden_range_t *' + get_prev_hidden_range(ea) -> hidden_range_t Get pointer to previous hidden range. - get_prev_hidden_range(ea) -> hidden_range_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or nullptr if previous hidden range - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) -> 'int' - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - get_radix(F, n) -> int - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) -> 'PyObject *' - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, <u>and</u> the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2226,169 +2342,166 @@ get_strlit_contents(*args) -> 'PyObject *' Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) -> 'int' + get_stroff_path(path, delta, ea, n) -> int Get struct path of operand. - get_stroff_path(path, delta, ea, n) -> int - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) -> 'ushort' - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - get_word(ea) -> ushort - @param ea (C++: ea_t) + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) -> 'bool' - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - get_zero_ranges(zranges, range) -> bool - @param zranges: pointer to the return value. cannot be nullptr (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be nullptr - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) -> 'hidden_range_t *' + getn_hidden_range(n) -> hidden_range_t Get pointer to hidden range structure, in: number of hidden range. - getn_hidden_range(n) -> hidden_range_t - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) -> 'bool' + has_any_name(F) -> bool Does the current byte have any name? - has_any_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) -> 'bool' + has_auto_name(F) -> bool Does the current byte have auto-generated (no special prefix) name? - has_auto_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) -> 'bool' + has_cmt(F) -> bool Does the current byte have an indented comment? - has_cmt(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) -> 'bool' - Does the current byte have dummy (auto-generated, with special prefix) - name? - has_dummy_name(F) -> bool - @param F (C++: flags_t) + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) -> 'bool' + has_extra_cmts(F) -> bool Does the current byte have additional anterior or posterior lines? - has_extra_cmts(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_immd in module ida_bytes: has_immd(*args) -> 'bool' + has_immd(F) -> bool Has immediate value? - has_immd(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_name in module ida_bytes: has_name(*args) -> 'bool' + has_name(F) -> bool Does the current byte have non-trivial (non-dummy) name? - has_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) -> 'bool' + has_user_name(F) -> bool Does the current byte have user-specified name? - has_user_name(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_value in module ida_bytes: has_value(*args) -> 'bool' + has_value(F) -> bool Do flags contain byte value? - has_value(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function has_xref in module ida_bytes: has_xref(*args) -> 'bool' + has_xref(F) -> bool Does the current byte have cross-references to it? - has_xref(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function hex_flag in module ida_bytes: hex_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + hex_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2414,88 +2527,94 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2509,12 +2628,12 @@ class hidden_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -2524,1109 +2643,1086 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' - 'FF_ALIGN' - is_align(F) -> bool - @param F (C++: flags_t) + FF_ALIGN + + @param F: (C++: flags_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) -> 'bool' + is_attached_custom_data_format(dtid, dfid) -> bool Is the custom data format attached to the custom data type? - is_attached_custom_data_format(dtid, dfid) -> bool - @param dtid: data type id (C++: int) - @param dfid: data format id (C++: int) - @return: true or false + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - is_bnot(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) -> 'bool' - 'FF_BYTE' - is_byte(F) -> bool - @param F (C++: flags_t) + FF_BYTE + + @param F: (C++: flags_t) Help on function is_char in module ida_bytes: is_char(*args) -> 'bool' + is_char(F, n) -> bool is character constant? - is_char(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) -> 'bool' + is_char0(F) -> bool Is the first operand character constant? (example: push 'a') - is_char0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_char1 in module ida_bytes: is_char1(*args) -> 'bool' + is_char1(F) -> bool Is the second operand character constant? (example: mov al, 'a') - is_char1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_code in module ida_bytes: is_code(*args) -> 'bool' + is_code(F) -> bool Does flag denote start of an instruction? - is_code(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) -> 'bool' + is_custfmt(F, n) -> bool is custom data format? - is_custfmt(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) -> 'bool' + is_custfmt0(F) -> bool Does the first operand use a custom data representation? - is_custfmt0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) -> 'bool' + is_custfmt1(F) -> bool Does the second operand use a custom data representation? - is_custfmt1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' - 'FF_CUSTOM' - is_custom(F) -> bool - @param F (C++: flags_t) + FF_CUSTOM + + @param F: (C++: flags_t) Help on function is_data in module ida_bytes: is_data(*args) -> 'bool' + is_data(F) -> bool Does flag denote start of data? - is_data(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) -> 'bool' + is_defarg(F, n) -> bool is defined? - is_defarg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) -> 'bool' - Is the first operand defined? Initially operand has no defined - representation. - is_defarg0(F) -> bool - @param F (C++: flags_t) + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) -> 'bool' - Is the second operand defined? Initially operand has no defined - representation. - is_defarg1(F) -> bool - @param F (C++: flags_t) + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' - 'FF_DOUBLE' - is_double(F) -> bool - @param F (C++: flags_t) + FF_DOUBLE + + @param F: (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' - 'FF_DWORD' - is_dword(F) -> bool - @param F (C++: flags_t) + FF_DWORD + + @param F: (C++: flags_t) Help on function is_enum in module ida_bytes: is_enum(*args) -> 'bool' + is_enum(F, n) -> bool is enum? - is_enum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) -> 'bool' + is_enum0(F) -> bool Is the first operand a symbolic constant (enum member)? - is_enum0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) -> 'bool' + is_enum1(F) -> bool Is the second operand a symbolic constant (enum member)? - is_enum1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' - 'FF_FLOAT' - is_float(F) -> bool - @param F (C++: flags_t) + FF_FLOAT + + @param F: (C++: flags_t) Help on function is_float0 in module ida_bytes: is_float0(*args) -> 'bool' + is_float0(F) -> bool Is the first operand a floating point number? - is_float0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_float1 in module ida_bytes: is_float1(*args) -> 'bool' + is_float1(F) -> bool Is the second operand a floating point number? - is_float1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_flow in module ida_bytes: is_flow(*args) -> 'bool' - Does the previous instruction exist and pass execution flow to the - current byte? - is_flow(F) -> bool - @param F (C++: flags_t) + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) -> 'bool' + is_fltnum(F, n) -> bool is floating point number? - is_fltnum(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) -> 'bool' + is_forced_operand(ea, n) -> bool Is operand manually defined?. - is_forced_operand(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) -> 'bool' + is_func(F) -> bool Is function start? - is_func(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_head in module ida_bytes: is_head(*args) -> 'bool' + is_head(F) -> bool Does flag denote start of instruction OR data? - is_head(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) -> 'bool' - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - is_invsign(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) -> 'bool' + is_loaded(ea) -> bool Does the specified address have a byte value (is initialized?) - is_loaded(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) -> 'bool' - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - is_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Display leading zeroes in operands. The global switch for the leading zeroes is + in idainfo::s_genflags The leading zeroes doesn't work if the octal numbers + start with 0 Display leading zeroes? (takes into account idainfo::s_genflags) + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function is_manual in module ida_bytes: is_manual(*args) -> 'bool' - is forced operand? (use 'is_forced_operand()' ) - is_manual(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) -> 'bool' + is_manual_insn(ea) -> bool Is the instruction overridden? - is_manual_insn(ea) -> bool - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) -> 'bool' + is_mapped(ea) -> bool Is the specified address 'ea' present in the program? - is_mapped(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) -> 'bool' + is_not_tail(F) -> bool Does flag denote tail byte? - is_not_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop in module ida_bytes: is_numop(*args) -> 'bool' + is_numop(F, n) -> bool is number (bin, oct, dec, hex)? - is_numop(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) -> 'bool' + is_numop0(F) -> bool Is the first operand a number (i.e. binary, octal, decimal or hex?) - is_numop0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) -> 'bool' + is_numop1(F) -> bool Is the second operand a number (i.e. binary, octal, decimal or hex?) - is_numop1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off in module ida_bytes: is_off(*args) -> 'bool' + is_off(F, n) -> bool is offset? - is_off(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) -> 'bool' + is_off0(F) -> bool Is the first operand offset? (example: push offset xxx) - is_off0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_off1 in module ida_bytes: is_off1(*args) -> 'bool' + is_off1(F) -> bool Is the second operand offset? (example: mov ax, offset xxx) - is_off1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' - 'FF_OWORD' - is_oword(F) -> bool - @param F (C++: flags_t) + FF_OWORD + + @param F: (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' - 'FF_PACKREAL' - is_pack_real(F) -> bool - @param F (C++: flags_t) + FF_PACKREAL + + @param F: (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' - 'FF_QWORD' - is_qword(F) -> bool - @param F (C++: flags_t) + FF_QWORD + + @param F: (C++: flags_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) -> 'bool' + is_same_data_type(F1, F2) -> bool Do the given flags specify the same data type? - is_same_data_type(F1, F2) -> bool - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags_t) + @param F2: (C++: flags_t) Help on function is_seg in module ida_bytes: is_seg(*args) -> 'bool' + is_seg(F, n) -> bool is segment? - is_seg(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) -> 'bool' + is_seg0(F) -> bool Is the first operand segment selector? (example: push seg seg001) - is_seg0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) -> 'bool' + is_seg1(F) -> bool Is the second operand segment selector? (example: mov dx, seg dseg) - is_seg1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) -> 'bool' + is_stkvar(F, n) -> bool is stack variable? - is_stkvar(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) -> 'bool' + is_stkvar0(F) -> bool Is the first operand a stack variable? - is_stkvar0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) -> 'bool' + is_stkvar1(F) -> bool Is the second operand a stack variable? - is_stkvar1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' - 'FF_STRLIT' - is_strlit(F) -> bool - @param F (C++: flags_t) + FF_STRLIT + + @param F: (C++: flags_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) -> 'bool' + is_stroff(F, n) -> bool is struct offset? - is_stroff(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) -> 'bool' + is_stroff0(F) -> bool Is the first operand an offset within a struct? - is_stroff0(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) -> 'bool' + is_stroff1(F) -> bool Is the second operand an offset within a struct? - is_stroff1(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' - 'FF_STRUCT' - is_struct(F) -> bool - @param F (C++: flags_t) + FF_STRUCT + + @param F: (C++: flags_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) -> 'bool' + is_suspop(ea, F, n) -> bool is suspicious operand? - is_suspop(ea, F, n) -> bool - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) -> 'bool' + is_tail(F) -> bool Does flag denote tail byte? - is_tail(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' - 'FF_TBYTE' - is_tbyte(F) -> bool - @param F (C++: flags_t) + FF_TBYTE + + @param F: (C++: flags_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) -> 'bool' + is_unknown(F) -> bool Does flag denote unexplored byte? - is_unknown(F) -> bool - @param F (C++: flags_t) + @param F: (C++: flags_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) -> 'int' + is_varsize_item(ea, F, ti=None, itemsize=None) -> int Is the item at 'ea' variable size?. - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be nullptr). If - specified as nullptr, will be automatically retrieved from - the database (C++: const opinfo_t *) - @param itemsize: if not nullptr and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - @retval: 1 - varsize item - @retval: 0 - fixed item - @retval: -1 - error (bad data definition) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) -> 'bool' - 'FF_WORD' - is_word(F) -> bool - @param F (C++: flags_t) + FF_WORD + + @param F: (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' - 'FF_YWORD' - is_yword(F) -> bool - @param F (C++: flags_t) + FF_YWORD + + @param F: (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' - 'FF_ZWORD' - is_zword(F) -> bool - @param F (C++: flags_t) + FF_ZWORD + + @param F: (C++: flags_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) -> 'bool' + leading_zero_important(ea, n) -> bool Check if leading zeroes are important. - leading_zero_important(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) -> 'int' + nbits(ea) -> int Get number of bits in a byte at the given address. - nbits(ea) -> int - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) -> 'ea_t' + next_chunk(ea) -> ea_t Get the first address of next contiguous chunk in the program. - next_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) -> 'ea_t' + next_head(ea, maxea) -> ea_t Get start of next defined item. - next_head(ea, maxea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) -> 'ea_t' + next_inited(ea, maxea) -> ea_t Find the next initialized address. - next_inited(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) -> 'ea_t' - next_that(ea, maxea, callable) -> ea_t + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) -> 'ea_t' - Similar to 'next_that()' , but will find the next address that is - unexplored. - next_unknown(ea, maxea) -> ea_t - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_visea in module ida_bytes: next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t Get next visible address. - next_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: num_flag(*args) -> 'flags_t' + num_flag() -> flags_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: oct_flag(*args) -> 'flags_t' - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' + oct_flag() -> flags_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function off_flag in module ida_bytes: off_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + off_flag() -> flags_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) -> 'bool' - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - op_adds_xrefs(F, n) -> bool - @param F (C++: flags_t) - @param n (C++: int) + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) -> 'bool' + op_custfmt(ea, n, fid) -> bool Set custom data format for operand (fid-custom data format id) - op_custfmt(ea, n, fid) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) -> 'bool' - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - op_stroff(insn, n, path, path_len, delta) -> bool - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success Help on function oword_flag in module ida_bytes: oword_flag(*args) -> 'flags_t' + oword_flag() -> flags_t Get a flags_t representing a octaword. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) -> 'flags_t' + packreal_flag() -> flags_t Get a flags_t representing a packed decimal real. Help on function parse_binpat_str in module ida_bytes: parse_binpat_str(*args) -> 'qstring *' - Convert user-specified binary string to internal representation. The - 'in' parameter contains space-separated tokens: - + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: - numbers (numeric base is determined by 'radix') - - if value of number fits a byte, it is considered as a byte - - if value of number fits a word, it is considered as 2 bytes - - if value of number fits a dword,it is considered as 4 bytes + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes - "..." string constants - 'x' single-character constants - ? variable bytes - Note that string constants are surrounded with double quotes.Here are - a few examples (assuming base 16): + Note that string constants are surrounded with double quotes. + Here are a few examples (assuming base 16): CD 21 - bytes 0xCD, 0x21 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) "Hello", 0 - the null terminated string "Hello" L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 - parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str - @param out: a vector of compiled binary patterns, for use with - bin_search2() (C++: compiled_binpat_vec_t *) - @param ea: linear address to convert for (the conversion depends on - the address, because the number of bits in a byte depend on - the segment type) (C++: ea_t) - in: char const * - @param radix: numeric base of numbers (8,10,16) (C++: int) - @param strlits_encoding: the target encoding into which the string - literals present in 'in', should be encoded. - Can be any from [1, get_encoding_qty() ), or - the special values PBSENC_* (C++: int) - @return: false either in case of parsing error, or if at least one - requested target encoding couldn't encode the string literals - present in "in". + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) -> 'void' - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - patch_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) -> 'ea_t' + prev_chunk(ea) -> ea_t Get the last address of previous contiguous chunk in the program. - prev_chunk(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) -> 'ea_t' + prev_head(ea, minea) -> ea_t Get start of previous defined item. - prev_head(ea, minea) -> ea_t - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) -> 'ea_t' + prev_inited(ea, minea) -> ea_t Find the previous initialized address. - prev_inited(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) -> 'ea_t' - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - prev_that(ea, minea, callable) -> ea_t - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - callable: PyObject * - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) -> 'ea_t' - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - prev_unknown(ea, minea) -> ea_t - @param ea (C++: ea_t) - @param minea (C++: ea_t) + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_visea in module ida_bytes: prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t Get previous visible address. - prev_visea(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - print_strlit_type(strtype, flags=0) -> PyObject * - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) -> 'bool' - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - put_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) -> 'void' - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - put_bytes(ea, buf) - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) -> 'void' - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - put_dword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) -> 'void' - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - put_qword(ea, x) - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) -> 'void' - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - put_word(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint64) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: qword_flag(*args) -> 'flags_t' + qword_flag() -> flags_t Get a flags_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: @@ -3634,9 +3730,9 @@ Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) -> 'int' register_custom_data_format(py_df) -> int Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: @@ -3644,9 +3740,9 @@ Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) -> 'int' register_custom_data_type(py_dt) -> int Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3676,154 +3772,165 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' - Revert patched byte - revert_byte(ea) -> bool - @param ea (C++: ea_t) - @retval: true - byte was patched before and reverted now + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: seg_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + seg_flag() -> flags_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function set_immd in module ida_bytes: set_immd(*args) -> 'bool' - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - set_immd(ea) -> bool - @param ea (C++: ea_t) + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) -> 'bool' + set_lzero(ea, n) -> bool Set toggle lzero bit. - set_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) -> 'bool' + set_op_type(ea, type, n) -> bool (internal function) change representation of operand(s). - set_op_type(ea, type, n) -> bool - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @retval: 1 - ok - @retval: 0 - failed (applied to a tail byte) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) -> 'bool' - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: stkvar_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + stkvar_flag() -> flags_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: strlit_flag(*args) -> 'flags_t' + strlit_flag() -> flags_t Get a flags_t representing a string literal. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) -> 'flags_t' - see 'Bits: instruction operand types' + stroff_flag() -> flags_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: stru_flag(*args) -> 'flags_t' + stru_flag() -> flags_t Get a flags_t representing a struct. Help on function tbyte_flag in module ida_bytes: tbyte_flag(*args) -> 'flags_t' + tbyte_flag() -> flags_t Get a flags_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) -> 'bool' - Toggle binary negation of operand. also see 'is_bnot()' - toggle_bnot(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) -> 'bool' toggle_lzero(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) -> 'bool' unregister_custom_data_format(dfid) -> bool Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -3832,6 +3939,7 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) -> 'bool' unregister_custom_data_type(dtid) -> bool Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -3844,30 +3952,31 @@ unregister_data_types_and_formats(formats) Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) -> 'bool' - Update hidden range information in the database. You cannot use this - function to change the range boundaries - update_hidden_range(ha) -> bool - @param ha: range to update (C++: const hidden_range_t *) - @return: success + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) -> 'ea_t' + use_mapping(ea) -> ea_t Translate address according to current mappings. - use_mapping(ea) -> ea_t - @param ea: address to translate (C++: ea_t) - @return: translated address + @param ea: (C++: ea_t) address to translate + @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) -> 'int' visit_patched_bytes(ea1, ea2, py_callable) -> int Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -3878,562 +3987,30 @@ visit_patched_bytes(*args) -> 'int' Help on function word_flag in module ida_bytes: word_flag(*args) -> 'flags_t' + word_flag() -> flags_t Get a flags_t representing a word. Help on function yword_flag in module ida_bytes: yword_flag(*args) -> 'flags_t' + yword_flag() -> flags_t Get a flags_t representing a ymm word. Help on function zword_flag in module ida_bytes: zword_flag(*args) -> 'flags_t' + zword_flag() -> flags_t Get a flags_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -if string length is more than 4K, return the accumulated length -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -do not undefine the function start. Just delete xrefs, ops e.t.c. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -don't truncate the current function even if 'AF_TRFUNC' is set -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? -""" - -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" - -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" - -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_STRLIT -""" -string literal -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -try to read all bytes if this bit is not set, fail at first uninited -byte -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -outer offset base (combined with operand number). used only in set, -get, del_offset() functions -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings' window) -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(builtins.object) @@ -4445,7 +4022,8 @@ class DBG_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4453,112 +4031,122 @@ class DBG_Hooks(builtins.object) | delete_DBG_Hooks(self) | | dbg_bpt(self, *args) -> 'int' + | dbg_bpt(self, tid, bptea) -> int | A user defined breakpoint was reached. | - | dbg_bpt(self, tid, bptea) -> int - | @param tid (C++: thid_t) - | @param bptea (C++: ea_t) + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) -> 'void' + | dbg_bpt_changed(self, bptev_code, bpt) | Breakpoint has been changed. | - | dbg_bpt_changed(self, bptev_code, bpt) - | @param bptev_code: Breakpoint modification events (C++: int) - | @param bpt (C++: bpt_t *) + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exc_code: int - | exc_can_cont: bool - | exc_ea: ea_t - | exc_info: char const * + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) -> 'void' + | dbg_finished_loading_bpts(self) | Finished loading breakpoint info from idb. | | dbg_information(self, *args) -> 'void' | dbg_information(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | info: char const * + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_detach(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) -> 'void' - | This event notification is also an asynchronous function result - | notification for 'start_process()' ! - | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | modinfo_name: char const * - | modinfo_base: ea_t - | modinfo_size: asize_t + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' + | dbg_request_error(self, failed_command, failed_dbg_notification) | An error occurred during the processing of a request. | - | dbg_request_error(self, failed_command, failed_dbg_notification) - | @param failed_command (C++: ui_notification_t) - | @param failed_dbg_notification (C++: dbg_notification_t) + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) -> 'void' + | dbg_started_loading_bpts(self) | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) -> 'void' @@ -4571,32 +4159,34 @@ class DBG_Hooks(builtins.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) -> 'void' - | The process is now suspended.This event notification is also an - | asynchronous function result notification for 'suspend_process()' ! + | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) - | pid: pid_t - | tid: thid_t - | ea: ea_t - | exit_code: int + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) - | pid: pid_t - | tid: thid_t - | ea: ea_t + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) -> 'int' - | A step occurred (one instruction was executed). This event - | notification is only generated if step tracing is enabled. - | | dbg_trace(self, tid, ip) -> int - | @param tid: thread ID (C++: thid_t) - | @param ip: current instruction pointer. usually points after the - | executed instruction (C++: ea_t) - | @retval: 1 - do not log this trace event - | @retval: 0 - log it + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -4619,64 +4209,52 @@ class DBG_Hooks(builtins.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) -> 'void' add_path_mapping(src, dst) - @param src (C++: const char *) - @param dst (C++: const char *) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool - @param mod (C++: const modinfo_t *) + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4687,30 +4265,36 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bpt_location_t const & + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4718,61 +4302,67 @@ class bpt_location_t(builtins.object) | delete_bpt_location_t(self) | | compare(self, *args) -> 'int' - | Lexically compare two breakpoint locations. Bpt locations are first - | compared based on type (i.e. 'BPLT_ABS' < 'BPLT_REL' ). 'BPLT_ABS' - | locations are compared based on their ea values. For all other - | location types, locations are first compared based on their string - | (path/filename/symbol), then their offset/lineno. - | | compare(self, r) -> int - | @param r (C++: const bpt_location_t &) + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) -> 'ea_t' - | Get address ( 'BPLT_ABS' ) + | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) -> 'bool' - | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) -> 'int' - | Get line number ( 'BPLT_SRC' ) + | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) -> 'uval_t' - | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) -> 'char const *' - | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) | Specify an absolute address location. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, _offset) | Specify a relative address location. | - | set_rel_bpt(self, mod, _offset) - | @param mod (C++: const char *) - | @param _offset (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, _lineno) | Specify a source level location. | - | set_src_bpt(self, fn, _lineno) - | @param fn (C++: const char *) - | @param _lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, _symbol, _offset=0) | Specify a symbolic location. | - | set_sym_bpt(self, _symbol, _offset=0) - | @param _symbol (C++: const char *) - | @param _offset (C++: uval_t) + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) -> 'char const *' - | Get symbol name ( 'BPLT_SYM' ) + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) -> 'bpt_loctype_t' + | type(self) -> bpt_loctype_t | Get bpt type. | | ---------------------------------------------------------------------- @@ -4785,13 +4375,13 @@ class bpt_location_t(builtins.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4817,95 +4407,113 @@ class bpt_t(builtins.object) | delete_bpt_t(self) | | badbpt(self, *args) -> 'bool' + | badbpt(self) -> bool | Failed to write bpt to process memory? | | enabled(self, *args) -> 'bool' + | enabled(self) -> bool | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) -> 'size_t' | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) -> 'int' + | get_size(self) -> int | Get bpt size. | | is_absbpt(self, *args) -> 'bool' + | is_absbpt(self) -> bool | Is absolute address breakpoint? | | is_active(self, *args) -> 'bool' + | is_active(self) -> bool | Written completely to process? | | is_compiled(self, *args) -> 'bool' + | is_compiled(self) -> bool | Condition has been compiled? | | is_hwbpt(self, *args) -> 'bool' + | is_hwbpt(self) -> bool | Is hardware breakpoint? | | is_inactive(self, *args) -> 'bool' + | is_inactive(self) -> bool | Not written to process at all? | | is_low_level(self, *args) -> 'bool' + | is_low_level(self) -> bool | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) -> 'bool' + | is_page_bpt(self) -> bool | Page breakpoint? | | is_partially_active(self, *args) -> 'bool' + | is_partially_active(self) -> bool | Written partially to process? | | is_relbpt(self, *args) -> 'bool' + | is_relbpt(self) -> bool | Is relative address breakpoint? | | is_srcbpt(self, *args) -> 'bool' + | is_srcbpt(self) -> bool | Is source level breakpoint? | | is_symbpt(self, *args) -> 'bool' + | is_symbpt(self) -> bool | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) -> 'bool' + | is_tracemodebpt(self) -> bool | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) -> 'bool' + | is_traceoffbpt(self) -> bool | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) -> 'bool' + | is_traceonbpt(self) -> bool | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) -> 'bool' + | listbpt(self) -> bool | Include in the bpt list? | | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) | Set bpt location to an absolute address. | - | set_abs_bpt(self, a) - | @param a (C++: ea_t) + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, o) | Set bpt location to a relative address. | - | set_rel_bpt(self, mod, o) - | @param mod (C++: const char *) - | @param o (C++: uval_t) + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, lineno) | Set bpt location to a source line. | - | set_src_bpt(self, fn, lineno) - | @param fn (C++: const char *) - | @param lineno (C++: int) + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, sym, o) | Set bpt location to a symbol. | - | set_sym_bpt(self, sym, o) - | @param sym (C++: const char *) - | @param o (C++: uval_t) + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' + | set_trace_action(self, enable, trace_types) -> bool | Configure tracing options. | - | set_trace_action(self, enable, trace_types) -> bool - | @param enable (C++: bool) - | @param trace_types (C++: int) + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4916,47 +4524,50 @@ class bpt_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type Help on class bpt_vec_t in module ida_dbg: @@ -4967,11 +4578,14 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | x: qvector< bpt_t > const & + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -4983,22 +4597,23 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bpt_t const & + | + | @param i: size_t + | @param v: bpt_t const & | | __swig_destroy__ = delete_bpt_vec_t(...) | delete_bpt_vec_t(self) | | at(self, *args) -> 'bpt_t const &' | at(self, _idx) -> bpt_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -5011,16 +4626,16 @@ class bpt_vec_t(builtins.object) | | end(self, *args) -> 'qvector< bpt_t >::const_iterator' | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t - | it: qvector< bpt_t >::iterator | + | @param it: qvector< bpt_t >::iterator | | erase(self, first, last) -> bpt_t - | first: qvector< bpt_t >::iterator - | last: qvector< bpt_t >::iterator + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5030,47 +4645,56 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) - | x: bpt_t const & + | + | @param x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bpt_t * - | len: size_t + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t - | it: qvector< bpt_t >::iterator - | x: bpt_t const & + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) - | x: bpt_t const & + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bpt_t const & | + | @param _newsize: size_t + | @param x: bpt_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bpt_t > & + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5087,6 +4711,36 @@ class bpt_vec_t(builtins.object) | thisown | The membership flag +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) -> 'void' @@ -5095,158 +4749,163 @@ bring_debugger_to_front(*args) -> 'void' Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) -> 'qstring *' + choose_trace_file() -> str Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) -> 'void' + clear_requests_queue() Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) -> 'void' - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool - @param tid (C++: thid_t) - @param trace (C++: call_stack_t *) + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) -> 'bool' - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) -> 'source_view_t *' + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * Create a source code view. - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) -> 'bool' - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_bpt_tev(tid, ea, bp) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) -> 'void' - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_call_tev(tid, caller, callee) - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) -> 'void' - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_debug_event(event) - @param event (C++: debug_event_t *) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) -> 'bool' - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) -> 'bool' - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_many_tevs(new_tevs) -> bool - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) -> 'void' - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - dbg_add_ret_tev(tid, ret_insn, return_to) - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) -> 'void' - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_add_tev(type, tid, address) - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) -> 'void' - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - dbg_add_thread(tid) - @param tid (C++: thid_t) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - @param start_ea (C++: ea_t) - @param end_ea (C++: ea_t) - @param data (C++: const compiled_binpat_vec_t &) - @param srch_flags (C++: int) + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: @@ -5258,77 +4917,82 @@ dbg_can_query(*args) -> 'bool' - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) -> 'void' - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - dbg_del_thread(tid) - @param tid (C++: thid_t) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) -> 'bool' dbg_is_loaded() -> bool Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool - @param name (C++: const char *) + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool - @param base (C++: const ea_t) + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5339,11 +5003,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5369,43 +5034,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) - @param enable (C++: bool) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) -> 'bool' enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5416,7 +5098,8 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t - | _ea: ea_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5433,7 +5116,7 @@ class eval_ctx_t(builtins.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5441,92 +5124,97 @@ class eval_ctx_t(builtins.object) Help on function exist_bpt in module ida_dbg: exist_bpt(*args) -> 'bool' + exist_bpt(ea) -> bool Does a breakpoint exist at the given location? - exist_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) -> 'bool' - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - find_bpt(bptloc, bpt) -> bool - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) -> 'int' - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) -> 'bool' - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_bpt(ea, bpt) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) -> 'qstring *' get_bpt_group(bptloc) -> str - @param bptloc (C++: const bpt_location_t &) + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) -> 'char const *' - Helper function for 'bpt_location_t' . - get_bptloc_string(i) -> char const * - @param i (C++: int) + + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: @@ -5541,38 +5229,42 @@ get_current_source_line(*args) -> 'int' Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: get_dbg_byte(*args) -> 'bool' + get_dbg_byte(x, ea) -> bool Get one byte of the debugged process memory. - get_dbg_byte(x, ea) -> bool - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success + @param x: (C++: uint32 *) pointer to byte value + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) -> 'int' get_dbg_memory_info(ranges) -> int - @param ranges (C++: meminfo_vec_t *) + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) -> 'bool' - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - get_dbg_reg_info(regname, ri) -> bool - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) -> 'debug_event_t const *' + get_debug_event() -> debug_event_t Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5584,263 +5276,281 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) -> 'int' - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) -> 'bool' get_global_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) -> 'ssize_t' get_grp_bpts(bpts, grp_name) -> ssize_t - @param bpts (C++: bpt_vec_t *) - @param grp_name (C++: const char *) + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param output: bpts : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) -> 'bool' - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_mem(n, memmap) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) -> 'bool' - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_insn_tev_reg_result(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) -> 'bool' - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - get_insn_tev_reg_val(n, regname, regval) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) -> 'int' - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) -> 'bool' get_local_var(prov, ea, name, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param name (C++: const char *) - @param out (C++: source_item_ptr *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) -> 'bool' get_local_vars(prov, ea, out) -> bool - @param prov (C++: srcinfo_provider_t *) - @param ea (C++: ea_t) - @param out (C++: source_items_t *) + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) -> 'PyObject *' get_manual_regions(ranges) Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool - @param ea (C++: ea_t) - @param modinfo (C++: modinfo_t *) + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool - @param modinfo (C++: modinfo_t *) + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' - Get process options. Any of the arguments may be NULL + get_process_options() + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) -> 'int' get_reg_vals(tid, clsmask, values) -> int - @param tid (C++: thid_t) - @param clsmask (C++: int) - @param values (C++: regval_t *) + + @param tid: thid_t + @param clsmask: int + @param values: regval_t * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) -> 'dbg_notification_t' - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request Help on function get_running_request in module ida_dbg: get_running_request(*args) -> 'ui_notification_t' - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request Help on function get_sp_val in module ida_dbg: get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ - Get value of the SP register for the current thread. Requires a - suspended debugger. + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' get_srcinfo_provider(name) -> srcinfo_provider_t * - @param name (C++: const char *) + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) -> 'bool' - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - get_tev_event(n, d) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) -> 'bool' - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_tev_info(n, tev_info) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) -> 'bool' + get_tev_memory_info(n, mi) -> bool Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - get_tev_memory_info(n, mi) -> bool - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -5862,92 +5572,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) -> 'ea_t' - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace Help on function get_trace_dynamic_register_set in module ida_dbg: get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) Get dynamic register set of current trace. - get_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t *) + @param idaregs: (C++: dynamic_register_set_t *) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) -> 'char const *' + get_trace_platform() -> char const * Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) -> 'bool' - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - getn_bpt(n, bpt) -> bool - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) -> 'bool' + graph_trace() -> bool Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) -> 'int' handle_debug_event(ev, rqflags) -> int - @param ev (C++: const debug_event_t *) - @param rqflags (C++: int) + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -5960,45 +5677,48 @@ internal_get_sreg_base(*args) -> 'ea_t' internal_get_sreg_base(tid, sreg_value) -> ea_t Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int - @param fn (C++: int) - @param buf (C++: const void *) - @param poutbuf (C++: void **) - @param poutsize (C++: ssize_t *) + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) -> 'int' - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - invalidate_dbg_state(dbginv) -> int - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) -> 'void' - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) -> 'void' - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - invalidate_dbgmem_contents(ea, size) - @param ea (C++: ea_t) - @param size (C++: asize_t) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6008,105 +5728,117 @@ is_bblk_trace_enabled(*args) -> 'bool' Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) -> 'bool' - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) -> 'bool' + is_debugger_memory(ea) -> bool Is the address mapped to debugger memory? - is_debugger_memory(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) -> 'bool' + is_debugger_on() -> bool Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) -> 'bool' - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) -> 'bool' - Get current state of instruction tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) -> 'bool' - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - is_reg_custom(regname) -> bool - @param regname (C++: const char *) + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) -> 'bool' - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_float(regname) -> bool - @param regname (C++: const char *) + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) -> 'bool' - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - is_reg_integer(regname) -> bool - @param regname (C++: const char *) + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) -> 'bool' + is_request_running() -> bool Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) -> 'bool' - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - @param bptgrps (C++: qstrvec_t *) + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param output: bptgrps list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6139,7 +5871,7 @@ class memreg_info_t(builtins.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6153,11 +5885,14 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | x: qvector< memreg_info_t > const & + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6169,22 +5904,23 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: memreg_info_t const & + | + | @param i: size_t + | @param v: memreg_info_t const & | | __swig_destroy__ = delete_memreg_infos_t(...) | delete_memreg_infos_t(self) | | at(self, *args) -> 'memreg_info_t const &' | at(self, _idx) -> memreg_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -6197,16 +5933,16 @@ class memreg_infos_t(builtins.object) | | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator | + | @param it: qvector< memreg_info_t >::iterator | | erase(self, first, last) -> memreg_info_t - | first: qvector< memreg_info_t >::iterator - | last: qvector< memreg_info_t >::iterator + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6216,47 +5952,56 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: memreg_info_t * - | len: size_t + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t - | it: qvector< memreg_info_t >::iterator - | x: memreg_info_t const & + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) - | x: memreg_info_t const & + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: memreg_info_t const & | + | @param _newsize: size_t + | @param x: memreg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< memreg_info_t > & + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6273,94 +6018,109 @@ class memreg_infos_t(builtins.object) | thisown | The membership flag -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) -> 'void' - move_bpt_to_grp(bpt, grp_name) - Sets new group for the breakpoint +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t - @param ea (C++: ea_t) - @param buffer (C++: void *) - @param size (C++: size_t) + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool - @param old_name (C++: const char *) - @param new_name (C++: const char *) + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) -> 'bool' - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + Post an add_bpt(const bpt_t &) request. + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t request_add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) -> 'int' - Post an 'attach_process()' request. - request_attach_process(pid, event_id) -> int - @param pid (C++: pid_t) - @param event_id (C++: int) + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) -> 'void' - Post a 'clear_trace()' request. + request_clear_trace() + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) -> 'bool' - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' - Post a 'del_bpt(ea_t)' request. - request_del_bpt(ea) -> bool - @param ea (C++: ea_t) + Post a del_bpt(const bpt_location_t &) request. + @param ea: ea_t request_del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) -> 'bool' - Post a 'detach_process()' request. + request_detach_process() -> bool + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6371,11 +6131,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool - @param ea (C++: ea_t) + @param ea: ea_t request_disable_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6396,223 +6157,233 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) -> 'bool' request_enable_bblk_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) -> 'bool' request_enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool request_enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) -> 'bool' request_enable_func_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) -> 'bool' request_enable_insn_trace(enable=True) -> bool - @param enable (C++: bool) + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) -> 'bool' request_enable_step_trace(enable=1) -> bool - @param enable (C++: int) + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) -> 'bool' - Post an 'exit_process()' request. + request_exit_process() -> bool + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) -> 'int' - Post a 'resume_thread()' request. - request_resume_thread(tid) -> int - @param tid (C++: thid_t) + Post a resume_thread() request. + + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) -> 'bool' - Post a 'run_to()' request. - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) -> 'bool' - Post a 'select_thread()' request. - request_select_thread(tid) -> bool - @param tid (C++: thid_t) + Post a select_thread() request. + + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) -> 'void' - Post a 'set_bblk_trace_options()' request. - request_set_bblk_trace_options(options) - @param options (C++: int) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) -> 'void' - Post a 'set_func_trace_options()' request. - request_set_func_trace_options(options) - @param options (C++: int) + Post a set_func_trace_options() request. + + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) -> 'void' - Post a 'set_insn_trace_options()' request. - request_set_insn_trace_options(options) - @param options (C++: int) + Post a set_insn_trace_options() request. + + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) -> 'PyObject *' - Post a 'set_reg_val()' request. - request_set_reg_val(regname, o) -> PyObject * - @param regname (C++: const char *) - o: PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) -> 'bool' - Post a 'set_resume_mode()' request. - request_set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) -> 'void' - Post a 'set_step_trace_options()' request. - request_set_step_trace_options(options) - @param options (C++: int) + Post a set_step_trace_options() request. + + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) -> 'int' - Post a 'start_process()' request. - request_start_process(path=None, args=None, sdir=None) -> int - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) -> 'bool' - Post a 'step_into()' request. + request_step_into() -> bool + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) -> 'bool' - Post a 'step_over()' request. + request_step_over() -> bool + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) -> 'bool' - Post a 'step_until_ret()' request. + request_step_until_ret() -> bool + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) -> 'bool' - Post a 'suspend_process()' request. + request_suspend_process() -> bool + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) -> 'int' - Post a 'suspend_thread()' request. - request_suspend_thread(tid) -> int - @param tid (C++: thid_t) + Post a suspend_thread() request. + + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) -> 'excvec_t *' - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) -> 'bool' - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6628,214 +6399,205 @@ send_dbg_command(command) Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) -> 'void' - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - set_bblk_trace_options(options) - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) -> 'void' - set_bpt_group(bpt, grp_name) - @param bpt (C++: bpt_t &) - @param grp_name (C++: const char *) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool - @param bptloc (C++: const bpt_location_t &) - @param grp_name (C++: const char *) + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) -> 'int' - Helper function for 'bpt_location_t' . - set_bptloc_string(s) -> int - @param s (C++: const char *) + + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) -> 'void' - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_func_trace_options(options) - @param options (C++: int) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) -> 'void' + set_highlight_trace_options(hilight, color, diff) Set highlight trace parameters. - set_highlight_trace_options(hilight, color, diff) - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) -> 'void' - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_insn_trace_options(options) - @param options (C++: int) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) -> 'void' set_manual_regions(ranges) - @param ranges (C++: const meminfo_vec_t *) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) -> 'void' - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - set_process_options(path, args, sdir, host, _pass, port) - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - pass: char const * - @param port (C++: int) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) -> 'int' - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - set_process_state(newstate, p_thid, dbginv) -> int - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) -> 'PyObject *' - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - set_reg_val(regname, o) -> PyObject - @param regname (C++: const char *) - o: PyObject * + @param regname: char const * + @param o: PyObject * - set_reg_val(tid, regidx, o) -> PyObject * - tid: thid_t - regidx: int - o: PyObject * + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) -> 'bool' - How to resume the application. Set resume mode but do not resume - process. - set_resume_mode(tid, mode) -> bool - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) -> 'void' - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - set_trace_base_address(ea) - @param ea (C++: ea_t) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) Help on function set_trace_dynamic_register_set in module ida_dbg: set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) Set dynamic register set of current trace. - set_trace_dynamic_register_set(idaregs) - @param idaregs (C++: dynamic_register_set_t &) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) -> 'void' + set_trace_platform(platform) Set platform name of current trace. - set_trace_platform(platform) - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) -> 'bool' - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - set_trace_size(size) -> bool - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -6870,74 +6632,79 @@ srcdbg_step_until_ret(*args) -> 'bool' Help on function start_process in module ida_dbg: start_process(*args) -> 'int' - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) -> 'bool' - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -6964,10 +6731,10 @@ class tev_info_reg_t(builtins.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -6997,16 +6764,16 @@ class tev_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type Help on class tev_reg_value_t in module ida_dbg: @@ -7017,8 +6784,9 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | _reg_idx: int - | _value: uint64 + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7035,13 +6803,13 @@ class tev_reg_value_t(builtins.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value Help on class tev_reg_values_t in module ida_dbg: @@ -7052,11 +6820,14 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | x: qvector< tev_reg_value_t > const & + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7068,22 +6839,23 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tev_reg_value_t const & + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | __swig_destroy__ = delete_tev_reg_values_t(...) | delete_tev_reg_values_t(self) | | at(self, *args) -> 'tev_reg_value_t const &' | at(self, _idx) -> tev_reg_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7096,16 +6868,16 @@ class tev_reg_values_t(builtins.object) | | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator | + | @param it: qvector< tev_reg_value_t >::iterator | | erase(self, first, last) -> tev_reg_value_t - | first: qvector< tev_reg_value_t >::iterator - | last: qvector< tev_reg_value_t >::iterator + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7115,47 +6887,56 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tev_reg_value_t * - | len: size_t + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t - | it: qvector< tev_reg_value_t >::iterator - | x: tev_reg_value_t const & + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_reg_value_t &' | push_back(self, x) - | x: tev_reg_value_t const & + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_reg_value_t const & | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tev_reg_value_t > & + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7181,11 +6962,14 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | x: qvector< tev_info_reg_t > const & + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7197,22 +6981,23 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tev_info_reg_t const & + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | __swig_destroy__ = delete_tevinforeg_vec_t(...) | delete_tevinforeg_vec_t(self) | | at(self, *args) -> 'tev_info_reg_t const &' | at(self, _idx) -> tev_info_reg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7225,16 +7010,16 @@ class tevinforeg_vec_t(builtins.object) | | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator | + | @param it: qvector< tev_info_reg_t >::iterator | | erase(self, first, last) -> tev_info_reg_t - | first: qvector< tev_info_reg_t >::iterator - | last: qvector< tev_info_reg_t >::iterator + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7244,47 +7029,56 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tev_info_reg_t * - | len: size_t + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t - | it: qvector< tev_info_reg_t >::iterator - | x: tev_info_reg_t const & + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_info_reg_t &' | push_back(self, x) - | x: tev_info_reg_t const & + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tev_info_reg_t const & | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tev_info_reg_t > & + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7304,413 +7098,74 @@ class tevinforeg_vec_t(builtins.object) Help on function update_bpt in module ida_dbg: update_bpt(*args) -> 'bool' - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - update_bpt(bpt) -> bool - @param bpt (C++: const bpt_t *) + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - @param ea (C++: ea_t) - py_buf: PyObject * - @param size (C++: size_t) + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -fake pending bpt: it is inactive but another bpt of the same type is -active at the same address(es) -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -written to the process as a page bpt. is available only after writing -the bpt to the process. -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -specific options for basic block tracing (see -'set_bblk_trace_options()' ) - -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_FAST_STEP -""" -prevent debugger memory refreshes when single-stepping -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts +Module "ida_dirtree"s docstring: """ +Types involved in grouping of item into folders. -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -specific options for function tracing (see 'set_func_trace_options()' -) - -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -specific options for instruction tracing (see -'set_insn_trace_options()' ) - -instruction tracing will log new instructions even when IP doesn't -change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions (not previously logged) -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -do not wait for any event, immediately return 'DEC_TIMEOUT' (to be -used with 'WFNE_CONT' ) -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -timeout is specified in microseconds (minimum non-zero timeout is -40000us) -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: class direntry_t(builtins.object) @@ -7720,20 +7175,24 @@ class direntry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __init__(self, *args) | __init__(self, i=BADIDX, d=False) -> direntry_t - | i: uval_t - | d: bool + | + | @param i: uval_t + | @param d: bool | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: direntry_t const & + | + | @param r: direntry_t const & | | __repr__ = _swig_repr(self) | @@ -7753,10 +7212,10 @@ class direntry_t(builtins.object) | list of weak references to the object (if defined) | | idx - | direntry_t_idx_get(self) -> uval_t + | idx | | isdir - | direntry_t_isdir_get(self) -> bool + | isdir | | thisown | The membership flag @@ -7779,15 +7238,19 @@ class direntry_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __getitem__(self, *args) -> 'direntry_t const &' | __getitem__(self, i) -> direntry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> direntry_vec_t - | x: qvector< direntry_t > const & + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7797,36 +7260,42 @@ class direntry_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< direntry_t > const & + | + | @param r: qvector< direntry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: direntry_t const & + | + | @param i: size_t + | @param v: direntry_t const & | | __swig_destroy__ = delete_direntry_vec_t(...) | delete_direntry_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: direntry_t const & + | + | Parameters + | ---------- + | x: direntry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | at(self, *args) -> 'direntry_t const &' | at(self, _idx) -> direntry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' | begin(self) -> direntry_t - | begin(self) -> direntry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7839,78 +7308,85 @@ class direntry_vec_t(builtins.object) | | end(self, *args) -> 'qvector< direntry_t >::const_iterator' | end(self) -> direntry_t - | end(self) -> direntry_t | | erase(self, *args) -> 'qvector< direntry_t >::iterator' | erase(self, it) -> direntry_t - | it: qvector< direntry_t >::iterator | + | @param it: qvector< direntry_t >::iterator | | erase(self, first, last) -> direntry_t - | first: qvector< direntry_t >::iterator - | last: qvector< direntry_t >::iterator + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator | | extract(self, *args) -> 'direntry_t *' | extract(self) -> direntry_t | | find(self, *args) -> 'qvector< direntry_t >::const_iterator' | find(self, x) -> direntry_t - | x: direntry_t const & | - | - | find(self, x) -> direntry_t - | x: direntry_t const & + | @param x: direntry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=direntry_t()) - | x: direntry_t const & + | + | @param x: direntry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: direntry_t const & + | + | @param x: direntry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: direntry_t * - | len: size_t + | + | @param s: direntry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< direntry_t >::iterator' | insert(self, it, x) -> direntry_t - | it: qvector< direntry_t >::iterator - | x: direntry_t const & + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'direntry_t &' | push_back(self, x) - | x: direntry_t const & + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: direntry_t const & | + | @param _newsize: size_t + | @param x: direntry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< direntry_t > & + | + | @param r: qvector< direntry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7943,8 +7419,9 @@ class dirspec_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, f=0) -> dirspec_t - | nm: char const * - | f: uint32 + | + | @param nm: char const * + | @param f: uint32 | | __repr__ = _swig_repr(self) | @@ -7953,36 +7430,39 @@ class dirspec_t(builtins.object) | | get_attrs(self, *args) -> 'qstring' | get_attrs(self, inode) -> qstring - | @param inode (C++: inode_t) + | + | @param inode: inode_t | | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t | get the entry inode in the specified directory | - | get_inode(self, diridx, name) -> inode_t - | @param diridx (C++: diridx_t) - | @param name (C++: const char *) - | @return: the entry inode + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode | | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool | get the entry name. for example, the structure name | - | get_name(self, inode) -> bool - | @param inode (C++: inode_t) - | @return: false if the entry does not exist. + | @param out: (C++: qstring *) may be nullptr; in this case get_name can be used to validate an + | inode. + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. | | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool | rename the entry | - | rename_inode(self, inode, newname) -> bool - | @param inode (C++: inode_t) - | @param newname (C++: const char *) - | @return: success + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success | | unlink_inode(self, *args) -> 'void' - | event: unlinked an inode - | | unlink_inode(self, inode) - | @param inode (C++: inode_t) + | + | @param inode: (C++: inode_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -7994,10 +7474,13 @@ class dirspec_t(builtins.object) | list of weak references to the object (if defined) | | flags - | dirspec_t_flags_get(self) -> uint32 + | flags + | + | id + | id | | nodename - | dirspec_t_nodename_get(self) -> qstring * + | id | | thisown | The membership flag @@ -8018,32 +7501,39 @@ class dirtree_cursor_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __init__(self, *args) | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t - | _parent: diridx_t - | _rank: size_t + | + | @param _parent: diridx_t + | @param _rank: size_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | __repr__ = _swig_repr(self) | @@ -8052,7 +7542,8 @@ class dirtree_cursor_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: dirtree_cursor_t const & + | + | @param r: dirtree_cursor_t const & | | is_root_cursor(self, *args) -> 'bool' | is_root_cursor(self) -> bool @@ -8079,10 +7570,10 @@ class dirtree_cursor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | dirtree_cursor_t_parent_get(self) -> diridx_t + | parent | | rank - | dirtree_cursor_t_rank_get(self) -> size_t + | rank | | thisown | The membership flag @@ -8106,15 +7597,19 @@ class dirtree_cursor_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) -> 'dirtree_cursor_t const &' | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> dirtree_cursor_vec_t - | x: qvector< dirtree_cursor_t > const & + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8124,36 +7619,42 @@ class dirtree_cursor_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) | delete_dirtree_cursor_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) -> 'dirtree_cursor_t const &' | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -8166,78 +7667,85 @@ class dirtree_cursor_vec_t(builtins.object) | | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) -> 'dirtree_cursor_t *' | extract(self) -> dirtree_cursor_t | | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'dirtree_cursor_t &' | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -8284,10 +7792,10 @@ class dirtree_iterator_t(builtins.object) | list of weak references to the object (if defined) | | cursor - | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | cursor | | pattern - | dirtree_iterator_t_pattern_get(self) -> qstring * + | pattern | | thisown | The membership flag @@ -8323,11 +7831,13 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __getitem__(self, *args) -> 'dirtree_cursor_t const &' | __getitem__(self, i) -> dirtree_cursor_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -8337,31 +7847,37 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< dirtree_cursor_t > const & + | + | @param r: qvector< dirtree_cursor_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: dirtree_cursor_t const & + | + | @param i: size_t + | @param v: dirtree_cursor_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: dirtree_cursor_t const & + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | at(self, *args) -> 'dirtree_cursor_t const &' | at(self, _idx) -> dirtree_cursor_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | begin(self) -> dirtree_cursor_t - | begin(self) -> dirtree_cursor_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -8374,78 +7890,85 @@ class dirtree_selection_t(dirtree_cursor_vec_t) | | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | end(self) -> dirtree_cursor_t - | end(self) -> dirtree_cursor_t | | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | erase(self, it) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator | + | @param it: qvector< dirtree_cursor_t >::iterator | | erase(self, first, last) -> dirtree_cursor_t - | first: qvector< dirtree_cursor_t >::iterator - | last: qvector< dirtree_cursor_t >::iterator + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator | | extract(self, *args) -> 'dirtree_cursor_t *' | extract(self) -> dirtree_cursor_t | | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & | - | - | find(self, x) -> dirtree_cursor_t - | x: dirtree_cursor_t const & + | @param x: dirtree_cursor_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=dirtree_cursor_t()) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: dirtree_cursor_t * - | len: size_t + | + | @param s: dirtree_cursor_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' | insert(self, it, x) -> dirtree_cursor_t - | it: qvector< dirtree_cursor_t >::iterator - | x: dirtree_cursor_t const & + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'dirtree_cursor_t &' | push_back(self, x) - | x: dirtree_cursor_t const & + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: dirtree_cursor_t const & | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< dirtree_cursor_t > & + | + | @param r: qvector< dirtree_cursor_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -8473,7 +7996,8 @@ class dirtree_t(builtins.object) | | __init__(self, *args) | __init__(self, ds) -> dirtree_t - | ds: dirspec_t * + | + | @param ds: dirspec_t * | | __repr__ = _swig_repr(self) | @@ -8481,203 +8005,235 @@ class dirtree_t(builtins.object) | delete_dirtree_t(self) | | change_rank(self, *args) -> 'dterr_t' - | Change ordering rank of an item.All subdirectories go before all file - | entries. - | | change_rank(self, path, rank_delta) -> dterr_t - | @param path: path to the item (C++: const char *) - | @param rank_delta (C++: ssize_t) - | @return: dterr_t error code + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param delta: the amount of the change. positive numbers mean to move down in + | the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. | | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t | Change current directory | - | chdir(self, path) -> dterr_t - | @param path: new current directory (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param directory: entry + | @return: cursor corresponding to the directory entry | | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool | Start iterating over files in a directory | - | findfirst(self, ff, pattern) -> bool - | @param ff: directory iterator. it will be initialized by the function - | (C++: dirtree_iterator_t *) - | @param pattern: pattern to search for (C++: const char *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success | | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool | Continue iterating over files in a directory | - | findnext(self, ff) -> bool - | @param ff: directory iterator (C++: dirtree_iterator_t *) - | @return: success + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success | | get_abspath(self, *args) -> 'qstring' - | Get absolute path pointed by the cursorsee also 'resolve_cursor()' - | | get_abspath(self, cursor) -> qstring - | @param cursor (C++: const dirtree_cursor_t &) - | @return: path. empty path means wrong directory part of RELPATH + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. | + | @param cursor: dirtree_cursor_t const & | + | @return: path. empty path means wrong directory part of RELPATH | get_abspath(self, relpath) -> qstring - | relpath: char const * - | @return: path. empty path means wrong directory part of RELPATH + | + | @param relpath: char const * | | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t | Get dir size | - | get_dir_size(self, diridx) -> ssize_t - | @param diridx: directory index (C++: diridx_t) - | @return: number of entries under this directory; if error, return -1 + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 | | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring | Get entry attributes | - | get_entry_attrs(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @return: name | | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring | Get entry name | - | get_entry_name(self, de) -> qstring - | @param de: directory entry (C++: const direntry_t &) - | @return: name + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name | - | get_nodename(self, *args) -> 'char const *' + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * | netnode name | + | get_nodename = get_id(self, *args) -> 'char const *' + | | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t | Get parent cursor. | - | get_parent_cursor(self, cursor) -> dirtree_cursor_t - | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) - | @return: cursor's parent + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent | | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t | Get ordering rank of an item. | - | get_rank(self, diridx, de) -> ssize_t - | @param diridx: index of the parent directory (C++: diridx_t) - | @param de: directory entry (C++: const direntry_t &) - | @return: number in a range of [0..n) where n is the number of entries - | in the parent directory. -1 if error + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error | | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring | Get current directory + | + | @return: the current working directory | | isdir(self, *args) -> 'bool' - | Is a directory? - | | isdir(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a directory | + | @param de: direntry_t const & | | isdir(self, path) -> bool - | path: char const * - | @return: true if the specified path is a directory + | + | @param path: char const * | | isfile(self, *args) -> 'bool' - | Is a file? - | | isfile(self, de) -> bool - | de: direntry_t const & - | @return: true if the specified path is a file | + | @param de: direntry_t const & | | isfile(self, path) -> bool - | path: char const * - | @return: true if the specified path is a file + | + | @param path: char const * | | link(self, *args) -> 'dterr_t' - | Add a file item into a directory. - | | link(self, path) -> dterr_t - | @param path: path to item to add to a directory (C++: const char *) - | @return: dterr_t error code + | Add an inode into the current directory | + | @param path: char const * | + | @return: dterr_t error code | link(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | load(self, *args) -> 'bool' - | Load the tree structure from the netnode. If dirspec_t::nodename is - | empty, the operation will be considered a success. In addition, - | calling 'load()' more than once will not do anything, and will be - | considered a success.dirspec_t::nodename. + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. | | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t | Create a directory. | - | mkdir(self, path) -> dterr_t - | @param path: directory to create (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code | | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) | Notify dirtree about a change of an inode. | - | notify_dirtree(self, added, inode) - | @param added (C++: bool) - | @param inode: inode in question (C++: inode_t) + | @param add: are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question | | rename(self, *args) -> 'dterr_t' - | Rename a directory entry.This function can also rename the item - | | rename(self, _from, to) -> dterr_t - | @param _from: source path (C++: const char *) - | @param to: destination path (C++: const char *) - | @return: dterr_t error code + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item | | resolve_cursor(self, *args) -> 'direntry_t' - | Resolve cursorsee also 'get_abspath()' - | | resolve_cursor(self, cursor) -> direntry_t - | @param cursor: to analyze (C++: const dirtree_cursor_t &) - | @return: directory entry; if the cursor is bad, the resolved entry - | will be invalid. + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() | | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t | Resolve path | - | resolve_path(self, path) -> direntry_t - | @param path: to analyze (C++: const char *) - | @return: directory entry + | @param path: (C++: const char *) to analyze + | @return: directory entry | | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t | Remove a directory. | - | rmdir(self, path) -> dterr_t - | @param path: directory to delete (C++: const char *) - | @return: dterr_t error code + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code | | save(self, *args) -> 'bool' - | Save the tree structure to the netnode.dirspec_t::nodename. + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. | - | set_nodename(self, *args) -> 'void' - | set_nodename(self, nm) - | @param nm (C++: const char *) + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned | | unlink(self, *args) -> 'dterr_t' - | Remove a file item from a directory. - | | unlink(self, path) -> dterr_t - | @param path: path to item remove from a directory (C++: const char *) - | @return: dterr_t error code + | Remove an inode from the current directory | + | @param path: char const * | + | @return: dterr_t error code | unlink(self, inode) -> dterr_t - | inode: inode_t - | @return: dterr_t error code + | + | @param inode: inode_t | | ---------------------------------------------------------------------- | Static methods defined here: | | errstr(*args) -> 'char const *' | errstr(err) -> char const * - | err: enum dterr_t + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8695,21 +8251,73 @@ Help on function dirtree_t_errstr in module ida_dirtree: dirtree_t_errstr(*args) -> 'char const *' dirtree_t_errstr(err) -> char const * - err: enum dterr_t + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag Help on function get_std_dirtree in module ida_dirtree: get_std_dirtree(*args) -> 'dirtree_t *' get_std_dirtree(id) -> dirtree_t - @param id (C++: dirtree_id_t) + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" Help on function choose_ioport_device2 in module ida_diskio: choose_ioport_device2(*args) -> 'bool' choose_ioport_device2(_device, file, parse_params) -> bool - @param _device (C++: qstring *) - @param file (C++: const char *) - @param parse_params (C++: choose_ioport_parser_t *) + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * Help on class choose_ioport_parser_t in module ida_diskio: @@ -8722,7 +8330,8 @@ class choose_ioport_parser_t(builtins.object) | | __init__(self, *args) | __init__(self) -> choose_ioport_parser_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8731,11 +8340,12 @@ class choose_ioport_parser_t(builtins.object) | | parse(self, *args) -> 'bool' | parse(self, param, line) -> bool - | @param param (C++: qstring *) - | @param line (C++: const char *) - | @retval: true - and fill PARAM with a displayed string - | @retval: false - and empty PARAM to skip the current device - | @retval: false - and fill PARAM with an error message + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8752,69 +8362,70 @@ class choose_ioport_parser_t(builtins.object) Help on function close_linput in module ida_diskio: close_linput(*args) -> 'void' + close_linput(li) Close loader input. - close_linput(li) - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) -> 'linput_t *' + create_bytearray_linput(s) -> linput_t * Trivial memory linput. - create_bytearray_linput(s) -> linput_t * - s: qstring const & + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) -> 'linput_t *' + create_generic_linput(gl) -> linput_t * Create a generic linput - create_generic_linput(gl) -> linput_t * - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) -> 'linput_t *' - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - create_memory_linput(start, size) -> linput_t * - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) -> 'void' eclose(fp) - @param fp (C++: FILE *) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) -> 'PyObject *' enumerate_files(path, fname, callback) -> PyObject * Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero Help on function enumerate_files2 in module ida_diskio: enumerate_files2(*args) -> 'int' enumerate_files2(answer, answer_size, path, fname, fv) -> int - @param answer (C++: char *) - @param answer_size (C++: size_t) - @param path (C++: const char *) - @param fname (C++: const char *) - @param fv (C++: file_enumerator_t &) + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & Help on class file_enumerator_t in module ida_diskio: @@ -8827,7 +8438,8 @@ class file_enumerator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> file_enumerator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8836,7 +8448,8 @@ class file_enumerator_t(builtins.object) | | visit_file(self, *args) -> 'int' | visit_file(self, file) -> int - | @param file (C++: const char *) + | + | @param file: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8853,58 +8466,58 @@ class file_enumerator_t(builtins.object) Help on function fopenA in module ida_diskio: fopenA(*args) -> 'FILE *' + fopenA(file) -> FILE * Open a file for append in text mode, deny none. - fopenA(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) -> 'FILE *' + fopenM(file) -> FILE * Open a file for read/write in binary mode, deny write. - fopenM(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) -> 'FILE *' + fopenRB(file) -> FILE * Open a file for read in binary mode, deny none. - fopenRB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) -> 'FILE *' + fopenRT(file) -> FILE * Open a file for read in text mode, deny none. - fopenRT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) -> 'FILE *' - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - fopenWB(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) -> 'FILE *' - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - fopenWT(file) -> FILE * - @param file (C++: const char *) - @return: NULL if failure + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8923,9 +8536,10 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t - | @param off (C++: qoff64_t) - | @param buffer (C++: void *) - | @param nbytes (C++: size_t) + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8937,10 +8551,10 @@ class generic_linput_t(builtins.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8948,64 +8562,64 @@ class generic_linput_t(builtins.object) Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) -> 'qstrvec_t *' - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - get_ida_subdirs(subdir, flags=0) -> int - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) -> 'linput_type_t' + get_linput_type(li) -> linput_type_t Get linput type. - get_linput_type(li) -> linput_type_t - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) -> 'size_t' - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - get_special_folder(csidl) -> str - @param csidl (C++: int) + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) -> 'char const *' + get_user_idadir() -> char const * Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) -> 'char const *' - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - getsysfile(filename, subdir) -> str - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) -> 'char const *' - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - idadir(subdir) -> char const * - @param subdir (C++: const char *) + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * Help on class ioports_fallback_t in module ida_diskio: @@ -9018,7 +8632,8 @@ class ioports_fallback_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ioports_fallback_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9027,8 +8642,9 @@ class ioports_fallback_t(builtins.object) | | handle(self, *args) -> 'bool' | handle(self, ports, line) -> bool - | @param ports (C++: const ioports_t &) - | @param line (C++: const char *) + | + | @param ports: ioports_t const & + | @param line: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9045,190 +8661,174 @@ class ioports_fallback_t(builtins.object) Help on function open_linput in module ida_diskio: open_linput(*args) -> 'linput_t *' + open_linput(file, remote) -> linput_t * Open loader input. - open_linput(file, remote) -> linput_t * - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) -> 'size_t' - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - qlgetz(li, fpos) -> str - @param li (C++: linput_t *) - @param fpos (C++: int64) + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) Help on function read_ioports2 in module ida_diskio: read_ioports2(*args) -> 'ssize_t' read_ioports2(ports, device, file, callback=None) -> ssize_t - @param ports (C++: ioports_t *) - @param device (C++: qstring *) - @param file (C++: const char *) - @param callback (C++: ioports_fallback_t *) + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) -> 'qstring *' + get_entry_forwarder(ord) -> str Get forwarder name for the entry point by its ordinal. - get_entry_forwarder(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) -> 'bool' + set_entry_forwarder(ord, name, flags=0) -> bool Set forwarder name for ordinal. - set_entry_forwarder(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix. See also AEF_IDBENC -""" +Enums and bitfields are represented as enum_t.""" -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) -> 'enum_t' - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - add_enum(idx, name, flag) -> enum_t - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) -> 'int' + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int Add member to enum type. - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) -> 'bool' + del_enum_member(id, value, serial, bmask) -> bool Delete member of enum type. - del_enum_member(id, value, serial, bmask) -> bool - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -9241,7 +8841,8 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9249,12 +8850,12 @@ class enum_member_visitor_t(builtins.object) | delete_enum_member_visitor_t(self) | | visit_enum_member(self, *args) -> 'int' + | visit_enum_member(self, cid, value) -> int | Implements action to take when enum member is visited. | - | visit_enum_member(self, cid, value) -> int - | @param cid (C++: const_t) - | @param value (C++: uval_t) - | @return: nonzero to stop the iteration + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9271,489 +8872,472 @@ class enum_member_visitor_t(builtins.object) Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) -> 'int' + for_all_enum_members(id, cv) -> int Visit all members of a given enum. - for_all_enum_members(id, cv) -> int - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) -> 'qstring *' get_bmask_cmt(id, bmask, repeatable) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) -> 'flags_t' - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) -> 'const_t' - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - get_enum_member(id, value, serial, mask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) -> 'qstring *' + get_enum_member_cmt(id, repeatable) -> str Get enum member's comment. - get_enum_member_cmt(id, repeatable) -> str - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) -> 'qstring *' + get_enum_member_name(id) -> str Get name of an enum member by const_t. - get_enum_member_name(id) -> str - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) -> 'uchar' + get_enum_member_serial(cid) -> uchar Get serial number of an enum member. - get_enum_member_serial(cid) -> uchar - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) -> 'qstring *' + get_enum_name2(id, flags=0) -> str Get name of enum - get_enum_name2(id, flags=0) -> str - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) -> 'int32' + get_enum_type_ordinal(id) -> int32 Get corresponding type ordinal number. - get_enum_type_ordinal(id) -> int32 - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) -> 'uchar *' get_first_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) -> 'uchar *' get_last_serial_enum_member(id, value, bmask) -> const_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) -> 'uchar *' get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - @param id (C++: enum_t) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) -> 'uchar *' get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - @param in_out_serial (C++: uchar *) - @param first_cid (C++: const_t) + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) -> 'bool' + is_enum_fromtil(id) -> bool Does enum come from type library? - is_enum_fromtil(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) -> 'bool' + is_enum_hidden(id) -> bool Is enum collapsed? - is_enum_hidden(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) -> 'bool' + is_ghost_enum(id) -> bool Is a ghost copy of a local type? - is_ghost_enum(id) -> bool - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) -> 'bool' + is_one_bit_mask(mask) -> bool Is bitmask one bit? - is_one_bit_mask(mask) -> bool - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) -> 'bool' set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) -> 'bool' set_bmask_name(id, bmask, name) -> bool - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @param name (C++: const char *) + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) -> 'bool' + set_enum_fromtil(id, fromtil) -> bool Specify that enum comes from a type library. - set_enum_fromtil(id, fromtil) -> bool - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) -> 'bool' + set_enum_ghost(id, ghost) -> bool Specify that enum is a ghost copy of a local type. - set_enum_ghost(id, ghost) -> bool - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) -> 'bool' + set_enum_hidden(id, hidden) -> bool Collapse enum. - set_enum_hidden(id, hidden) -> bool - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) -> 'void' + set_enum_type_ordinal(id, ord) Set corresponding type ordinal number. - set_enum_type_ordinal(id, ord) - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(builtins.object) @@ -9781,284 +9365,283 @@ class _IdcFunction(builtins.object) Help on function add_idc_class in module ida_expr: add_idc_class(*args) -> 'idc_class_t *' + add_idc_class(name, super=None) -> idc_class_t * Create a new IDC class. - add_idc_class(name, super=None) -> idc_class_t * - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: add_idc_func(name, fp, args, defvals=(), flags=0) Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param defvals: default argument values (optional) - @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) -> 'idc_value_t *' + add_idc_gvar(name) -> idc_value_t Add global IDC variable. - add_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) -> 'qstring *' compile_idc_file(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) -> 'qstring *' + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str Compile text with IDC statements. - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - @retval: true - ok - @retval: false - error, see errbuf + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) -> 'qstring *' compile_idc_text(nonnul_line) -> str - nonnul_line: char const * + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) -> 'error_t' + copy_idcv(dst, src) -> error_t Copy 'src' to 'dst'. For idc objects only a reference is copied. - copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) -> 'bool' - Create a variable reference. Currently only references to global - variables can be created. - create_idcv_ref(ref, v) -> bool - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) -> 'error_t' - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - deep_copy_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean + Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) -> 'error_t' + del_idcv_attr(obj, attr) -> error_t Delete an object attribute. - del_idcv_attr(obj, attr) -> error_t - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) -> 'idc_value_t *' - Dereference a 'VT_REF' variable. - deref_idcv(v, vref_flags) -> idc_value_t - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) -> 'qstring *' + eval_expr(rv, where, line) -> str Compile and calculate an expression. - eval_expr(rv, where, line) -> str - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - @retval: true - ok - @retval: false - error, see errbuf + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) -> 'qstring *' - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - eval_idc_expr(rv, where, line) -> str - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - line: char const * + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) -> 'qstring *' + exec_idc_script(result, path, func, args, argsnum) -> str Compile and execute IDC function(s) from file. - exec_idc_script(result, path, func, args, argsnum) -> str - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - @retval: true - ok - @retval: false - error, see errbuf + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) -> 'bool' + exec_system_script(file, complain_if_no_file=True) -> bool Compile and execute "main" function from system file. - exec_system_script(file, complain_if_no_file=True) -> bool - @param file: file name with IDC function(s). The file will be searched - using get_idc_filename() . (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - @retval: 1 - ok, file is compiled and executed - @retval: 0 - failure, compilation or execution error, warning is - displayed + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) -> 'idc_class_t *' + find_idc_class(name) -> idc_class_t * Find an existing IDC class by its name. - find_idc_class(name) -> idc_class_t * - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) -> 'qstring *' find_idc_func(prefix, n=0) -> str - @param prefix (C++: const char *) - @param n (C++: int) + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) -> 'idc_value_t *' + find_idc_gvar(name) -> idc_value_t Find an existing global IDC variable by its name. - find_idc_gvar(name) -> idc_value_t - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) -> 'char const *' first_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) -> 'void' - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - free_idcv(v) - @param v (C++: idc_value_t *) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) -> 'char const *' - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and system directories. - get_idc_filename(file) -> str - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) -> 'error_t' + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t Get an object attribute. - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) -> 'qstring *' + get_idcv_class_name(obj) -> str Retrieves the IDC object class name. - get_idcv_class_name(obj) -> str - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) -> 'error_t' + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t Get slice. - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -10071,7 +9654,8 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -10086,13 +9670,15 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) - | arg0: int32 + | + | @param arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) - | arg0: int32 - | arg1: int32 - | arg2: enum syntax_highlight_style + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10115,7 +9701,9 @@ class idc_global_t(builtins.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | n: char const * + | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -10132,13 +9720,13 @@ class idc_global_t(builtins.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value Help on class idc_value_t in module ida_expr: @@ -10149,15 +9737,16 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t - | n: sval_t | + | @param n: sval_t | | __init__(self, r) -> idc_value_t - | r: idc_value_t const & | + | @param r: idc_value_t const & | | __init__(self, _str) -> idc_value_t - | _str: char const * + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -10168,60 +9757,72 @@ class idc_value_t(builtins.object) | _create_empty_string(self) | | c_str(self, *args) -> 'char const *' - | 'VT_STR' + | c_str(self) -> char const * + | VT_STR | | clear(self, *args) -> 'void' - | See 'free_idcv()' + | clear(self) + | See free_idcv() | | create_empty_string(self, *args) -> 'void' | create_empty_string(self) | | is_convertible(self, *args) -> 'bool' - | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and - | 'VT_STR' . + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool | Does value represent a whole number? | | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool | Does value represent the integer 0? | | qstr(self, *args) -> 'qstring const &' - | 'VT_STR' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & | | set_float(self, *args) -> 'void' | set_float(self, f) - | f: fpvalue_t const & + | + | @param f: fpvalue_t const & | | set_int64(self, *args) -> 'void' | set_int64(self, v) - | v: int64 + | + | @param v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) - | v: sval_t + | + | @param v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) - | p: void * + | + | @param p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) - | _str: char const * - | len: size_t | + | @param _str: char const * + | @param len: size_t | | set_string(self, _str) - | _str: char const * + | + | @param _str: char const * | | swap(self, *args) -> 'void' + | swap(self, v) | Set this = r and v = this. | - | swap(self, v) - | @param v (C++: idc_value_t &) + | @param v: (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' - | 'VT_STR' + | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10233,25 +9834,25 @@ class idc_value_t(builtins.object) | list of weak references to the object (if defined) | | e - | idc_value_t_e_get(self) -> fpvalue_t + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -10259,7 +9860,7 @@ class idc_value_t(builtins.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype Help on class idc_values_t in module ida_expr: @@ -10270,11 +9871,14 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | x: qvector< idc_value_t > const & + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -10286,22 +9890,23 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: idc_value_t const & + | + | @param i: size_t + | @param v: idc_value_t const & | | __swig_destroy__ = delete_idc_values_t(...) | delete_idc_values_t(self) | | at(self, *args) -> 'idc_value_t const &' | at(self, _idx) -> idc_value_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -10314,16 +9919,16 @@ class idc_values_t(builtins.object) | | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t - | it: qvector< idc_value_t >::iterator | + | @param it: qvector< idc_value_t >::iterator | | erase(self, first, last) -> idc_value_t - | first: qvector< idc_value_t >::iterator - | last: qvector< idc_value_t >::iterator + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -10333,47 +9938,56 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) - | x: idc_value_t const & + | + | @param x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: idc_value_t * - | len: size_t + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t - | it: qvector< idc_value_t >::iterator - | x: idc_value_t const & + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) - | x: idc_value_t const & + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: idc_value_t const & | + | @param _newsize: size_t + | @param x: idc_value_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< idc_value_t > & + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -10393,111 +10007,113 @@ class idc_values_t(builtins.object) Help on function idcv_float in module ida_expr: idcv_float(*args) -> 'error_t' + idcv_float(v) -> error_t Convert IDC variable to a floating point. - idcv_float(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) -> 'error_t' + idcv_int64(v) -> error_t Convert IDC variable to a 64bit number. - idcv_int64(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) -> 'error_t' + idcv_long(v) -> error_t Convert IDC variable to a long (32/64bit) number. - idcv_long(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) -> 'error_t' + idcv_num(v) -> error_t Convert IDC variable to a long number. - idcv_num(v) -> error_t - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) -> 'error_t' + idcv_object(v, icls=None) -> error_t Create an IDC object. The original value of 'v' is discarded (freed). - idcv_object(v, icls=None) -> error_t - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) -> 'error_t' + idcv_string(v) -> error_t Convert IDC variable to a text string. - idcv_string(v) -> error_t - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) -> 'char const *' last_idcv_attr(obj) -> char const * - @param obj (C++: const idc_value_t *) + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) -> 'error_t' - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - move_idcv(dst, src) -> error_t - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) -> 'char const *' next_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) -> 'char const *' prev_idcv_attr(obj, attr) -> char const * - @param obj (C++: const idc_value_t *) - @param attr (C++: const char *) + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) -> 'qstring *' - Get text representation of 'idc_value_t' . - print_idcv(v, name=None, indent=0) -> str - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - name: char const * - fp_ptr: size_t - args: char const * - defvals: idc_values_t const & - flags: int + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -10508,222 +10124,135 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool - out: idc_values_t * - py_seq: PyObject * + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) -> 'size_t' pyw_register_idc_func(name, args, py_fp) -> size_t - name: char const * - args: char const * - py_fp: PyObject * + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) -> 'bool' pyw_unregister_idc_func(ctxptr) -> bool - ctxptr: size_t + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) -> 'bool' - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - set_header_path(path, add) -> bool - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - @retval: true - success - @retval: false - no memory + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) -> 'error_t' + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t Set an object attribute. - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) -> 'error_t' + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t Set slice. - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - in: idc_value_t const & - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) -> 'void' + swap_idcvs(v1, v2) Swap 2 variables. - swap_idcvs(v1, v2) - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) -> 'error_t' - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - throw_idc_exception(r, desc) -> error_t - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) -> 'int' - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - calc_fixup_size(type) -> int - @param type (C++: fixup_type_t) - @retval: -1 - means error + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) -> 'bool' + contains_fixups(ea, size) -> bool Does the specified address range contain any fixup information? - contains_fixups(ea, size) -> bool - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) -> 'bool' + exists_fixup(source) -> bool Check that a fixup exists at the given address. - exists_fixup(source) -> bool - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) -> 'fixup_type_t' + find_custom_fixup(name) -> fixup_type_t Get id of a custom fixup handler. - find_custom_fixup(name) -> fixup_type_t - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10734,8 +10263,10 @@ class fixup_data_t(builtins.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | type_: fixup_type_t - | flags_: uint32 + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10743,7 +10274,8 @@ class fixup_data_t(builtins.object) | delete_fixup_data_t(self) | | calc_size(self, *args) -> 'int' - | 'calc_fixup_size()' + | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) -> 'void' | clr_extdef(self) @@ -10752,41 +10284,48 @@ class fixup_data_t(builtins.object) | clr_unused(self) | | get(self, *args) -> 'bool' - | 'get_fixup()' - | | get(self, source) -> bool - | @param source (C++: ea_t) + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) -> 'ea_t' - | Get base of fixup.The target is calculated as 'get_base()' + off. - | 'get_base()' + off 'FIXUPF_REL' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) -> 'char const *' - | 'get_fixup_desc()' - | | get_desc(self, source) -> char const * - | @param source (C++: ea_t) + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) -> 'uint32' - | Fixup flags 'Fixup flags' . + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) -> 'fixup_handler_t const *' - | 'get_fixup_handler()' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) -> 'fixup_type_t' - | Fixup type 'Types of fixups' . + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) -> 'uval_t' - | 'get_fixup_value()' - | | get_value(self, ea) -> uval_t - | @param ea (C++: ea_t) + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) -> 'bool' + | has_base(self) -> bool | Is fixup relative? | | is_custom(self, *args) -> 'bool' - | 'is_fixup_custom()' + | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) -> 'bool' | is_extdef(self) -> bool @@ -10795,48 +10334,52 @@ class fixup_data_t(builtins.object) | is_unused(self) -> bool | | patch_value(self, *args) -> 'bool' - | 'patch_fixup_value()' - | | patch_value(self, ea) -> bool - | @param ea (C++: ea_t) + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) -> 'void' - | 'set_fixup()' - | | set(self, source) - | @param source (C++: ea_t) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) -> 'void' - | Set base of fixup. The target should be set before a call of this - | function. - | | set_base(self, new_base) - | @param new_base (C++: ea_t) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) -> 'void' | set_extdef(self) | | set_sel(self, *args) -> 'void' | set_sel(self, seg) - | @param seg (C++: const segment_t *) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) -> 'void' - | Set selector of fixup to the target. The target should be set before a - | call of this function. + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) -> 'void' | set_type(self, type_) - | @param type_ (C++: fixup_type_t) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) - | @param type_ (C++: fixup_type_t) - | @param flags_ (C++: uint32) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) -> 'void' | set_unused(self) | | was_created(self, *args) -> 'bool' + | was_created(self) -> bool | Is fixup artificial? | | ---------------------------------------------------------------------- @@ -10849,13 +10392,13 @@ class fixup_data_t(builtins.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10885,10 +10428,10 @@ class fixup_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10896,191 +10439,180 @@ class fixup_info_t(builtins.object) Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) -> 'void' - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - gen_fix_fixups(_from, to, size) - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) -> 'ea_t' + get_first_fixup_ea() -> ea_t Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR Help on function get_fixup in module ida_fixup: get_fixup(*args) -> 'bool' + get_fixup(fd, source) -> bool Get fixup information. - get_fixup(fd, source) -> bool - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) -> 'fixup_data_t const &' + get_fixup_desc(source, fd) -> str Get FIXUP description comment. - get_fixup_desc(source, fd) -> str - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) -> 'fixup_handler_t const *' + get_fixup_handler(type) -> fixup_handler_t const * Get handler of standard or custom fixup. - get_fixup_handler(type) -> fixup_handler_t const * - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) -> 'uval_t' - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - get_fixup_value(ea, type) -> uval_t - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - @retval: operand - value + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool - @param out (C++: fixups_t *) - @param ea (C++: ea_t) - @param size (C++: asize_t) + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function handle_fixups_in_macro in module ida_fixup: handle_fixups_in_macro(*args) -> 'bool' - Handle two fixups in a macro. We often combine two instruction that - load parts of a value into one macro instruction. For example: ARM: - ADRP X0, #var@PAGE ADD X0, X0, #var@PAGEOFF --> ADRL X0, var MIPS: lui - $v0, hi(var) addiu $v0, $v0, lo(var) --> la $v0, var When applying the - fixups that fall inside such a macro, we should convert them to one - refinfo. This function does exactly that. It should be called from the + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the apply() callback of a custom fixup. - handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param other (C++: fixup_type_t) - @param macro_reft_and_flags (C++: uint32) - @return: success ('false' means that RI was not changed) + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) -> 'bool' + is_fixup_custom(type) -> bool Is fixup processed by processor module? - is_fixup_custom(type) -> bool - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) -> 'bool' - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - patch_fixup_value(ea, fd) -> bool - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - @retval: false - the fixup bytes do not fit (e.g. fd->off is greater - than 0xFFFFFFC for BRANCH26). The database is changed - even in this case. + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) -> 'void' - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - set_fixup(source, fd) - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(builtins.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | Closes the file + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -11089,16 +10621,17 @@ class qfile_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | filename(self, *args) -> 'PyObject *' | filename(self) -> PyObject * | | flush(self, *args) -> 'int' | flush(self) -> int - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte | | get_fp(self, *args) -> 'FILE *' | get_fp(self) -> FILE * @@ -11106,6 +10639,8 @@ class qfile_t(builtins.object) | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool @@ -11122,22 +10657,33 @@ class qfile_t(builtins.object) | put_byte(self, *args) -> 'int' | put_byte(self, chr) -> int | Writes a single byte to the file + | + | @param chr: int | | puts(self, *args) -> 'int' | puts(self, str) -> int - | str: char const * + | + | @param str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) -> 'int64' @@ -11150,21 +10696,28 @@ class qfile_t(builtins.object) | write(self, *args) -> 'int' | write(self, py_buf) -> int | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t - | fp: FILE * + | + | @param fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t @@ -11177,7 +10730,7 @@ class qfile_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -11189,390 +10742,401 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) -> 'qfile_t *' qfile_t_from_capsule(pycapsule) -> qfile_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) -> 'qfile_t *' qfile_t_from_fp(fp) -> qfile_t - fp: FILE * + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) -> 'qfile_t *' qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) -> 'bool' + add_auto_stkpnt(pfn, ea, delta) -> bool Add automatic SP register change point. - add_auto_stkpnt(pfn, ea, delta) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function add_frame in module ida_frame: add_frame(*args) -> 'bool' + add_frame(pfn, frsize, frregs, argsize) -> bool Add function frame. - add_frame(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - @retval: 1 - ok - @retval: 0 - failed (no function, frame already exists) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) -> 'int' + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int Define a register variable. - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) -> 'qstring *' + build_stkvar_name(pfn, v) -> str Build automatic stack variable name. - build_stkvar_name(pfn, v) -> str - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) -> 'void' - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - build_stkvar_xrefs(out, pfn, mptr) - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) -> 'ea_t' + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t Calculate offset of stack variable in the frame structure. - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction - an ida_ua.insn_t, or an address (C++: - const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) -> 'bool' + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool Define/redefine a stack variable. - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success Help on function del_frame in module ida_frame: del_frame(*args) -> 'bool' + del_frame(pfn) -> bool Delete a function frame. - del_frame(pfn) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) -> 'int' + del_regvar(pfn, ea1, ea2, canon) -> int Delete a register variable definition. - del_regvar(pfn, ea1, ea2, canon) -> int - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) -> 'bool' + del_stkpnt(pfn, ea) -> bool Delete SP register change point. - del_stkpnt(pfn, ea) -> bool - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) -> 'int' delete_unreferenced_stkvars(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) -> 'int' delete_wrong_stkvar_ops(pfn) -> int - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) -> 'regvar_t *' - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + Find a register variable definition. + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - @param pfn: function in question (C++: func_t *) - ea: ea_t - @param canon: name of a general register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) -> 'ea_t' + frame_off_args(pfn) -> ea_t Get starting address of arguments section. - frame_off_args(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) -> 'ea_t' + frame_off_lvars(pfn) -> ea_t Get start address of local variables section. - frame_off_lvars(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) -> 'ea_t' + frame_off_retaddr(pfn) -> ea_t Get starting address of return address section. - frame_off_retaddr(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) -> 'ea_t' + frame_off_savregs(pfn) -> ea_t Get starting address of saved registers section. - frame_off_savregs(pfn) -> ea_t - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function free_regvar in module ida_frame: free_regvar(*args) -> 'void' free_regvar(v) - @param v (C++: struct regvar_t *) + + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) -> 'sval_t' - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - get_effective_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) -> 'struc_t *' + get_frame(pfn) -> struc_t Get pointer to function frame. - get_frame(pfn) -> struc_t - @param pfn: pointer to function structure (C++: const func_t *) - + @param pfn: func_t const * get_frame(ea) -> struc_t * - ea: ea_t + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) -> 'void' + get_frame_part(range, pfn, part) Get offsets of the frame part in the frame. - get_frame_part(range, pfn, part) - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) -> 'int' + get_frame_retsize(pfn) -> int Get size of function return address. - get_frame_retsize(pfn) -> int - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) -> 'asize_t' - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - get_frame_size(pfn) -> asize_t - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) -> 'ea_t' - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - get_func_by_frame(frame_id) -> ea_t - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) -> 'sval_t' + get_sp_delta(pfn, ea) -> sval_t Get modification of SP made at the specified location - get_sp_delta(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) -> 'sval_t' + get_spd(pfn, ea) -> sval_t Get difference between the initial and current values of ESP. - get_spd(pfn, ea) -> sval_t - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) -> 'PyObject *' - get_stkvar(insn, op, v) -> PyObject * + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable Help on function has_regvar in module ida_frame: has_regvar(*args) -> 'bool' + has_regvar(pfn, ea) -> bool Is there a register variable definition? - has_regvar(pfn, ea) -> bool - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) -> 'bool' is_funcarg_off(pfn, frameoff) -> bool - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) -> 'sval_t' lvar_off(pfn, frameoff) -> sval_t - pfn: func_t const * - frameoff: uval_t + + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -11588,7 +11152,9 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t - | r: regvar_t const & + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | @@ -11597,88 +11163,95 @@ class regvar_t(ida_range.range_t) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: regvar_t &) + | + | @param r: regvar_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11692,12 +11265,12 @@ class regvar_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11707,67 +11280,64 @@ class regvar_t(ida_range.range_t) Help on function rename_regvar in module ida_frame: rename_regvar(*args) -> 'int' + rename_regvar(pfn, v, user) -> int Rename a register variable. - rename_regvar(pfn, v, user) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) -> 'bool' - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - set_frame_size(pfn, frsize, frregs, argsize) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success Help on function set_purged in module ida_frame: set_purged(*args) -> 'bool' - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - set_purged(ea, nbytes, override_old_value) -> bool - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) -> 'int' + set_regvar_cmt(pfn, v, cmt) -> int Set comment for a register variable. - set_regvar_cmt(pfn, v, cmt) -> int - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) -> 'sval_t' - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - soff_to_fpoff(pfn, soff) -> sval_t - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11778,30 +11348,36 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11810,7 +11386,8 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkpnt_t const & + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11822,10 +11399,10 @@ class stkpnt_t(builtins.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11844,30 +11421,36 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11876,7 +11459,8 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkpnts_t const & + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11898,13 +11482,12 @@ class stkpnts_t(builtins.object) Help on function update_fpd in module ida_frame: update_fpd(*args) -> 'bool' + update_fpd(pfn, fpd) -> bool Update frame pointer delta. - update_fpd(pfn, fpd) -> bool - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11915,30 +11498,36 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -11947,7 +11536,8 @@ class xreflist_entry_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: xreflist_entry_t const & + | + | @param r: xreflist_entry_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11959,16 +11549,16 @@ class xreflist_entry_t(builtins.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -11984,15 +11574,19 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | x: qvector< xreflist_entry_t > const & + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12002,36 +11596,42 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< xreflist_entry_t > const & + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: xreflist_entry_t const & + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: xreflist_entry_t const & + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -12044,78 +11644,85 @@ class xreflist_t(builtins.object) | | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator | + | @param it: qvector< xreflist_entry_t >::iterator | | erase(self, first, last) -> xreflist_entry_t - | first: qvector< xreflist_entry_t >::iterator - | last: qvector< xreflist_entry_t >::iterator + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) -> 'xreflist_entry_t *' | extract(self) -> xreflist_entry_t | | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & | - | - | find(self, x) -> xreflist_entry_t - | x: xreflist_entry_t const & + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: xreflist_entry_t * - | len: size_t + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t - | it: qvector< xreflist_entry_t >::iterator - | x: xreflist_entry_t const & + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) - | x: xreflist_entry_t const & + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: xreflist_entry_t const & | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< xreflist_entry_t > & + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -12137,155 +11744,144 @@ class xreflist_t(builtins.object) | | __hash__ = None -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) -> 'bool' - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - add_func_ex(pfn) -> bool - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) - @param pfn (C++: func_t *) - @param reg (C++: int) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) -> 'bool' - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - append_func_tail(pfn, ea1, ea2) -> bool - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) -> 'int' + apply_idasgn_to(signame, ea, is_startup) -> int Apply a signature file to the specified address. - apply_idasgn_to(signame, ea, is_startup) -> int - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) -> 'bool' + apply_startup_sig(ea, startup) -> bool Apply a startup signature file to the specified address. - apply_startup_sig(ea, startup) -> bool - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) -> 'asize_t' - Calculate function size. This function takes into account all - fragments of the function. - calc_func_size(pfn) -> asize_t - @param pfn: ptr to function structure (C++: func_t *) + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) -> 'int' + calc_idasgn_state(n) -> int Get state of a signature in the list of planned signatures - calc_idasgn_state(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t Calculate target of a thunk function. - calc_thunk_func_target(pfn) -> ea_t - @param pfn: pointer to function (may not be nullptr) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) -> 'int' + del_idasgn(n) -> int Remove signature from the list of planned signatures. - del_idasgn(n) -> int - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED Help on class dyn_ea_array in module ida_funcs: @@ -12296,12 +11892,14 @@ class dyn_ea_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_ea_array - | _data: unsigned-ea-like-numeric-type *↗ - | _count: size_t + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12313,8 +11911,9 @@ class dyn_ea_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_dyn_ea_array(...) | delete_dyn_ea_array(self) @@ -12329,10 +11928,10 @@ class dyn_ea_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_ea_array_count_get(self) -> size_t + | count | | data - | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | data | | thisown | The membership flag @@ -12346,12 +11945,14 @@ class dyn_range_array(builtins.object) | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_range_array - | _data: range_t * - | _count: size_t + | + | @param _data: range_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12363,8 +11964,9 @@ class dyn_range_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_dyn_range_array(...) | delete_dyn_range_array(self) @@ -12379,10 +11981,10 @@ class dyn_range_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_range_array_count_get(self) -> size_t + | count | | data - | dyn_range_array_data_get(self) -> range_t + | data | | thisown | The membership flag @@ -12396,12 +11998,14 @@ class dyn_regarg_array(builtins.object) | | __getitem__(self, *args) -> 'regarg_t const &' | __getitem__(self, i) -> regarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regarg_array - | _data: regarg_t * - | _count: size_t + | + | @param _data: regarg_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12413,8 +12017,9 @@ class dyn_regarg_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regarg_t const & + | + | @param i: size_t + | @param v: regarg_t const & | | __swig_destroy__ = delete_dyn_regarg_array(...) | delete_dyn_regarg_array(self) @@ -12429,10 +12034,10 @@ class dyn_regarg_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_regarg_array_count_get(self) -> size_t + | count | | data - | dyn_regarg_array_data_get(self) -> regarg_t + | data | | thisown | The membership flag @@ -12446,12 +12051,14 @@ class dyn_regvar_array(builtins.object) | | __getitem__(self, *args) -> 'regvar_t const &' | __getitem__(self, i) -> regvar_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_regvar_array - | _data: regvar_t * - | _count: size_t + | + | @param _data: regvar_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12463,8 +12070,9 @@ class dyn_regvar_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regvar_t const & + | + | @param i: size_t + | @param v: regvar_t const & | | __swig_destroy__ = delete_dyn_regvar_array(...) | delete_dyn_regvar_array(self) @@ -12479,10 +12087,10 @@ class dyn_regvar_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_regvar_array_count_get(self) -> size_t + | count | | data - | dyn_regvar_array_data_get(self) -> regvar_t * + | data | | thisown | The membership flag @@ -12496,12 +12104,14 @@ class dyn_stkpnt_array(builtins.object) | | __getitem__(self, *args) -> 'stkpnt_t const &' | __getitem__(self, i) -> stkpnt_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_stkpnt_array - | _data: stkpnt_t * - | _count: size_t + | + | @param _data: stkpnt_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -12513,8 +12123,9 @@ class dyn_stkpnt_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: stkpnt_t const & + | + | @param i: size_t + | @param v: stkpnt_t const & | | __swig_destroy__ = delete_dyn_stkpnt_array(...) | delete_dyn_stkpnt_array(self) @@ -12529,10 +12140,10 @@ class dyn_stkpnt_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_stkpnt_array_count_get(self) -> size_t + | count | | data - | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | data | | thisown | The membership flag @@ -12540,52 +12151,51 @@ class dyn_stkpnt_array(builtins.object) Help on function f_any in module ida_funcs: f_any(*args) -> 'bool' + f_any(arg1, arg2) -> bool Helper function to accept any address. - f_any(arg1, arg2) -> bool - arg1: flags_t - arg2: void * + @param arg1: flags_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) -> 'int' - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - find_func_bounds(nfn, flags) -> int - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes Help on function free_regarg in module ida_funcs: free_regarg(*args) -> 'void' free_regarg(v) - @param v (C++: struct regarg_t *) + + @param v: regarg_t * Help on function func_contains in module ida_funcs: func_contains(*args) -> 'bool' + func_contains(pfn, ea) -> bool Does the given function contain the given address? - func_contains(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) -> 'bool' - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - func_does_return(callee) -> bool - @param callee (C++: ea_t) + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -12596,37 +12206,57 @@ class func_item_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | pfn: func_t * - | _ea: ea_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) -> 'bool' | __next__(self, func) -> bool - | func: testf_t * + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_item_iterator_t(...) | delete_func_item_iterator_t(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) -> 'range_t const &' | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) -> 'ea_t' | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool - | @param visited (C++: eavec_t *) - | @param p_farref (C++: bool *) - | @param out (C++: insn_t *) + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool - | @param out (C++: insn_t *) + | + | @param out: insn_t * | | first(self, *args) -> 'bool' | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) -> 'bool' | last(self) -> bool | @@ -12647,9 +12277,13 @@ class func_item_iterator_t(builtins.object) | next_not_tail(self, *args) -> 'bool' | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) -> 'bool' | prev(self, func) -> bool - | @param func (C++: testf_t *) + | + | @param func: testf_t * | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -12667,19 +12301,28 @@ class func_item_iterator_t(builtins.object) | prev_not_tail(self) -> bool | | set(self, *args) -> 'bool' - | Set a function range. if pfn == nullptr then a segment range will be - | set. - | | set(self, pfn, _ea=BADADDR) -> bool - | @param pfn (C++: func_t *) - | @param _ea (C++: ea_t) + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool | Set an arbitrary range. | - | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12697,8 +12340,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool - fpi: func_parent_iterator_t * - pfn: func_t * + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -12709,7 +12353,12 @@ class func_parent_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | _fnt: func_t * + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12735,11 +12384,13 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool - | @param _fnt (C++: func_t *) + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12782,56 +12433,79 @@ class func_t(ida_range.range_t) | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t - | start: ea_t - | end: ea_t - | f: flags_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_t(...) | delete_func_t(self) | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | | analyzed_sp(self, *args) -> 'bool' + | analyzed_sp(self) -> bool | Has SP-analysis been performed? | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() + | | does_return(self, *args) -> 'bool' + | does_return(self) -> bool | Does function return? | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() + | | is_far(self, *args) -> 'bool' + | is_far(self) -> bool | Is a far function? | | need_prolog_analysis(self, *args) -> 'bool' + | need_prolog_analysis(self) -> bool | Needs prolog analysis? | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() + | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points | __get_points__(self) -> dyn_stkpnt_array @@ -12840,22 +12514,22 @@ class func_t(ida_range.range_t) | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails | __get_tails__(self) -> dyn_range_array @@ -12868,66 +12542,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -12941,12 +12621,12 @@ class func_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -12957,22 +12637,25 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) -> 'func_t *' func_t__from_ptrval__(ptrval) -> func_t - ptrval: size_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) -> 'bool' func_tail_iterator_set(fti, pfn, ea) -> bool - fti: func_tail_iterator_t * - pfn: func_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) -> 'bool' func_tail_iterator_set_ea(fti, ea) -> bool - fti: func_tail_iterator_t * - ea: ea_t + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12983,8 +12666,13 @@ class func_tail_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | _pfn: func_t * - | ea: ea_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -13013,17 +12701,20 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool - | @param _pfn (C++: func_t *) - | @param ea (C++: ea_t) + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13040,140 +12731,145 @@ class func_tail_iterator_t(builtins.object) Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) -> 'int' + get_current_idasgn() -> int Get number of the the current signature. + + @return: 0..n-1 Help on function get_fchunk in module ida_funcs: get_fchunk(*args) -> 'func_t *' + get_fchunk(ea) -> func_t Get pointer to function chunk structure by address. - get_fchunk(ea) -> func_t - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) -> 'int' - Get ordinal number of a function chunk in the global list of function - chunks. - get_fchunk_num(ea) -> int - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) -> 'size_t' + get_fchunk_qty() -> size_t Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) -> 'func_t *' + get_func(ea) -> func_t Get pointer to function structure by address. - get_func(ea) -> func_t - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) -> 'int' + get_func_bitness(pfn) -> int Get function bitness (which is equal to the function segment bitness). pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - get_func_bitness(pfn) -> int - @param pfn (C++: const func_t *) - @retval: 0 - 16 - @retval: 1 - 32 - @retval: 2 - 64 + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) -> 'int' + get_func_bits(pfn) -> int Get number of bits in the function addressing. - get_func_bits(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) -> 'int' + get_func_bytes(pfn) -> int Get number of bytes in the function addressing. - get_func_bytes(pfn) -> int - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) -> 'int' - Get the containing tail chunk of 'ea'. - get_func_chunknum(pfn, ea) -> int - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - @retval: -1 - means 'does not contain ea' - @retval: 0 - means the 'pfn' itself contains ea - @retval: >0 - the number of the containing function tail chunk + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) -> 'qstring *' + get_func_cmt(pfn, repeatable) -> str Get function comment. - get_func_cmt(pfn, repeatable) -> str - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) -> 'qstring *' + get_func_name(ea) -> str Get function name. - get_func_name(ea) -> str - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + @param ea: (C++: ea_t) any address in the function + @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) -> 'int' + get_func_num(ea) -> int Get ordinal number of a function. - get_func_num(ea) -> int - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) -> 'size_t' + get_func_qty() -> size_t Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) -> 'ea_t' + get_func_ranges(ranges, pfn) -> ea_t Get function ranges. - get_func_ranges(ranges, pfn) -> ea_t - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) -> 'PyObject *' - get_idasgn_desc(n) -> PyObject * + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -13185,7 +12881,7 @@ get_idasgn_desc(*args) -> 'PyObject *' Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) -> 'PyObject *' - get_idasgn_desc_with_matches(n) -> PyObject * + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -13195,140 +12891,141 @@ get_idasgn_desc_with_matches(*args) -> 'PyObject *' Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) -> 'int' - Get number of signatures in the list of planned and applied - signatures. + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) -> 'qstring *' + get_idasgn_title(name) -> str Get full description of the signature by its short name. - get_idasgn_title(name) -> str - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) -> 'func_t *' + get_next_fchunk(ea) -> func_t Get pointer to the next function chunk in the global list. - get_next_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if next function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) -> 'func_t *' + get_next_func(ea) -> func_t Get pointer to the next function. - get_next_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) -> 'ea_t' get_next_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) -> 'func_t *' + get_prev_fchunk(ea) -> func_t Get pointer to the previous function chunk in the global list. - get_prev_fchunk(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or nullptr if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) -> 'func_t *' + get_prev_func(ea) -> func_t Get pointer to the previous function. - get_prev_func(ea) -> func_t - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or nullptr if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) -> 'ea_t' get_prev_func_addr(pfn, ea) -> ea_t - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) -> 'func_t *' + getn_fchunk(n) -> func_t Get pointer to function chunk structure by number. - getn_fchunk(n) -> func_t - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or nullptr. This function may return - a function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) -> 'func_t *' + getn_func(n) -> func_t Get pointer to function structure by number. - getn_func(n) -> func_t - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or nullptr. This function returns a - function entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) -> 'bool' - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - is_finally_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) -> 'bool' + is_func_entry(pfn) -> bool Does function describe a function entry chunk? - is_func_entry(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) -> 'bool' + is_func_locked(pfn) -> bool Is the function pointer locked? - is_func_locked(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) -> 'bool' + is_func_tail(pfn) -> bool Does function describe a function tail chunk? - is_func_tail(pfn) -> bool - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) -> 'bool' + is_same_func(ea1, ea2) -> bool Do two addresses belong to the same function? - is_same_func(ea1, ea2) -> bool - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) -> 'bool' + is_visible_func(pfn) -> bool Is the function visible (not hidden)? - is_visible_func(pfn) -> bool - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -13339,7 +13036,8 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func - | _pfn: func_t const * + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -13361,55 +13059,52 @@ class lock_func(builtins.object) Help on function lock_func_range in module ida_funcs: lock_func_range(*args) -> 'void' - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_func_range(pfn, lock) - @param pfn (C++: const func_t *) - @param lock (C++: bool) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) - @param pfn (C++: func_t *) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) -> 'void' - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) -> 'bool' - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - reanalyze_noret_flag(ea) -> bool - @param ea (C++: ea_t) + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -13420,7 +13115,9 @@ class regarg_t(builtins.object) | | __init__(self, *args) | __init__(self) -> regarg_t - | r: regarg_t const & + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | @@ -13429,7 +13126,8 @@ class regarg_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: regarg_t &) + | + | @param r: regarg_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13441,320 +13139,129 @@ class regarg_t(builtins.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * + | type Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) -> 'bool' - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - remove_func_tail(pfn, tail_ea) -> bool - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) + @param tail_ea: (C++: ea_t) Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) -> 'bool' + set_func_cmt(pfn, cmt, repeatable) -> bool Set function comment. This function works with function chunks too. - set_func_cmt(pfn, cmt, repeatable) -> bool - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) -> 'int' - Give a meaningful name to function if it consists of only 'jump' - instruction. - set_func_name_if_jumpfunc(pfn, oldname) -> int - @param pfn: pointer to function (may be nullptr) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass nullptr. (C++: const char - *) - @return: success + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) -> 'int' + set_func_start(ea, newstart) -> int Move function chunk start address. - set_func_start(ea, newstart) -> int - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) -> 'bool' - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - set_noret_insn(insn_ea, noret) -> bool - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) -> 'bool' - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - set_tail_owner(fnt, func_start) -> bool - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + Set a function as the possessing function of a function tail. The function + should already refer to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) + @param func_start: (C++: ea_t) Help on function set_visible_func in module ida_funcs: set_visible_func(*args) -> 'void' + set_visible_func(pfn, visible) Set visibility of function. - set_visible_func(pfn, visible) - @param pfn (C++: func_t *) - @param visible (C++: bool) + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) -> 'int' - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - try_to_add_libfunc(ea) -> int - @param ea: any address in the program (C++: ea_t) - @return: Library function codes + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) -> 'bool' - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - update_func(pfn) -> bool - @param pfn: ptr to function structure (C++: func_t *) - @return: success + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -function exists already. its bounds are returned in 'nfn'. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -do not modify incoming function boundaries, just create instructions -inside the boundaries. -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -function has instructions that pass execution flow to unexplored -bytes. nfn->end_ea will have the address of the unexplored byte. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -Function changes SP in untraceable way, for example: and esp, -0FFFFFFF0h -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -Function 'non-return' analysis must be performed. This flag is -verified upon 'func_does_return()' -""" - -ida_funcs.FUNC_PROLOG_OK -""" -Prolog analysis has be performed by last SP-analysis -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -User has specified far-ness of the function -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(builtins.object) @@ -13837,7 +13344,8 @@ class cancellable_graph_t(gdl_graph_t) | | __init__(self, *args) | __init__(self) -> cancellable_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -13848,7 +13356,7 @@ class cancellable_graph_t(gdl_graph_t) | Data descriptors defined here: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | thisown | The membership flag @@ -13861,9 +13369,10 @@ class cancellable_graph_t(gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -13876,7 +13385,8 @@ class cancellable_graph_t(gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -13886,65 +13396,77 @@ class cancellable_graph_t(gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -13958,13 +13480,14 @@ class cancellable_graph_t(gdl_graph_t) Help on function display_gdl in module ida_gdl: display_gdl(*args) -> 'int' - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - display_gdl(fname) -> int - @param fname (C++: const char *) - @return: error code from os, 0 if ok + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok Help on class gdl_graph_t in module ida_gdl: @@ -13977,7 +13500,8 @@ class gdl_graph_t(builtins.object) | | __init__(self, *args) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -13989,9 +13513,10 @@ class gdl_graph_t(builtins.object) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -14004,7 +13529,8 @@ class gdl_graph_t(builtins.object) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -14014,65 +13540,77 @@ class gdl_graph_t(builtins.object) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14089,84 +13627,81 @@ class gdl_graph_t(builtins.object) Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) -> 'bool' + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool Build and display a complex xref graph. - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) -> 'bool' + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool Build and display a flow graph. - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) -> 'void' + gen_gdl(g, fname) Create GDL file for graph. - gen_gdl(g, fname) - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) -> 'bool' + gen_simple_call_chart(filename, wait, title, gflags) -> bool Build and display a simple function call graph. - gen_simple_call_chart(filename, wait, title, gflags) -> bool - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) -> 'bool' + is_noret_block(btype) -> bool Does this block never return? - is_noret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) -> 'bool' + is_ret_block(btype) -> bool Does this block return? - is_ret_block(btype) -> bool - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -14177,16 +13712,19 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator - | _g: gdl_graph_t const * - | n: int + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: node_iterator const & + | + | @param n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -14244,66 +13782,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -14317,12 +13861,12 @@ class qbasic_block_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -14344,15 +13888,18 @@ class qflow_chart_t(cancellable_graph_t) | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t - | n: int + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | _title: char const * - | _pfn: func_t * - | _ea1: ea_t - | _ea2: ea_t - | _flags: int + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -14361,59 +13908,69 @@ class qflow_chart_t(cancellable_graph_t) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) - | @param _title (C++: const char *) - | @param _pfn (C++: func_t *) - | @param _ea1 (C++: ea_t) - | @param _ea2 (C++: ea_t) - | @param _flags (C++: int) | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | create(self, _title, ranges, _flags) - | @param _title (C++: const char *) - | ranges: rangevec_t const & - | @param _flags (C++: int) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool - | @param blknum (C++: size_t) + | + | @param blknum: size_t | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -14423,29 +13980,30 @@ class qflow_chart_t(cancellable_graph_t) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bounds - | qflow_chart_t_bounds_get(self) -> range_t + | bounds | | flags - | qflow_chart_t_flags_get(self) -> int + | flags | | nproper - | qflow_chart_t_nproper_get(self) -> int + | nproper | | pfn - | qflow_chart_t_pfn_get(self) -> func_t * + | pfn | | thisown | The membership flag | | title - | qflow_chart_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from cancellable_graph_t: @@ -14456,7 +14014,7 @@ class qflow_chart_t(cancellable_graph_t) | Data descriptors inherited from cancellable_graph_t: | | cancelled - | cancellable_graph_t_cancelled_get(self) -> bool + | cancelled | | ---------------------------------------------------------------------- | Methods inherited from gdl_graph_t: @@ -14466,9 +14024,10 @@ class qflow_chart_t(cancellable_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -14481,7 +14040,8 @@ class qflow_chart_t(cancellable_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -14491,35 +14051,41 @@ class qflow_chart_t(cancellable_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from gdl_graph_t: @@ -14530,101 +14096,10 @@ class qflow_chart_t(cancellable_graph_t) | __weakref__ | list of weak references to the object (if defined) -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CALL_ENDS -""" -call instructions terminate basic blocks -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_NOPREDS -""" -do not compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -14790,81 +14265,81 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -14888,10 +14363,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -14914,20 +14389,24 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | a: double - | b: double + | __init__(self, a, b) -> TPointDouble | + | @param a: double + | @param b: double | | __init__(self, r) -> TPointDouble - | r: point_t const & + | + | @param r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: TPointDouble const & + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -14936,14 +14415,16 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) - | @param r (C++: const TPointDouble &) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14958,10 +14439,10 @@ class TPointDouble(builtins.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14984,7 +14465,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14993,52 +14475,57 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | create_circle_layout(self, *args) -> 'bool' | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) -> 'bool' | create_tree_layout(self) -> bool | | get_edge(self, *args) -> 'edge_info_t *' | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) -> 'ssize_t' | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) -> 'rect_t' | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) -> 'void' | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | thisown | The membership flag | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -15048,9 +14535,10 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -15063,7 +14551,8 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -15073,65 +14562,77 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -15145,88 +14646,86 @@ class abstract_graph_t(ida_gdl.gdl_graph_t) Help on function calc_dist in module ida_graph: calc_dist(*args) -> 'double' + calc_dist(p, q) -> double Calculate distance between p and q. - calc_dist(p, q) -> double - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) -> 'void' + clr_node_info(gid, node, flags) Clear node info for the given node. - clr_node_info(gid, node, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) -> 'mutable_graph_t *' - Create a graph for the function that contains 'ea'. - create_disasm_graph(ea) -> mutable_graph_t - @param ea (C++: ea_t) + Create a graph using an arbitrary set of ranges. + @param ea: ea_t create_disasm_graph(ranges) -> mutable_graph_t - ranges: rangevec_t const & + + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) -> 'graph_viewer_t *' + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * Create a custom graph viewer. - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) + @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) -> 'mutable_graph_t *' + create_mutable_graph(id) -> mutable_graph_t Create a new empty graph with given id. - create_mutable_graph(id) -> mutable_graph_t - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) -> 'user_graph_place_t *' - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - create_user_graph_place(node, lnnum) -> user_graph_place_t - @param node (C++: int) - @param lnnum (C++: int) + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) -> 'void' - Delete the 'node_info_t' for the given node. - del_node_info(gid, node) - @param gid (C++: graph_id_t) - @param node (C++: int) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) -> 'void' - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - delete_mutable_graph(g) - @param g (C++: mutable_graph_t *) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -15256,22 +14755,22 @@ class edge_info_t(builtins.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width Help on class edge_infos_wrapper_t in module ida_graph: @@ -15298,7 +14797,7 @@ class edge_infos_wrapper_t(builtins.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -15312,20 +14811,24 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | r: edge_layout_point_t const & + | __init__(self, r) -> edge_layout_point_t | + | @param r: edge_layout_point_t const & | | __init__(self, _e, _pidx) -> edge_layout_point_t - | _e: edge_t const & - | _pidx: int + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: edge_layout_point_t const & + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -15334,7 +14837,8 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | @param r (C++: const edge_layout_point_t &) + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15346,10 +14850,10 @@ class edge_layout_point_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -15371,7 +14875,8 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: edge_segment_t const & + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -15394,19 +14899,19 @@ class edge_segment_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 Help on class edge_t in module ida_graph: @@ -15417,20 +14922,25 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | x: int - | y: int + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool - | y: edge_t const & + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -15447,10 +14957,10 @@ class edge_t(builtins.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -15463,29 +14973,29 @@ class edge_t(builtins.object) Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) -> 'graph_viewer_t *' + get_graph_viewer(parent) -> graph_viewer_t * Get custom graph viewer for given form. - get_graph_viewer(parent) -> graph_viewer_t * - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) -> 'bool' + get_node_info(out, gid, node) -> bool Get node info. - get_node_info(out, gid, node) -> bool - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) -> 'mutable_graph_t *' + get_viewer_graph(gv) -> mutable_graph_t Get graph object for given custom graph viewer. - get_viewer_graph(gv) -> mutable_graph_t - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -15518,25 +15028,25 @@ class graph_item_t(builtins.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type Help on class graph_node_visitor_t in module ida_graph: @@ -15549,7 +15059,8 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15557,32 +15068,33 @@ class graph_node_visitor_t(builtins.object) | delete_graph_node_visitor_t(self) | | is_forbidden_edge(self, *args) -> 'bool' + | is_forbidden_edge(self, arg0, arg1) -> bool | Should the edge between 'n' and 'm' be ignored? | - | is_forbidden_edge(self, arg0, arg1) -> bool - | arg0: int - | arg1: int + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) -> 'bool' + | is_visited(self, n) -> bool | Have we already visited the given node? | - | is_visited(self, n) -> bool - | @param n (C++: int) + | @param n: (C++: int) | | reinit(self, *args) -> 'void' + | reinit(self) | Reset visited nodes. | | set_visited(self, *args) -> 'void' + | set_visited(self, n) | Mark node as visited. | - | set_visited(self, n) - | @param n (C++: int) + | @param n: (C++: int) | | visit_node(self, *args) -> 'int' + | visit_node(self, arg0) -> int | Implements action to take when a node is visited. | - | visit_node(self, arg0) -> int - | arg0: int + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15607,7 +15119,8 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15616,11 +15129,13 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int - | arg0: int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15632,10 +15147,10 @@ class graph_path_visitor_t(builtins.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -15651,7 +15166,8 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15660,13 +15176,15 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int - | arg2: edge_t - | arg3: edge_info_t * + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int - | arg2: int - | arg3: rect_t & + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15705,10 +15223,10 @@ class group_crinfo_t(builtins.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -15722,20 +15240,24 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | y0: int - | y1: int + | __init__(self, y0, y1) -> interval_t | + | @param y0: int + | @param y1: int | | __init__(self, s) -> interval_t - | s: edge_segment_t const & + | + | @param s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: interval_t const & + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -15744,25 +15266,29 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool - | @param x (C++: int) + | + | @param x: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) - | @param r (C++: const interval_t &) + | + | @param r: interval_t const & | | move_by(self, *args) -> 'void' | move_by(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15777,10 +15303,10 @@ class interval_t(builtins.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15802,7 +15328,8 @@ class mutable_graph_t(abstract_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> abstract_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -15811,266 +15338,317 @@ class mutable_graph_t(abstract_graph_t) | | add_edge(self, *args) -> 'bool' | add_edge(self, i, j, ei) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param ei (C++: const edge_info_t *) + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * | | add_node(self, *args) -> 'int' + | add_node(self, r) -> int | Add a node, possibly with a specific geometry | - | add_node(self, r) -> int - | @param r: the node geometry (can be nullptr) (C++: const rect_t *) - | @return: the new node + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node | | calc_group_ea(self, *args) -> 'ea_t' | calc_group_ea(self, arg2) -> ea_t - | arg2: intvec_t const & + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' + | change_group_visibility(self, group, expand) -> bool | Expand/collapse a group node | - | change_group_visibility(self, group, expand) -> bool - | @param group: the group node (C++: int) - | @param expand: whether to expand or collapse (C++: bool) - | @return: success + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) -> 'bool' | create_digraph_layout(self) -> bool | | create_group(self, *args) -> 'int' + | create_group(self, nodes) -> int | Create a new group node, that will contain all the nodes in 'nodes'. | - | create_group(self, nodes) -> int - | @param nodes: the nodes that will be part of the group (C++: const - | intvec_t &) - | @return: the group node, or -1 in case of error + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | | del_edge(self, *args) -> 'bool' | del_edge(self, i, j) -> bool - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t | Delete a node | - | del_node(self, n) -> ssize_t - | @param n: the node to delete (C++: int) - | @return: the number of deleted edges + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges | | delete_group(self, *args) -> 'bool' - | Delete a group node.This deletes the group node only; it does not - | delete nodes that are part of the group. - | | delete_group(self, group) -> bool - | @param group: the group node (C++: int) - | @return: success + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) -> 'bool' + | exists(self, node) -> bool | Is the node visible? | - | exists(self, node) -> bool - | @param node: the node number (C++: int) - | @return: success + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) -> 'bool' | get_custom_layout(self) -> bool | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int - | @param group (C++: int) + | + | @param group: int | | get_graph_groups(self, *args) -> 'bool' | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) -> 'int' | get_next_subgraph_node(self, group, current) -> int - | @param group (C++: int) - | @param current (C++: int) + | + | @param group: int + | @param current: int | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | get_node_representative(self, *args) -> 'int' - | Get the node that currently visually represents 'node'. This will find - | the "closest" parent group node that's visible, by attempting to walk - | up the group nodes that contain 'node', and will stop when it finds a - | node that is currently visible.See also get_group_node() - | | get_node_representative(self, node) -> int - | @param node: the node (C++: int) - | @return: the node that represents 'node', or 'node' if it's not part - | of any group + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' - | Is the node currently visible?An invisible node is a node that's part - | of a group that's currently collapsed. - | | is_visible_node(self, node) -> bool - | @param node: the node (C++: int) - | @return: success + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) -> 'int' - | Get the number of visible nodes (the list can be retrieved using - | 'gdl.hpp' 's 'node_iterator' )See also size() + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) -> 'int' | npred(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int - | @param b (C++: int) + | + | @param b: int | | pred(self, *args) -> 'int' | pred(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success | | refresh(self, *args) -> 'bool' - | Refresh the graphA graph needs refreshing when it's "backing data". - | E.g., if the number (or contents) of the objects in the above example, - | change.Let's say the user's plugin ends up finding a 5th piece of - | scattered data. It should then add it to its internal list of known - | objects, and tell IDA that the graph needs to be refreshed, using - | 'refresh_viewer()' . This will cause IDA to:discard all its internal - | rendering information,call 'mutable_graph_t::refresh()' on the graph - | so that the user's plugin has a chance to "sync" the number of nodes & - | edges that this graph contains, to the information that the plugin has - | collected so farre-create internal rendering information, andrepaint - | the view + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success | | replace_edge(self, *args) -> 'bool' | replace_edge(self, i, j, x, y) -> bool - | @param i (C++: int) - | @param j (C++: int) - | @param x (C++: int) - | @param y (C++: int) + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) -> 'void' | reset(self) | | resize(self, *args) -> 'void' + | resize(self, n) | Resize the graph to 'n' nodes | - | resize(self, n) - | @param n: the new size (C++: int) + | @param n: (C++: int) the new size | | set_custom_layout(self, *args) -> 'void' | set_custom_layout(self) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) - | @param node (C++: int) + | + | @param node: int | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool - | @param e (C++: edge_t) - | @param ei (C++: const edge_info_t *) + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) - | @param node (C++: int) - | @param group (C++: int) + | + | @param node: int + | @param group: int | | set_nrect(self, *args) -> 'bool' | set_nrect(self, n, r) -> bool - | @param n (C++: int) - | @param r (C++: const rect_t &) + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) -> 'int' - | Get the total number of nodes (including group nodes, and including - | hidden nodes.)See also node_qty() + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) -> 'int' | succ(self, b, i) -> int - | @param b (C++: int) - | @param i (C++: int) + | + | @param b: int + | @param i: int | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & - | @param b (C++: int) + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * + | belongs | | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t + | edges | | gid - | mutable_graph_t_gid_get(self) -> uval_t + | gid | | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * + | node_flags | | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t + | nodes | | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t * + | org_preds | | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t * + | org_succs | | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t * + | preds | | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t * + | succs | | thisown | The membership flag @@ -16082,49 +15660,54 @@ class mutable_graph_t(abstract_graph_t) | | create_circle_layout(self, *args) -> 'bool' | create_circle_layout(self, p, radius) -> bool - | @param p (C++: point_t) - | @param radius (C++: int) + | + | @param p: point_t + | @param radius: int | | create_tree_layout(self, *args) -> 'bool' | create_tree_layout(self) -> bool | | get_edge(self, *args) -> 'edge_info_t *' | get_edge(self, e) -> edge_info_t - | @param e (C++: edge_t) + | + | @param e: edge_t | | grcall(self, *args) -> 'ssize_t' | grcall(self, code) -> ssize_t - | @param code (C++: int) + | + | @param code: int | | nrect(self, *args) -> 'rect_t' | nrect(self, n) -> rect_t - | @param n (C++: int) + | + | @param n: int | | set_callback(self, *args) -> 'void' | set_callback(self, _callback, _ud) - | @param _callback (C++: hook_cb_t *) - | @param _ud (C++: void *) + | + | @param _callback: hook_cb_t * + | @param _ud: void * | | ---------------------------------------------------------------------- | Data descriptors inherited from abstract_graph_t: | | callback_ud - | abstract_graph_t_callback_ud_get(self) -> void * + | callback_ud | | circle_center - | abstract_graph_t_circle_center_get(self) -> point_t + | circle_center | | circle_radius - | abstract_graph_t_circle_radius_get(self) -> int + | circle_radius | | current_layout - | abstract_graph_t_current_layout_get(self) -> layout_type_t + | current_layout | | rect_edges_made - | abstract_graph_t_rect_edges_made_get(self) -> bool + | rect_edges_made | | title - | abstract_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -16134,9 +15717,10 @@ class mutable_graph_t(abstract_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | end(self, *args) -> 'node_iterator' | end(self) -> node_iterator @@ -16152,41 +15736,49 @@ class mutable_graph_t(abstract_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -16213,23 +15805,28 @@ class node_info_t(builtins.object) | delete_node_info_t(self) | | get_flags_for_valid(self, *args) -> 'uint32' - | Get combination of 'Node info flags' describing which attributes are - | valid. + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) -> 'bool' - | Has valid 'bg_color' ? + | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) -> 'bool' - | Has valid 'ea' ? + | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) -> 'bool' - | Has valid 'flags' ? + | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) -> 'bool' - | Has valid 'frame_color' ? + | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) -> 'bool' - | Has non-empty 'text' ? + | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16241,19 +15838,19 @@ class node_info_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -16267,15 +15864,19 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | x: qvector< rect_t > const & + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16285,36 +15886,42 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< rect_t > const & + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: rect_t const & + | + | @param i: size_t + | @param v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: rect_t const & + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rect_t >::const_iterator' | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16327,78 +15934,85 @@ class node_layout_t(builtins.object) | | end(self, *args) -> 'qvector< rect_t >::const_iterator' | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t - | it: qvector< rect_t >::iterator | + | @param it: qvector< rect_t >::iterator | | erase(self, first, last) -> rect_t - | first: qvector< rect_t >::iterator - | last: qvector< rect_t >::iterator + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) -> 'rect_t *' | extract(self) -> rect_t | | find(self, *args) -> 'qvector< rect_t >::const_iterator' | find(self, x) -> rect_t - | x: rect_t const & | - | - | find(self, x) -> rect_t - | x: rect_t const & + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) - | x: rect_t const & + | + | @param x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: rect_t const & + | + | @param x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: rect_t * - | len: size_t + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t - | it: qvector< rect_t >::iterator - | x: rect_t const & + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) - | x: rect_t const & + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: rect_t const & | + | @param _newsize: size_t + | @param x: rect_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< rect_t > & + | + | @param r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16440,24 +16054,29 @@ class node_ordering_t(builtins.object) | | clr(self, *args) -> 'bool' | clr(self, _node) -> bool - | @param _node (C++: int) + | + | @param _node: int | | node(self, *args) -> 'int' | node(self, _order) -> int - | @param _order (C++: size_t) + | + | @param _order: size_t | | order(self, *args) -> 'int' | order(self, _node) -> int - | @param _node (C++: int) + | + | @param _node: int | | resize(self, *args) -> 'void' | resize(self, n) - | @param n (C++: int) + | + | @param n: int | | set(self, *args) -> 'void' | set(self, _node, num) - | @param _node (C++: int) - | @param num (C++: int) + | + | @param _node: int + | @param num: int | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -16483,16 +16102,20 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | _x: int - | _y: int + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: point_t const & + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | @@ -16501,14 +16124,16 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t - | @param r (C++: const point_t &) + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16523,10 +16148,10 @@ class point_t(builtins.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16564,11 +16189,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16578,31 +16205,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16615,78 +16248,85 @@ class pointseq_t(pointvec_t) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16714,15 +16354,19 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | x: qvector< point_t > const & + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16732,36 +16376,42 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< point_t > const & + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: point_t const & + | + | @param i: size_t + | @param v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: point_t const & + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16774,78 +16424,85 @@ class pointvec_t(builtins.object) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t - | it: qvector< point_t >::iterator | + | @param it: qvector< point_t >::iterator | | erase(self, first, last) -> point_t - | first: qvector< point_t >::iterator - | last: qvector< point_t >::iterator + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | x: point_t const & | - | - | find(self, x) -> point_t - | x: point_t const & + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) - | x: point_t const & + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: point_t const & + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: point_t * - | len: size_t + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t - | it: qvector< point_t >::iterator - | x: point_t const & + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | x: point_t const & + | + | @param x: point_t const & + | + | push_back(self) -> point_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: point_t const & | + | @param _newsize: size_t + | @param x: point_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< point_t > & + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16871,20 +16528,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) - self: PyObject * - nid: int + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -16895,23 +16555,27 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | l: int - | t: int - | r: int - | b: int + | __init__(self, l, t, r, b) -> rect_t | + | @param l: int + | @param t: int + | @param r: int + | @param b: int | | __init__(self, p0, p1) -> rect_t - | p0: point_t const & - | p1: point_t const & + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: rect_t const & + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -16929,37 +16593,44 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) - | @param delta (C++: int) + | + | @param delta: int | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | make_union(self, *args) -> 'void' | make_union(self, r) - | @param r (C++: const rect_t &) + | + | @param r: rect_t const & | | move_by(self, *args) -> 'void' | move_by(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | move_to(self, *args) -> 'void' | move_to(self, p) - | @param p (C++: const point_t &) + | + | @param p: point_t const & | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -16977,19 +16648,19 @@ class rect_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16999,10 +16670,10 @@ class rect_t(builtins.object) Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) -> 'void' + refresh_viewer(gv) Redraw the graph in the given view. - refresh_viewer(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -17032,16 +16703,16 @@ class row_info_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top Help on class screen_graph_selection_base_t in module ida_graph: @@ -17052,15 +16723,19 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | x: qvector< selection_item_t > const & + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17070,36 +16745,42 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | __swig_destroy__ = delete_screen_graph_selection_base_t(...) | delete_screen_graph_selection_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17112,78 +16793,85 @@ class screen_graph_selection_base_t(builtins.object) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17227,33 +16915,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) -> 'void' | add_node(self, node) - | @param node (C++: int) + | + | @param node: int | | add_point(self, *args) -> 'void' | add_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) -> 'void' | del_node(self, node) - | @param node (C++: int) + | + | @param node: int | | del_point(self, *args) -> 'void' | del_point(self, e, idx) - | @param e (C++: edge_t) - | @param idx (C++: int) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) -> 'bool' | has(self, item) -> bool - | @param item (C++: const selection_item_t &) + | + | @param item: selection_item_t const & | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t - | @param look_for_nodes (C++: bool) + | + | @param look_for_nodes: bool | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -17263,7 +16958,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) - | @param s (C++: const screen_graph_selection_t &) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17276,11 +16972,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17290,31 +16988,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< selection_item_t > const & + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: selection_item_t const & + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: selection_item_t const & + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17327,74 +17031,80 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t - | it: qvector< selection_item_t >::iterator | + | @param it: qvector< selection_item_t >::iterator | | erase(self, first, last) -> selection_item_t - | first: qvector< selection_item_t >::iterator - | last: qvector< selection_item_t >::iterator + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | x: selection_item_t const & | - | - | find(self, x) -> selection_item_t - | x: selection_item_t const & + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) - | x: selection_item_t const & + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: selection_item_t * - | len: size_t + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t - | it: qvector< selection_item_t >::iterator - | x: selection_item_t const & + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | x: selection_item_t const & + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: selection_item_t const & | + | @param _newsize: size_t + | @param x: selection_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< selection_item_t > & + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17422,28 +17132,33 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | n: int + | __init__(self, n) -> selection_item_t | + | @param n: int | | __init__(self, _elp) -> selection_item_t - | _elp: edge_layout_point_t & | + | @param _elp: edge_layout_point_t & | | __init__(self, e, idx) -> selection_item_t - | e: edge_t - | idx: int + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: selection_item_t const & + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -17452,7 +17167,8 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | @param r (C++: const selection_item_t &) + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17464,13 +17180,13 @@ class selection_item_t(builtins.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17483,23 +17199,23 @@ class selection_item_t(builtins.object) Help on function set_node_info in module ida_graph: set_node_info(*args) -> 'void' + set_node_info(gid, node, ni, flags) Set node info. - set_node_info(gid, node, ni, flags) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) -> 'void' + set_viewer_graph(gv, g) Set the underlying graph object for the given viewer. - set_viewer_graph(gv, g) - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -17526,7 +17242,7 @@ class user_graph_place_t(builtins.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -17534,201 +17250,158 @@ class user_graph_place_t(builtins.object) Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) -> 'bool' - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - viewer_attach_menu_item(g, name) -> bool - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param name: (C++: const char *) action name + @param name: (C++: const char *) action name + @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) -> 'void' + viewer_center_on(gv, node) Center the graph view on the given node. - viewer_center_on(gv, node) - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) -> 'bool' - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around 'mutable_graph_t::create_group' that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - viewer_create_groups(gv, out_group_nodes, gi) -> bool - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) -> 'void' - Delete node info for node in given viewer (see 'del_node_info()' ) - viewer_del_node_info(gv, n) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) -> 'bool' - Wrapper around 'mutable_graph_t::delete_group' . This function - will:clone the current graphattempt deleting the groups in that new - graphif successful, animate to that new graph. - viewer_delete_groups(gv, groups, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) -> 'void' + viewer_fit_window(gv) Fit graph viewer to its parent form. - viewer_fit_window(gv) - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) -> 'int' + viewer_get_curnode(gv) -> int Get number of currently selected node (-1 if none) - viewer_get_curnode(gv) -> int - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) -> 'bool' - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - viewer_get_gli(out, gv, flags=0) -> bool - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) -> 'bool' - Get node info for node in given viewer (see 'get_node_info()' ) - viewer_get_node_info(gv, out, n) -> bool - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) -> 'bool' + viewer_get_selection(gv, sgs) -> bool Get currently selected items for graph viewer. - viewer_get_selection(gv, sgs) -> bool - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) -> 'void' - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - viewer_set_gli(gv, gli, flags=0) - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) -> 'bool' - Wrapper around 'mutable_graph_t::change_visibility' . This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) -> 'void' - Set node info for node in given viewer (see 'set_node_info()' ) - viewer_set_node_info(gv, n, ni, flags) - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) -> 'int' - Set height of node title bars ( 'grcode_set_titlebar_height' ) - viewer_set_titlebar_height(gv, height) -> int - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" -'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" -'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" -'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" -'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" -'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(builtins.Exception) @@ -17815,263 +17488,251 @@ class Hexrays_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | - | build_callinfo(self, *args) -> 'int' + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | close_pseudocode(self, *args) -> 'int' + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) -> 'PyObject *' - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) -> 'int' - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) -> 'int' + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) -> 'int' - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) -> 'int' - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) -> 'int' + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) -> 'int' + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) -> 'int' + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) -> 'int' + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) -> 'int' + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) -> 'int' - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | right_click(self, *args) -> 'int' - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) -> 'int' - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) -> 'int' + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -18102,120 +17763,116 @@ class __cbhooks_t(Hexrays_Hooks) | | __init__(self, callback) | __init__(self, _flags=0) -> Hexrays_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int | Pseudocode view is being closed. | - | close_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | create_hint(self, *args) - | Create a hint for the current item. 'ui_get_custom_viewer_hint' - | | create_hint(self, vu) -> PyObject * - | @param vu (C++: vdui_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) - | Current cursor position has been changed. (for example, by left- - | clicking or using keyboard) - | | curpos(self, vu) -> int - | @param vu (C++: vdui_t *) + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) + | double_click(self, vu, shift_state) -> int | Mouse double click. | - | double_click(self, vu, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | func_printed(self, *args) - | Function text has been generated. Plugins may modify the text in - | 'cfunc_t::sv' . The text uses regular color codes (see 'lines.hpp' ) - | COLOR_ADDR is used to store pointers to ctree elements. - | | func_printed(self, cfunc) -> int - | @param cfunc (C++: cfunc_t *) + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | interr(self, *args) + | interr(self, errcode) -> int | Internal error has occurred. | - | interr(self, errcode) -> int - | @param errcode (C++: int ) + | @param errcode: (int ) | | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int | Keyboard has been hit. | - | keyboard(self, vu, key_code, shift_state) -> int - | @param vu (C++: vdui_t *) - | @param key_code: VK_... (C++: int) - | @param shift_state: Should return: 1 if the event has been handled - | (C++: int) + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int | Ctree maturity level is being changed. | - | maturity(self, cfunc, new_maturity) -> int - | @param cfunc (C++: cfunc_t *) - | @param new_maturity (C++: ctree_maturity_t) + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int | New pseudocode view has been opened. | - | open_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | @param vu: (vdui_t *) | | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int | Populating popup menu. We can add menu items now. | - | populating_popup(self, widget, popup_handle, vu) -> int - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param vu (C++: vdui_t *) + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | print_func(self, *args) + | print_func(self, cfunc, vp) -> int | Printing ctree and generating text. | - | print_func(self, cfunc, vp) -> int - | @param cfunc (C++: cfunc_t *) - | @param vp: Returns: 1 if text has been generated by the plugin It is - | forbidden to modify ctree at this event. (C++: - | vc_printer_t *) + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | refresh_pseudocode(self, *args) - | Existing pseudocode text has been refreshed. Adding/removing - | pseudocode lines is forbidden in this event. - | | refresh_pseudocode(self, vu) -> int - | @param vu: See also hxe_text_ready, which happens earlier (C++: - | vdui_t *) + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | right_click(self, *args) - | Mouse right click. Use hxe_populating_popup instead, in case you want - | to add items in the popup menu. - | | right_click(self, vu) -> int - | @param vu (C++: vdui_t *) + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | switch_pseudocode(self, *args) - | Existing pseudocode view has been reloaded with a new function. Its - | text has not been refreshed yet, only cfunc and mba pointers are - | ready. - | | switch_pseudocode(self, vu) -> int - | @param vu (C++: vdui_t *) + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) + | text_ready(self, vu) -> int | Decompiled text is ready. | - | text_ready(self, vu) -> int - | @param vu: This event can be used to modify the output text (sv). - | Obsolete. Please use hxe_func_printed instead. (C++: - | vdui_t *) + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -18232,143 +17889,135 @@ class __cbhooks_t(Hexrays_Hooks) | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | - | build_callinfo(self, *args) -> 'int' + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * | Analyzing a call instruction. | - | build_callinfo(self, blk, type, callinfo) -> int - | @param blk: blk->tail is the call. (C++: mblock_t *) - | @param type: buffer for the output type. (C++: tinfo_t *) - | @param callinfo: prepared callinfo. Should return: 1 if the function - | type has been determined. The plugin should either - | specify the function type, either allocate and return - | a new mcallinfo_t object. (C++: mcallinfo_t **) + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. | | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int | Comment got changed. | - | cmt_changed(self, cfunc, loc, cmt) -> int - | @param cfunc (C++: cfunc_t *) - | @param loc (C++: const treeloc_t *) - | @param cmt (C++: const char *) + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int | Trying to combine instructions of basic block. | - | combine(self, blk, insn) -> int - | @param blk (C++: mblock_t *) - | @param insn: Should return: 1 if combined the current instruction with - | a preceding one (C++: minsn_t *) + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int | Flowchart has been generated. | - | flowchart(self, fc) -> int - | @param fc (C++: qflow_chart_t *) + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) -> 'int' - | Global optimization has been finished. If microcode is modified, - | MERR_LOOP must be returned. It will cause a complete restart of the - | optimization. - | | glbopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int | Basic block level optimization has been finished. | - | locopt(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int | Local variable comment got changed. | - | lvar_cmt_changed(self, vu, v, cmt) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param cmt: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | char *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int | Local variable mapping got changed. | - | lvar_mapping_changed(self, vu, frm, to) -> int - | @param vu (C++: vdui_t *) - | @param frm (C++: lvar_t *) - | @param to: Please note that it is possible to read/write user settings - | for lvars directly from the idb. (C++: lvar_t *) + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int | Local variable got renamed. | - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param name (C++: const char *) - | @param is_user_name: Please note that it is possible to read/write - | user settings for lvars directly from the idb. - | (C++: bool) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int | Local variable type got changed. | - | lvar_type_changed(self, vu, v, tinfo) -> int - | @param vu (C++: vdui_t *) - | @param v (C++: lvar_t *) - | @param tinfo: Please note that it is possible to read/write user - | settings for lvars directly from the idb. (C++: const - | tinfo_t *) + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int | Microcode has been generated. | - | microcode(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int | Local variables: preallocation step begins. | - | prealloc(self, mba) -> int - | @param mba: This event may occur several times. Should return: 1 if - | modified microcode Negative values are Microcode error - | codes error codes (C++: mba_t *) + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int | Microcode has been preoptimized. | - | preoptimized(self, mba) -> int - | @param mba: return Microcode error codes code (C++: mba_t *) + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int | Prolog analysis has been finished. | - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | @param mba (C++: mba_t *) - | @param fc (C++: qflow_chart_t *) - | @param reachable_blocks (C++: bitset_t *) - | @param decomp_flags: return Microcode error codes code (C++: int) + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int | The optimizer is about to resolve stack addresses. | - | resolve_stkaddrs(self, mba) -> int - | @param mba (C++: mba_t *) + | @param mba: (mba_t *) | | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int | SP change points have been calculated. | - | stkpnts(self, mba, _sps) -> int - | @param mba (C++: mba_t *) - | _sps: stkpnts_t * + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' + | structural(self, ct) -> int | Structural analysis has been finished. | - | structural(self, ct) -> int - | @param ct (C++: control_graph_t *) + | @param ct: (control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -18394,54 +18043,75 @@ Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: _kludge_force_declare_TPopupMenu(*args) -> 'void' _kludge_force_declare_TPopupMenu(arg1) - arg1: TPopupMenu const * + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) -> 'cexpr_t *' _ll_call_helper(rettype, args, format) -> cexpr_t - rettype: tinfo_t const & - args: carglist_t * - format: char const * + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) -> 'cexpr_t *' _ll_create_helper(standalone, type, format) -> cexpr_t - standalone: bool - type: tinfo_t const & - format: char const * + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) -> 'cexpr_t *' _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - e: cexpr_t * - ptrsize: int - is_flt: bool + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) -> 'cexpr_t *' _ll_lnot(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) -> 'cexpr_t *' _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - n: uint64 - func: cfunc_t * - ea: ea_t - opnum: int - sign: type_sign_t - size: int + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) -> 'cexpr_t *' _ll_make_ref(e) -> cexpr_t - e: cexpr_t * + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -18456,27 +18126,28 @@ _map_as_dict(maptype, name, keytype, valuetype) Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) -> 'bool' + accepts_small_udts(op) -> bool Is the operator allowed on small structure or union? - accepts_small_udts(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) -> 'bool' + arglocs_overlap(loc1, w1, loc2, w2) -> bool Do two arglocs overlap? - arglocs_overlap(loc1, w1, loc2, w2) -> bool - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -18487,15 +18158,19 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | x: qvector< bitset_t > const & + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18505,36 +18180,42 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< bitset_t > const & + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bitset_t const & + | + | @param i: size_t + | @param v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: bitset_t const & + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18547,78 +18228,85 @@ class array_of_bitsets(builtins.object) | | end(self, *args) -> 'qvector< bitset_t >::const_iterator' | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t - | it: qvector< bitset_t >::iterator | + | @param it: qvector< bitset_t >::iterator | | erase(self, first, last) -> bitset_t - | first: qvector< bitset_t >::iterator - | last: qvector< bitset_t >::iterator + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) -> 'bitset_t *' | extract(self) -> bitset_t | | find(self, *args) -> 'qvector< bitset_t >::const_iterator' | find(self, x) -> bitset_t - | x: bitset_t const & | - | - | find(self, x) -> bitset_t - | x: bitset_t const & + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) - | x: bitset_t const & + | + | @param x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: bitset_t const & + | + | @param x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bitset_t * - | len: size_t + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t - | it: qvector< bitset_t >::iterator - | x: bitset_t const & + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) - | x: bitset_t const & + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bitset_t const & | + | @param _newsize: size_t + | @param x: bitset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bitset_t > & + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18649,15 +18337,19 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | x: qvector< ivlset_t > const & + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18667,36 +18359,42 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ivlset_t > const & + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ivlset_t const & + | + | @param i: size_t + | @param v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ivlset_t const & + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18709,78 +18407,85 @@ class array_of_ivlsets(builtins.object) | | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t - | it: qvector< ivlset_t >::iterator | + | @param it: qvector< ivlset_t >::iterator | | erase(self, first, last) -> ivlset_t - | first: qvector< ivlset_t >::iterator - | last: qvector< ivlset_t >::iterator + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) -> 'ivlset_t *' | extract(self) -> ivlset_t | | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' | find(self, x) -> ivlset_t - | x: ivlset_t const & | - | - | find(self, x) -> ivlset_t - | x: ivlset_t const & + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ivlset_t const & + | + | @param x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ivlset_t * - | len: size_t + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t - | it: qvector< ivlset_t >::iterator - | x: ivlset_t const & + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) - | x: ivlset_t const & + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ivlset_t const & | + | @param _newsize: size_t + | @param x: ivlset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ivlset_t > & + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18805,22 +18510,21 @@ class array_of_ivlsets(builtins.object) Help on function asgop in module ida_hexrays: asgop(*args) -> 'ctype_t' - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - asgop(cop) -> ctype_t - @param cop (C++: ctype_t) + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) -> 'ctype_t' - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - asgop_revert(cop) -> ctype_t - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -18831,8 +18535,9 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t - | n: int - | s: int + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -18849,10 +18554,10 @@ class bit_bound_t(builtins.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -18866,35 +18571,43 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | m: bitset_t const & + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -18903,16 +18616,17 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int @@ -18925,19 +18639,24 @@ class bitset_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -18950,77 +18669,91 @@ class bitset_t(builtins.object) | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19042,69 +18775,69 @@ class bitset_t(builtins.object) Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) -> 'block_chains_iterator_t' - Get iterator pointing to the beginning of 'block_chains_t' . - block_chains_begin(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) -> 'void' - Clear 'block_chains_t' . - block_chains_clear(set) - @param set (C++: block_chains_t *) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) -> 'block_chains_iterator_t' - Get iterator pointing to the end of 'block_chains_t' . - block_chains_end(set) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) -> 'void' - Erase current element from 'block_chains_t' . - block_chains_erase(set, p) - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) -> 'block_chains_iterator_t' - Find the specified key in set 'block_chains_t' . - block_chains_find(set, val) -> block_chains_iterator_t - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) -> 'void' - Delete 'block_chains_t' instance. - block_chains_free(set) - @param set (C++: block_chains_t *) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) -> 'chain_t &' + block_chains_get(p) -> chain_t Get reference to the current set value. - block_chains_get(p) -> chain_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) -> 'block_chains_iterator_t' - Insert new ( 'chain_t' ) into set 'block_chains_t' . - block_chains_insert(set, val) -> block_chains_iterator_t - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -19115,14 +18848,16 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: block_chains_iterator_t const & + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19142,7 +18877,7 @@ class block_chains_iterator_t(builtins.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19152,31 +18887,32 @@ class block_chains_iterator_t(builtins.object) Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) -> 'block_chains_t *' - Create a new 'block_chains_t' instance. + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) -> 'block_chains_iterator_t' + block_chains_next(p) -> block_chains_iterator_t Move to the next element. - block_chains_next(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) -> 'block_chains_iterator_t' + block_chains_prev(p) -> block_chains_iterator_t Move to the previous element. - block_chains_prev(p) -> block_chains_iterator_t - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) -> 'size_t' - Get size of 'block_chains_t' . - block_chains_size(set) -> size_t - @param set (C++: block_chains_t *) + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -19200,50 +18936,26 @@ class block_chains_t(builtins.object) | dstr(self) -> char const * | | get_chain(self, *args) -> 'chain_t *' - | Get chain for the specified value offset. - | | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) - | - | - | get_chain(self, k, width=1) -> chain_t - | @param k: value offset (register number or stack offset) (C++: const - | voff_t &) - | @param width: size of value in bytes (C++: int) | + | @param k: voff_t const & + | @param width: int | | get_chain(self, ch) -> chain_t - | ch: chain_t const & | - | - | get_chain(self, ch) -> chain_t - | ch: chain_t const & + | @param ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' - | Get chain for the specified register - | | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) | - | - | get_reg_chain(self, reg, width=1) -> chain_t - | @param reg: register number (C++: mreg_t) - | @param width: size of register in bytes (C++: int) + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) -> 'chain_t *' - | Get chain for the specified stack offset - | | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) | - | - | get_stk_chain(self, off, width=1) -> chain_t - | @param off: stack offset (C++: sval_t) - | @param width: size of stack value in bytes (C++: int) + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19266,11 +18978,14 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | x: qvector< block_chains_t > const & + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -19282,22 +18997,23 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | __swig_destroy__ = delete_block_chains_vec_t(...) | delete_block_chains_vec_t(self) | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -19310,16 +19026,16 @@ class block_chains_vec_t(builtins.object) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -19329,47 +19045,56 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< block_chains_t > & + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -19389,70 +19114,70 @@ class block_chains_vec_t(builtins.object) Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) -> 'boundaries_iterator_t' + boundaries_begin(map) -> boundaries_iterator_t Get iterator pointing to the beginning of boundaries_t. - boundaries_begin(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' + boundaries_clear(map) Clear boundaries_t. - boundaries_clear(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) -> 'boundaries_iterator_t' + boundaries_end(map) -> boundaries_iterator_t Get iterator pointing to the end of boundaries_t. - boundaries_end(map) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) -> 'void' + boundaries_erase(map, p) Erase current element from boundaries_t. - boundaries_erase(map, p) - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) -> 'boundaries_iterator_t' + boundaries_find(map, key) -> boundaries_iterator_t Find the specified key in boundaries_t. - boundaries_find(map, key) -> boundaries_iterator_t - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) -> 'cinsn_t *const &' + boundaries_first(p) -> cinsn_t Get reference to the current map key. - boundaries_first(p) -> cinsn_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) -> 'void' + boundaries_free(map) Delete boundaries_t instance. - boundaries_free(map) - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) -> 'boundaries_iterator_t' - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - boundaries_insert(map, key, val) -> boundaries_iterator_t - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -19463,14 +19188,16 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: boundaries_iterator_t const & + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -19490,7 +19217,7 @@ class boundaries_iterator_t(builtins.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19500,39 +19227,40 @@ class boundaries_iterator_t(builtins.object) Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) -> 'boundaries_t *' + boundaries_new() -> boundaries_t Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) -> 'boundaries_iterator_t' + boundaries_next(p) -> boundaries_iterator_t Move to the next element. - boundaries_next(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) -> 'boundaries_iterator_t' + boundaries_prev(p) -> boundaries_iterator_t Move to the previous element. - boundaries_prev(p) -> boundaries_iterator_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) -> 'rangeset_t &' + boundaries_second(p) -> rangeset_t Get reference to the current map value. - boundaries_second(p) -> rangeset_t - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) -> 'size_t' + boundaries_size(map) -> size_t Get size of boundaries_t. - boundaries_size(map) -> size_t - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -19643,7 +19371,8 @@ class boundaries_t(builtins.object) | | at(self, *args) -> 'rangeset_t &' | at(self, _Keyval) -> rangeset_t - | _Keyval: cinsn_t *const & + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -19716,6 +19445,7 @@ class boundaries_t(builtins.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -19732,30 +19462,36 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: carg_t const & + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -19764,20 +19500,22 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: carg_t const & + | + | @param r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) - | @param e (C++: cexpr_t *) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -19799,8 +19537,8 @@ class carg_t(cexpr_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -19820,8 +19558,8 @@ class carg_t(cexpr_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -19837,194 +19575,238 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) -> 'bool' - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -20036,29 +19818,35 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' @@ -20068,63 +19856,62 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) -> 'uint64' - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -20132,7 +19919,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -20158,7 +19945,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -20206,36 +19993,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -20250,19 +20038,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20289,32 +20077,40 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | ftype: tinfo_t const & - | fl: int + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: carglist_t const & + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -20323,16 +20119,17 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: carglist_t const & + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -20347,7 +20144,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20357,31 +20155,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -20394,78 +20200,85 @@ class carglist_t(qvector_carg_t) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20493,35 +20306,42 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t - | ea: ea_t | + | @param ea: ea_t | | __init__(self, r) -> casm_t - | r: casm_t const & + | + | @param r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: casm_t const & + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -20530,7 +20350,8 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: casm_t const & + | + | @param r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -20551,7 +20372,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20561,24 +20383,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20602,70 +20433,81 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ | + | @param x: unsigned-ea-like-numeric-type const &↗ | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned-ea-like-numeric-type *↗ - | len: size_t + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | x: unsigned-ea-like-numeric-type const &↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned-ea-like-numeric-type const &↗ | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -20681,42 +20523,48 @@ class casm_t(ida_pro.eavec_t)↗ Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | builtins.object | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cblock_t const & + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -20728,7 +20576,8 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cblock_t const & + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20742,11 +20591,12 @@ class cblock_t(qlist_cinsn_t) | __hash__ = None | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | | __getitem__(self, *args) -> 'cinsn_t const &' | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20756,16 +20606,17 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & + | + | @param i: size_t + | @param v: cinsn_t const & | | at(self, index) | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) -> 'void' | clear(self) @@ -20773,21 +20624,13 @@ class cblock_t(qlist_cinsn_t) | empty(self, *args) -> 'bool' | empty(self) -> bool | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | | erase(self, p) - | p: qlist_cinsn_t_iterator + | + | @param p: cinsn_list_t_iterator | | find(self, item) | @@ -20796,24 +20639,16 @@ class cblock_t(qlist_cinsn_t) | | index(self, item) | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | + | insert(self, *args) -> 'cinsn_list_t_iterator' | insert(self, i, v) - | i: size_t - | v: cinsn_t const & | + | @param i: size_t + | @param v: cinsn_t const & | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -20823,11 +20658,15 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t | | push_front(self, *args) -> 'void' | push_front(self, x) - | x: cinsn_t const & + | + | @param x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -20835,7 +20674,8 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) -> 'bool' | remove(self, v) -> bool - | v: cinsn_t const & + | + | @param v: cinsn_t const & | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -20846,10 +20686,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) - | x: qlist< cinsn_t > & + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -20872,30 +20713,36 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ccase_t const & + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -20904,14 +20751,16 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ccase_t const & + | + | @param r: ccase_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t | | value(self, *args) -> 'uint64 const &' | value(self, i) -> uint64 const & - | @param i (C++: int) + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20920,7 +20769,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -20965,137 +20814,175 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) -> 'bool' - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -21103,7 +20990,8 @@ class ccase_t(cinsn_t) | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -21171,36 +21059,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -21215,16 +21104,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21251,30 +21140,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ccases_t const & + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -21283,7 +21178,8 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ccases_t const & + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21301,7 +21197,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21311,31 +21208,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -21348,78 +21253,85 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21442,11 +21354,12 @@ class cdg_insn_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self, mba_) -> cdg_insn_iterator_t - | mba_: mba_t const * | + | @param mba_: mba_t const * | | __init__(self, r) -> cdg_insn_iterator_t - | r: cdg_insn_iterator_t const & + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -21464,14 +21377,16 @@ class cdg_insn_iterator_t(builtins.object) | | next(self, *args) -> 'merror_t' | next(self, ins) -> merror_t - | @param ins (C++: insn_t *) + | + | @param ins: insn_t * | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) - | @param rng (C++: const range_t &) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21483,25 +21398,25 @@ class cdg_insn_iterator_t(builtins.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | | mba - | cdg_insn_iterator_t_mba_get(self) -> mba_t + | mba | | severed_branch - | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t + | severed_branch | | thisown | The membership flag @@ -21521,30 +21436,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cdo_t const & + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -21553,7 +21474,8 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cdo_t const & + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21571,7 +21493,8 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21580,7 +21503,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -21592,7 +21515,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -21619,7 +21542,7 @@ class ceinsn_t(builtins.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -21643,49 +21566,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * + | __init__(self, cop, _x) -> cexpr_t | + | @param cop: enum ctype_t + | @param _x: cexpr_t * | | __init__(self, cop, _x, _y) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * | | __init__(self, cop, _x, _y, _z) -> cexpr_t - | cop: enum ctype_t - | _x: cexpr_t * - | _y: cexpr_t * - | _z: cexpr_t * | + | @param cop: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * | | __init__(self, r) -> cexpr_t - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -21701,8 +21632,8 @@ class cexpr_t(citem_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -21722,8 +21653,8 @@ class cexpr_t(citem_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -21739,198 +21670,243 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cexpr_t * + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: carglist_t * + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) - | _v: cinsn_t * + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) - | _v: cnumber_t * + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) - | _v: char * + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t - | @param r (C++: const cexpr_t &) + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' - | Calculate the type of the expression. Use this function to calculate - | the expression type when a new expression is built - | | calc_type(self, recursive) - | @param recursive: if true, types of all children expression will be - | calculated before calculating our type (C++: bool) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' - | Cleanup the expression. This function properly deletes all children - | and sets the item type to cot_empty. + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cexpr_t const & + | + | @param r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool | Does the expression contain a comma operator? | - | contains_comma(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' - | Does the expression contain a comma operator or an embedded statement - | operator or a label? - | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | @param maxcommas (C++: int) + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool | Does the expression contain an embedded statement operator? | - | contains_insn(self, times=1) -> bool - | @param times (C++: int) + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool | Check if the expression contains the specified operator. | - | contains_operator(self, needed_op, times=1) -> bool - | @param needed_op: operator code to search for (C++: ctype_t) - | @param times: how many times the operator code should be present (C++: - | int) - | @return: true if the expression has at least TIMES children with - | NEEDED_OP + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) -> 'bool' - | Compare two expressions. This function tries to compare two - | expressions in an 'intelligent' manner. For example, it knows about - | commutitive operators and can ignore useless casts. - | | equal_effect(self, r) -> bool - | @param r: the expression to compare against the current expression - | (C++: const cexpr_t &) - | @return: true expressions can be considered equal + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' - | Find the operand with a numeric value. + | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' - | Find the child with the specified operator. - | | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) | - | - | find_op(self, _op) -> cexpr_t - | @param _op (C++: ctype_t) + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' - | Get pointers to operands. at last one operand should be a number o1 - | will be pointer to the number - | | get_1num_op(self, o1, o2) -> bool - | @param o1 (C++: cexpr_t **) - | @param o2 (C++: cexpr_t **) + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' - | Get max number of bits that can really be used by the expression. For - | example, x % 16 can yield only 4 non-zero bits, higher bits are zero + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' - | Get min number of bits that are certainly required to represent the - | expression. For example, constant 16 always uses 5 bits: 10000. + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool | Check if the expression has side effects. Calls, pre/post inc/dec, and | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool | Is call argument? | - | is_call_arg_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is a call argument of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool | Is call object? | - | is_call_object_of(self, parent) -> bool - | @param parent (C++: const citem_t *) - | @return: true if our expression is the call object of the specified - | parent expression. + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool | Verify if the specified item is our parent. | - | is_child_of(self, parent) -> bool - | @param parent: possible parent item (C++: const citem_t *) - | @return: true if the specified item is our parent + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool | Check if the expression is a number with the specified value. | - | is_const_value(self, _v) -> bool - | @param _v (C++: uint64) + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -21942,29 +21918,35 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' - | Is nice condition?. Nice condition is a nice expression of the boolean - | type. + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' - | Is nice expression? Nice expressions do not contain comma operators, - | embedded statements, or labels. + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' @@ -21974,63 +21956,62 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool | May the expression be a pointer? | | numval(self, *args) -> 'uint64' - | Get numeric value of the expression. This function can be called only - | on cot_num expressions! + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' + | print1(self, func) | Print expression into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) | Assign a number to the expression. | - | put_number(self, func, value, nbytes, sign=no_sign) - | @param func: current function (C++: cfunc_t *) - | @param value: number value (C++: uint64) - | @param nbytes: size of the number in bytes (C++: int) - | @param sign: number sign (C++: type_sign_t) + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool | Check if the expression requires an lvalue. | - | requires_lvalue(self, child) -> bool - | @param child: The function will check if this child of our expression - | must be an lvalue. (C++: const cexpr_t *) - | @return: true if child must be an lvalue. + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) - | v: var_ref_t const * + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cexpr_t &) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' - | Get the other operand. This function returns the other operand (not - | the specified one) for binary expressions. - | | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) | - | - | theother(self, what) -> cexpr_t - | @param what (C++: const cexpr_t *) + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22038,7 +22019,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -22067,7 +22048,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -22117,36 +22098,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -22161,19 +22143,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -22201,30 +22183,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cfor_t const & + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -22233,16 +22221,17 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cfor_t const & + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -22257,7 +22246,8 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22266,7 +22256,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22278,7 +22268,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -22297,8 +22287,9 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t - | f: cfunc_t * - | post: bool + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | @@ -22306,24 +22297,22 @@ class cfunc_parentee_t(ctree_parentee_t) | delete_cfunc_parentee_t(self) | | calc_rvalue_type(self, *args) -> 'bool' - | Calculate rvalue type. This function tries to determine the type of - | the specified item based on its context. For example, if the current - | expression is the right side of an assignment operator, the type of - | its left side will be returned. This function can be used to determine - | the 'best' type of the specified expression. - | | calc_rvalue_type(self, target, e) -> bool - | @param target: 'best' type of the expression will be returned here - | (C++: tinfo_t *) - | @param e: expression to determine the desired type (C++: const - | cexpr_t *) - | @return: false if failed + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -22331,113 +22320,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -22449,10 +22449,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -22473,189 +22473,208 @@ class cfunc_t(builtins.object) | delete_cfunc_t(self) | | build_c_tree(self, *args) -> 'void' - | Generate the function body. This function (re)generates the function - | body from the underlying microcode. + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) -> 'int' - | Delete all orphan comments. The 'save_user_cmts()' function must be - | called after this call. + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | @param item (C++: const citem_t *) - | @param px (C++: int *) - | @param py (C++: int *) | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | | find_item_coords(self, item) -> PyObject * - | @param item (C++: const citem_t *) + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t | Find the label. | - | find_label(self, label) -> citem_t - | @param label (C++: int) - | @return: pointer to the ctree item with the specified label number. + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool - | @param ci (C++: const ctree_item_t &) - | @param udm (C++: udt_type_data_t *) + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) -> 'eamap_t &' - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool | Get the function type. | - | get_func_type(self, type) -> bool - | @param type: variable where the function type is returned (C++: - | tinfo_t *) - | @return: false if failure + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) -> 'bool' - | Get ctree item for the specified cursor position. - | 'vdui_t::get_current_item()' - | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | @param line: line of decompilation text (element of sv ) (C++: const - | char *) - | @param x: x cursor coordinate in the line (C++: int) - | @param is_ctree_line: does the line belong to statement area? (if not, - | it is assumed to belong to the declaration area) - | (C++: bool) - | @param phead: ptr to the first item on the line (used to attach block - | comments). May be NULL (C++: ctree_item_t *) - | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t - | *) - | @param ptail: ptr to the last item on the line (used to attach - | indented comments). May be NULL (C++: ctree_item_t *) - | @return: false if failed to get the current item + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) -> 'strvec_t const &' - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t | Get stack offset delta. The local variable stack offsets retrieved by - | v.location.stkoff() should be adjusted before being used as stack - | frame offsets in IDA. + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * | Retrieve a user defined comment. | - | get_user_cmt(self, loc, rt) -> char const * - | @param loc: ctree location (C++: const treeloc_t &) - | @param rt: should already retrieved comments retrieved again? (C++: - | cmt_retrieval_type_t) - | @return: pointer to the comment string or NULL + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 | Retrieve citem iflags. | - | get_user_iflags(self, loc) -> int32 - | @param loc: citem locator (C++: const citem_locator_t &) - | @return: ctree item iflags bits or 0 + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool | Retrieve a user defined union field selection. | - | get_user_union_selection(self, ea, path) -> bool - | @param ea: address (C++: ea_t) - | @param path: out: path describing the union selection. (C++: intvec_t - | *) - | @return: pointer to the path or NULL + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool | Check if there are orphan comments. | | locked(self, *args) -> 'bool' | locked(self) -> bool | | print_dcl(self, *args) -> 'void' + | print_dcl(self) | Print function prototype. | | print_func(self, *args) -> 'void' + | print_func(self, vp) | Print function text. | - | print_func(self, vp) - | @param vp: printer helper class to receive the generated text. (C++: - | vc_printer_t &) + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) -> 'void' - | Refresh ctext after a ctree modification. This function informs the - | decompiler that ctree ( 'body' ) have been modified and ctext ( 'sv' ) - | does not correspond to it anymore. It also refreshes the pseudocode - | windows if there is any. + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) -> 'void' | release(self) | | remove_unused_labels(self, *args) -> 'void' - | Remove unused labels. This function check what labels are really used - | by the function and removes the unused ones. + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) | Save user-defined comments into the database. | | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) | Save user-defined iflags into the database. | | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) | Save user-defined labels into the database. | | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) | Save user-defined number formats into the database. | | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) -> 'void' - | Set a user defined comment. This function stores the specified comment - | in the 'cfunc_t' structure. The 'save_user_cmts()' function must be - | called after it. - | | set_user_cmt(self, loc, cmt) - | @param loc: ctree location (C++: const treeloc_t &) - | @param cmt: new comment. if empty or NULL, then an existing comment is - | deleted. (C++: const char *) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) | Set citem iflags. | - | set_user_iflags(self, loc, iflags) - | @param loc: citem locator (C++: const citem_locator_t &) - | @param iflags: new iflags (C++: int32) + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) -> 'void' - | Set a union field selection. The 'save_user_unions()' function must be - | called after calling this function. - | | set_user_union_selection(self, ea, path) - | @param ea: address (C++: ea_t) - | @param path: in: path describing the union selection. (C++: const - | intvec_t &) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) -> 'void' - | Verify the ctree. This function verifies the ctree. If the ctree is - | malformed, an internal error is generated. Use it to verify the ctree - | after your modifications. - | | verify(self, aul, even_without_debugger) - | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) - | @param even_without_debugger: if false and there is no debugger, the - | verification will be skipped (C++: bool) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22667,72 +22686,83 @@ class cfunc_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries - | Get pointer to map of instruction boundaries. This function - | initializes the boundary map if not done yet. + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap - | Get pointer to ea->insn map. This function initializes eamap if not - | done yet. + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars + | get_lvars(self) -> lvars_t | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mba_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode - | Get pointer to decompilation output: the pseudocode. This function - | generates pseudocode if not done yet. + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings + | get_warnings(self) -> hexwarns_t | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings Help on function cfunc_type in module ida_hexrays: @@ -22753,11 +22783,12 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t - | p: cfunc_t * | + | @param p: cfunc_t * | | __init__(self, r) -> cfuncptr_t - | r: qrefcnt_t< cfunc_t > const & + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -22780,22 +22811,25 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | item: citem_t const * - | px: int * - | py: int * | + | @param item: citem_t const * + | @param px: int * + | @param py: int * | - | find_item_coords(self, item) -> PyObject * - | item: citem_t const * + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t - | label: int + | + | @param label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool - | ci: ctree_item_t const & - | udm: udt_type_data_t * + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -22805,16 +22839,18 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool - | type: tinfo_t * + | + | @param type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | line: char const * - | x: int - | is_ctree_line: bool - | phead: ctree_item_t * - | pitem: ctree_item_t * - | ptail: ctree_item_t * + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -22827,17 +22863,20 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * - | loc: treeloc_t const & - | rt: enum cmt_retrieval_type_t + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 - | loc: citem_locator_t const & + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool - | ea: ea_t - | path: intvec_t * + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -22853,7 +22892,8 @@ class cfuncptr_t(builtins.object) | | print_func(self, *args) -> 'void' | print_func(self, vp) - | vp: vc_printer_t & + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -22884,23 +22924,27 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) - | loc: treeloc_t const & - | cmt: char const * + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) - | loc: citem_locator_t const & - | iflags: int32 + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) - | ea: ea_t - | path: intvec_t const & + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) - | aul: enum allow_unused_labels_t - | even_without_debugger: bool + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22912,61 +22956,61 @@ class cfuncptr_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mba_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings @@ -22979,30 +23023,36 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -23011,7 +23061,8 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cgoto_t const & + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23023,7 +23074,7 @@ class cgoto_t(builtins.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -23042,7 +23093,8 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t - | _gc: graph_chains_t * + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -23054,8 +23106,9 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int - | @param cv (C++: chain_visitor_t &) - | @param gca (C++: int) + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -23086,19 +23139,22 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | t: mopt_t - | off: sval_t - | w: int - | v: int + | __init__(self, t, off, w=1, v=-1) -> chain_t | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int | | __init__(self, _k, w=1) -> chain_t - | _k: voff_t const & - | w: int + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: chain_t const & + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -23109,11 +23165,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' + | append_list(self, mba, list) | Append the contents of the chain to the specified list of locations. | - | append_list(self, mba, list) - | @param mba (C++: const mba_t *) - | @param list (C++: mlist_t *) + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -23132,7 +23188,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -23163,53 +23220,61 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | set_inited(self, *args) -> 'void' | set_inited(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_term(self, *args) -> 'void' | set_term(self, b) - | @param b (C++: bool) + | + | @param b: bool | | set_value(self, *args) -> 'void' | set_value(self, r) - | @param r (C++: const chain_t &) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from ida_pro.intvec_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23219,28 +23284,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23264,70 +23339,81 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23357,7 +23443,8 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -23366,8 +23453,9 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int - | @param nblock (C++: int) - | @param ch (C++: chain_t &) + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23379,7 +23467,7 @@ class chain_visitor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -23387,17 +23475,16 @@ class chain_visitor_t(builtins.object) Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) -> 'bool' - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - checkout_hexrays_license(silent) -> bool - @param silent: silently fail if the license cannot be checked out. - (C++: bool) - @return: false if failed + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -23413,31 +23500,39 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | r: cif_t const & + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cif_t const & + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -23446,23 +23541,25 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t - | @param r (C++: const cif_t &) + | + | @param r: cif_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cif_t const & + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -23482,13 +23579,204 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -23503,31 +23791,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | r: cinsn_t const & + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -23569,141 +23865,180 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | indent: int - | vp: vc_printer_t & - | use_curly: enum use_curly_t + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) - | r: cinsn_t * + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) - | _v: casm_t * + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) - | _v: cblock_t * + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) - | _v: cdo_t * + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) - | _v: cexpr_t * + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) - | _v: cfor_t * + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) - | _v: cgoto_t * + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) - | _v: cif_t * + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) - | _v: creturn_t * + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) - | _v: cswitch_t * + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) - | _v: cwhile_t * + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t - | @param r (C++: const cinsn_t &) + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' - | Cleanup the statement. This function properly deletes all children and - | sets the item type to cit_empty. + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' - | Collect free 'break' statements. This function finds all free 'break' - | statements within the current statement. A 'break' statement is free - | if it does not have a loop or switch parent that that is also within - | the current statement. - | | collect_free_breaks(self, breaks) -> bool - | @param breaks: pointer to the variable where the vector of all found - | free break statements is returned. This argument can - | be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free break statements have been found + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' - | Collect free 'continue' statements. This function finds all free - | 'continue' statements within the current statement. A 'continue' - | statement is free if it does not have a loop parent that that is also - | within the current statement. - | | collect_free_continues(self, continues) -> bool - | @param continues: pointer to the variable where the vector of all - | found free continue statements is returned. This - | argument can be NULL. (C++: cinsnptrvec_t *) - | @return: true if some free continue statements have been found + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cinsn_t const & + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) -> 'bool' - | Check if the statement has free 'break' statements. + | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' - | Check if the statement has free 'continue' statements. + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool | Check if the statement contains a statement of the specified type. | - | contains_insn(self, type, times=1) -> bool - | @param type: statement opcode to look for (C++: ctype_t) - | @param times: how many times TYPE should be present (C++: int) - | @return: true if the statement has at least TIMES children with opcode - | == TYPE + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' - | Create a new if-statement. The current statement must be a block. The - | new statement will be appended to it. - | | create_if(self, cnd) -> cif_t - | @param cnd: if condition. It will be deleted after being copied. (C++: - | cexpr_t *) + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' - | Create a new statement. The current statement must be a block. The new - | statement will be appended to it. - | | new_insn(self, insn_ea) -> cinsn_t - | @param insn_ea: statement address (C++: ea_t) + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' - | Print the statement into one line. Currently this function is not - | available. - | | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: cinsn_t &) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' + | zero(self) | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- @@ -23711,7 +24046,8 @@ class cinsn_t(citem_t) | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool - | insn: cinsn_t const * + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23784,36 +24120,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | replace_by(self, o) @@ -23828,16 +24165,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -23854,7 +24191,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) -> 'bool' cinsn_t_insn_is_epilog(insn) -> bool - insn: cinsn_t const * + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -23865,15 +24203,19 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | x: qvector< cinsn_t * > const & + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23882,25 +24224,31 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< cinsn_t * > const & + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t *const & + | + | @param i: size_t + | @param v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: cinsn_t *const & + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -23928,70 +24276,81 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator | + | @param it: qvector< cinsn_t * >::iterator | | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | first: qvector< cinsn_t * >::iterator - | last: qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) -> 'cinsn_t **' | extract(self) -> cinsn_t ** | | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' | find(self, x) -> qvector< cinsn_t * >::iterator - | x: cinsn_t *const & | + | @param x: cinsn_t *const & | | find(self, x) -> qvector< cinsn_t * >::const_iterator - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: cinsn_t ** - | len: size_t + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | it: qvector< cinsn_t * >::iterator - | x: cinsn_t *const & + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) - | x: cinsn_t *const & + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: cinsn_t *const & | + | @param _newsize: size_t + | @param x: cinsn_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< cinsn_t * > & + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24022,7 +24381,9 @@ class citem_cmt_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | s: char const * + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -24048,7 +24409,7 @@ class citem_cmt_t(builtins.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used Help on class citem_locator_t in module ida_hexrays: @@ -24059,36 +24420,43 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t - | _ea: ea_t - | _op: enum ctype_t | + | @param _ea: ea_t + | @param _op: enum ctype_t | | __init__(self, i) -> citem_locator_t - | i: citem_t const * + | + | @param i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24097,7 +24465,8 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: citem_locator_t const & + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24109,10 +24478,10 @@ class citem_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -24130,8 +24499,9 @@ class citem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | o: enum ctype_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -24168,53 +24538,54 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) - | v: enum ctype_t + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool | Does the item contain an expression? | - | contains_expr(self, e) -> bool - | @param e (C++: const cexpr_t *) + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t - | @param _ea (C++: ea_t) + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' - | Find parent of the specified item. - | | find_parent_of(self, sitem) -> citem_t - | @param sitem: Item to find the parent of. The search will be performed - | among the children of the item pointed by this . (C++: - | const citem_t *) - | @return: NULL if not found | + | @param sitem: citem_t const * | | find_parent_of(self, item) -> citem_t - | item: citem_t const * - | @return: NULL if not found + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool | Is an expression? | | print1(self, *args) -> 'void' + | print1(self, func) | Print item into one line. | - | print1(self, func) - | @param func: parent function. This argument is used to find out the - | referenced variable names. (C++: const cfunc_t *) - | @return: length of the generated text. + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' - | Swap two 'citem_t' . - | | swap(self, r) - | @param r (C++: citem_t &) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24226,19 +24597,19 @@ class citem_t(builtins.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -24262,6 +24633,7 @@ citem_to_specific_type(self) Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) -> 'void' + clear_cached_cfuncs() Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -24278,11 +24650,13 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | b: cinsn_t * + | __init__(self, b) -> cloop_t | + | @param b: cinsn_t * | | __init__(self, r) -> cloop_t - | r: cloop_t const & + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -24291,7 +24665,8 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -24300,7 +24675,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -24315,22 +24690,23 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function close_hexrays_waitbox in module ida_hexrays: close_hexrays_waitbox(*args) -> 'void' - Close the waitbox displayed by the decompiler. Useful if - DECOMP_NO_HIDE was used during decompilation. + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) -> 'bool' + close_pseudocode(f) -> bool Close pseudocode window. - close_pseudocode(f) -> bool - @param f: pointer to window (C++: TWidget *) - @return: false if failed + @param f: (C++: TWidget *) pointer to window + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -24341,31 +24717,38 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t - | _opnum: int + | + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -24374,28 +24757,32 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) - | type: tinfo_t const & - | parent: citem_t const * - | nice_stroff: bool * + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' + | assign(self, v, nbytes, sign) | Assign new value | - | assign(self, v, nbytes, sign) - | @param v: new value (C++: uint64) - | @param nbytes: size of the new value in bytes (C++: int) - | @param sign: sign of the value (C++: type_sign_t) + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cnumber_t const & + | + | @param r: cnumber_t const & | | value(self, *args) -> 'uint64' - | Get value. This function will properly extend the number sign to - | 64bits depending on the type sign. - | | value(self, type) -> uint64 - | @param type (C++: const tinfo_t &) + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24407,10 +24794,10 @@ class cnumber_t(builtins.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -24436,92 +24823,94 @@ class codegen_t(builtins.object) | delete_codegen_t(self) | | analyze_prolog(self, *args) -> 'merror_t' - | Analyze prolog/epilog of the function to decompile. If prolog is - | found, allocate and fill 'mba->pi' structure. - | | analyze_prolog(self, fc, reachable) -> merror_t - | @param fc: flow chart (C++: const class qflow_chart_t &) - | @param reachable: bitmap of reachable blocks (C++: const class - | bitset_t &) - | @return: error code + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) -> 'minsn_t *' - | Emit one microinstruction. The L, R, D arguments usually mean the - | register number. However, they depend on CODE. For example:for m_goto - | and m_jcnd L is the target addressfor m_ldc L is the constant value to - | load - | | emit(self, code, width, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param width (C++: int) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int | | emit(self, code, l, r, d) -> minsn_t - | @param code (C++: mcode_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @return: created microinstruction. can be NULL if the instruction got - | immediately optimized away. + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) -> 'minsn_t *' + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t | Emit one microinstruction. This variant takes a data type not a size. | - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | @param code (C++: mcode_t) - | @param dtype (C++: op_dtype_t) - | @param l (C++: uval_t) - | @param r (C++: uval_t) - | @param d (C++: uval_t) - | @param offsize (C++: int) + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) -> 'merror_t' + | gen_micro(self) -> merror_t | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal | | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t | Generate microcode to calculate the address of a memory operand. | - | load_effective_address(self, n, flags=0) -> mreg_t - | @param n: - number of INSN operand (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand address. mr_none - failed - | (not a memory operand) + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) -> 'mreg_t' + | load_operand(self, opnum, flags=0) -> mreg_t | Generate microcode to load one operand. | - | load_operand(self, opnum, flags=0) -> mreg_t - | @param opnum (C++: int) - | @param flags: - reserved for future use (C++: int) - | @return: register containing the operand. + | @param opnum: (C++: int) + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand. | | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) | This method is called when the microcode generation is done. | | prepare_gen_micro(self, *args) -> 'merror_t' - | Setup internal data to handle new instruction. This method should be - | called before calling 'gen_micro()' . Usually 'gen_micro()' is called - | by the decompiler. You have to call this function explicitly only if - | you yourself call 'gen_micro()' . The instruction is in INSN + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal | | store_operand(self, *args) -> 'bool' - | Generate microcode to store an operand. In case of success an - | arbitrary number of instructions can be generated (and even no - | instruction if the source and target are the same) - | | store_operand(self, n, mop, flags=0, outins=None) -> bool - | @param n: - number of target INSN operand (C++: int) - | @param mop: - operand to be stored (C++: const mop_t &) - | @param flags: - reserved for future use (C++: int) - | @param outins: - (OUT) the last generated instruction (C++: minsn_t - | **) - | @return: success + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24533,19 +24922,19 @@ class codegen_t(builtins.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -24553,51 +24942,49 @@ class codegen_t(builtins.object) Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) -> 'merror_t' + convert_to_user_call(udc, cdg) -> merror_t try to generate user-defined call for an instruction - convert_to_user_call(udc, cdg) -> merror_t - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) Help on function create_cfunc in module ida_hexrays: create_cfunc(*args) -> 'cfuncptr_t' - Create a new 'cfunc_t' object. - create_cfunc(mba) -> cfuncptr_t - @param mba: microcode object. After creating the cfunc object it takes - the ownership of MBA. (C++: mba_t *) + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. Help on function create_field_name in module ida_hexrays: create_field_name(*args) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring - @param type (C++: const tinfo_t &) - @param offset (C++: uval_t) + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' - Create a reference to a named type. - create_typedef(name) -> tinfo_t - @param name: type name (C++: const char *) - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + Create a reference to an ordinal type. + @param name: char const * + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - n: int - @return: type which refers to the specified ordinal. For example, if n - is 1, the type info which refers to ordinal type 1 is - created. + + @param n: int Help on class creturn_t in module ida_hexrays: @@ -24613,30 +25000,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: creturn_t const & + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -24645,7 +25038,8 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: creturn_t const & + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24668,7 +25062,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -24684,30 +25078,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -24716,16 +25116,17 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cswitch_t const & + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -24745,7 +25146,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -24756,33 +25157,40 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | _lnnum: int - | _x: int - | _y: int + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -24791,13 +25199,14 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24809,16 +25218,16 @@ class ctext_position_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24874,7 +25283,7 @@ class ctree_anchor_t(builtins.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value Help on class ctree_item_t in module ida_hexrays: @@ -24907,31 +25316,36 @@ class ctree_item_t(builtins.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) -> 'int' + | get_label_num(self, gln_flags) -> int | Get label number of the current item. | - | get_label_num(self, gln_flags) -> int - | @param gln_flags: Combination of get_label_num control bits (C++: - | int) - | @return: -1 if failed or no label + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) -> 'lvar_t *' - | Get pointer to local variable. If the current item is a local - | variable, this function will return pointer to its definition. + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) -> 'member_t *' - | Get pointer to structure member. If the current item is a structure - | field, this function will return pointer to its definition. - | | get_memptr(self, p_sptr=None) -> member_t * - | @param p_sptr: pointer to the variable where the pointer to the parent - | structure is returned. This parameter can be NULL. - | (C++: struc_t **) - | @return: NULL if failed + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) -> 'bool' + | is_citem(self) -> bool | Is the current item is a ctree item? | | ---------------------------------------------------------------------- @@ -24944,7 +25358,7 @@ class ctree_item_t(builtins.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -24957,7 +25371,7 @@ class ctree_item_t(builtins.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -24971,15 +25385,19 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | x: qvector< citem_t * > const & + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -24988,25 +25406,31 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< citem_t * > const & + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: citem_t *const & + | + | @param i: size_t + | @param v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: citem_t *const & + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -25034,70 +25458,81 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator | + | @param it: qvector< citem_t * >::iterator | | erase(self, first, last) -> qvector< citem_t * >::iterator - | first: qvector< citem_t * >::iterator - | last: qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) -> 'citem_t **' | extract(self) -> citem_t ** | | find(self, *args) -> 'qvector< citem_t * >::const_iterator' | find(self, x) -> qvector< citem_t * >::iterator - | x: citem_t *const & | + | @param x: citem_t *const & | | find(self, x) -> qvector< citem_t * >::const_iterator - | x: citem_t *const & + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: citem_t *const & + | + | @param x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: citem_t ** - | len: size_t + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator - | it: qvector< citem_t * >::iterator - | x: citem_t *const & + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) - | x: citem_t *const & + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: citem_t *const & | + | @param _newsize: size_t + | @param x: citem_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< citem_t * > & + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25135,20 +25570,28 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t - | post: bool + | + | @param post: bool | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_ctree_parentee_t(...) | delete_ctree_parentee_t(self) | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' - | Recalculate types of parent node. If a node type has been changed, the - | visitor must recalculate all parent types, otherwise the ctree becomes - | inconsistent. If during this recalculation a parent node is - | added/deleted, this function returns true. In this case it is - | recommended to restart the traversal because the information about + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25160,101 +25603,105 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -25266,10 +25713,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -25282,7 +25729,8 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t - | _flags: int + | + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -25290,101 +25738,105 @@ class ctree_visitor_t(builtins.object) | delete_ctree_visitor_t(self) | | apply_to(self, *args) -> 'int' - | Traverse ctree. The traversal will start at the specified item and - | continue until of one the visit_...() functions return a non-zero - | value. - | | apply_to(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' - | Traverse only expressions. The traversal will start at the specified - | item and continue until of one the visit_...() functions return a non- - | zero value. - | | apply_to_exprs(self, item, parent) -> int - | @param item: root of the ctree to traverse (C++: citem_t *) - | @param parent: parent of the specified item. can be specified as NULL. - | (C++: citem_t *) - | @return: 0 or a non-zero value returned by a visit_...() function + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' - | Do not prune children. This is an internal function, no need to call - | it. + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' + | clr_restart(self) | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' - | Visit an expression after having visited its children This is a - | visitor function which should be overridden by a derived class to do - | some useful work. This visitor performs post-order traserval, i.e. an - | item is visited after its children. - | | leave_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' - | Visit a statement after having visited its children This is a visitor - | function which should be overridden by a derived class to do some - | useful work. This visitor performs post-order traserval, i.e. an item - | is visited after its children. - | | leave_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool | Should the traversal restart? | | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' - | Prune children. This function may be called by a visitor() to skip all - | children of the current item. + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' - | Restart the travesal. Meaningful only in 'apply_to_exprs()' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' - | Visit an expression. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_expr(self, arg0) -> int - | arg0: cexpr_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' - | Visit a statement. This is a visitor function which should be - | overridden by a derived class to do some useful work. This visitor - | performs pre-order traserval, i.e. an item is visited before its - | children. - | | visit_insn(self, arg0) -> int - | arg0: cinsn_t * - | @return: 0 to continue the traversal, nonzero to stop. + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25396,10 +25848,10 @@ class ctree_visitor_t(builtins.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -25419,30 +25871,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -25451,7 +25909,8 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: cwhile_t const & + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25469,7 +25928,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t - | @param r (C++: const cloop_t &) + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -25478,7 +25938,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -25490,14 +25950,15 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' debug_hexrays_ctree(level, msg) - level: int - msg: char const * + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: @@ -25507,121 +25968,123 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - Decompile a function. Multiple decompilations of the same function - return the same object. - decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) -> 'bool' + decompile_many(outfile, funcaddrs, flags) -> bool Batch decompilation. Decompile all or the specified functions - decompile_many(outfile, funcaddrs, flags) -> bool - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) -> 'char const *' - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - dstr(tif) -> char const * - @param tif (C++: const tinfo_t *) + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) -> 'tinfo_t' + dummy_ptrtype(ptrsize, isfp) -> tinfo_t Generate a dummy pointer type - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) -> 'eamap_iterator_t' + eamap_begin(map) -> eamap_iterator_t Get iterator pointing to the beginning of eamap_t. - eamap_begin(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' + eamap_clear(map) Clear eamap_t. - eamap_clear(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) -> 'eamap_iterator_t' + eamap_end(map) -> eamap_iterator_t Get iterator pointing to the end of eamap_t. - eamap_end(map) -> eamap_iterator_t - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) -> 'void' + eamap_erase(map, p) Erase current element from eamap_t. - eamap_erase(map, p) - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) -> 'eamap_iterator_t' + eamap_find(map, key) -> eamap_iterator_t Find the specified key in eamap_t. - eamap_find(map, key) -> eamap_iterator_t - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) -> 'ea_t const &' + eamap_first(p) -> ea_t const & Get reference to the current map key. - eamap_first(p) -> ea_t const & - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) -> 'void' + eamap_free(map) Delete eamap_t instance. - eamap_free(map) - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) -> 'eamap_iterator_t' + eamap_insert(map, key, val) -> eamap_iterator_t Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - eamap_insert(map, key, val) -> eamap_iterator_t - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -25632,14 +26095,16 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: eamap_iterator_t const & + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -25659,7 +26124,7 @@ class eamap_iterator_t(builtins.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -25669,39 +26134,40 @@ class eamap_iterator_t(builtins.object) Help on function eamap_new in module ida_hexrays: eamap_new(*args) -> 'eamap_t *' + eamap_new() -> eamap_t Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) -> 'eamap_iterator_t' + eamap_next(p) -> eamap_iterator_t Move to the next element. - eamap_next(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) -> 'eamap_iterator_t' + eamap_prev(p) -> eamap_iterator_t Move to the previous element. - eamap_prev(p) -> eamap_iterator_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) -> 'cinsnptrvec_t &' + eamap_second(p) -> cinsnptrvec_t Get reference to the current map value. - eamap_second(p) -> cinsnptrvec_t - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) -> 'size_t' + eamap_size(map) -> size_t Get size of eamap_t. - eamap_size(map) -> size_t - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -25812,7 +26278,8 @@ class eamap_t(builtins.object) | | at(self, *args) -> 'cinsnptrvec_t &' | at(self, _Keyval) -> cinsnptrvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -25904,30 +26371,36 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -25939,7 +26412,8 @@ class fnumber_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: fnumber_t const & + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -25957,10 +26431,10 @@ class fnumber_t(builtins.object) | list of weak references to the object (if defined) | | fnum - | fnumber_t_fnum_get(self) -> fpvalue_t + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -25986,16 +26460,17 @@ class gco_info_t(builtins.object) | delete_gco_info_t(self) | | append_to_list(self, *args) -> 'bool' - | Append operand info to LIST. This function converts IDA register - | number or stack offset to a decompiler list. - | | append_to_list(self, list, mba) -> bool - | @param list: list to append to (C++: mlist_t *) - | @param mba: microcode object (C++: const mba_t *) + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object | | cvt_to_ivl(self, *args) -> 'vivl_t' - | Convert operand info to VIVL. The returned VIVL can be used, for - | example, in a call of get_valranges(). + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -26016,13 +26491,19 @@ class gco_info_t(builtins.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag @@ -26030,172 +26511,171 @@ class gco_info_t(builtins.object) Help on function gen_microcode in module ida_hexrays: gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param decomp_flags: bitwise combination of decompile() flags ... - bits (C++: int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) -> 'char const *' get_ctype_name(op) -> char const * - @param op (C++: ctype_t) + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) -> 'bool' - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - returns true. - get_current_operand(out) -> bool - @param out (C++: gco_info_t *) + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) -> 'tinfo_t' + get_float_type(width) -> tinfo_t Get a type of a floating point value with the specified width - get_float_type(width) -> tinfo_t - @param width: width of the desired type (C++: int) - @return: type info object + @param width: (C++: int) width of the desired type + @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) -> 'char const *' + get_hexrays_version() -> char const * Get decompiler version. The returned string is of the form <major>.<minor>.<revision>.<build-date> + + @return: pointer to version string. For example: "2.0.0.140605" Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) -> 'tinfo_t' - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) -> 'bool' - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - get_member_type(mptr, type) -> bool - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) -> 'qstring *' + get_merror_desc(code, mba) -> str Get textual description of an error code - get_merror_desc(code, mba) -> str - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mba_t *) - @return: the error address + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' + get_mreg_name(reg, width, ud=None) -> str Get the microregister name. - get_mreg_name(reg, width, ud=None) -> str - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param out: (C++: qstring *) output buffer, may be nullptr + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) -> 'type_sign_t' - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - get_op_signness(op) -> type_sign_t - @param op (C++: ctype_t) + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) -> 'mcode_t' get_signed_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) -> 'mlist_t const &' - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) -> 'bool' + get_type(id, tif, guess) -> bool Get a global type. Global types are types of addressable objects and struct/union/enum types - get_type(id, tif, guess) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) -> 'tinfo_t' - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - get_unk_type(size) -> tinfo_t - @param size: size of the type in bytes (C++: int) + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) -> 'vdui_t *' - Get the 'vdui_t' instance associated to the TWidget - get_widget_vdui(f) -> vdui_t - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) -> 'minsn_t *' - Skip assertions backward. - getb_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) -> 'minsn_t *' - Skip assertions forward. - getf_reginsn(ins) -> minsn_t - @param ins (C++: const minsn_t *) + + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -26218,26 +26698,30 @@ class graph_chains_t(block_chains_vec_t) | delete_graph_chains_t(self) | | acquire(self, *args) -> 'void' + | acquire(self) | Lock the chains. | | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca_flags) -> int | Visit all chains | - | for_all_chains(self, cv, gca_flags) -> int - | @param cv: chain visitor (C++: chain_visitor_t &) - | @param gca_flags: combination of GCA_ bits (C++: int) + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) -> 'bool' - | Are the chains locked? It is a good idea to lock the chains before - | using them. This ensures that they won't be recalculated and - | reallocated during the use. See the 'chain_keeper_t' class for that. + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) -> 'void' + | release(self) | Unlock the chains. | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: graph_chains_t &) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26250,7 +26734,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26260,19 +26745,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: block_chains_t const & + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26285,16 +26771,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t - | it: qvector< block_chains_t >::iterator | + | @param it: qvector< block_chains_t >::iterator | | erase(self, first, last) -> block_chains_t - | first: qvector< block_chains_t >::iterator - | last: qvector< block_chains_t >::iterator + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -26304,40 +26790,48 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) - | x: block_chains_t const & + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: block_chains_t * - | len: size_t + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t - | it: qvector< block_chains_t >::iterator - | x: block_chains_t const & + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | x: block_chains_t const & + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: block_chains_t const & | + | @param _newsize: size_t + | @param x: block_chains_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -26357,22 +26851,24 @@ class graph_chains_t(block_chains_vec_t) Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) -> 'bool' + has_cached_cfunc(ea) -> bool Do we have a cached decompilation result for 'ea'? - has_cached_cfunc(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function has_mcode_seloff in module ida_hexrays: has_mcode_seloff(*args) -> 'bool' has_mcode_seloff(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * - @param size (C++: size_t) + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -26383,15 +26879,17 @@ class hexrays_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, c, ea, buf=None) -> hexrays_failure_t | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, c, ea, buf) -> hexrays_failure_t - | c: enum merror_t - | ea: ea_t - | buf: qstring const & + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -26413,13 +26911,13 @@ class hexrays_failure_t(builtins.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -26428,7 +26926,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) - @param ptr (C++: void *) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -26439,30 +26938,36 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -26471,7 +26976,8 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: hexwarn_t const & + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26483,13 +26989,13 @@ class hexwarn_t(builtins.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -26508,15 +27014,19 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | x: qvector< hexwarn_t > const & + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26525,25 +27035,31 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< hexwarn_t > const & + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: hexwarn_t const & + | + | @param i: size_t + | @param v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: hexwarn_t const & + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -26554,7 +27070,6 @@ class hexwarns_t(builtins.object) | | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26567,78 +27082,85 @@ class hexwarns_t(builtins.object) | | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator | + | @param it: qvector< hexwarn_t >::iterator | | erase(self, first, last) -> hexwarn_t - | first: qvector< hexwarn_t >::iterator - | last: qvector< hexwarn_t >::iterator + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) -> 'hexwarn_t *' | extract(self) -> hexwarn_t | | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | find(self, x) -> hexwarn_t - | x: hexwarn_t const & | - | - | find(self, x) -> hexwarn_t - | x: hexwarn_t const & + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: hexwarn_t * - | len: size_t + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t - | it: qvector< hexwarn_t >::iterator - | x: hexwarn_t const & + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) - | x: hexwarn_t const & + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: hexwarn_t const & | + | @param _newsize: size_t + | @param x: hexwarn_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< hexwarn_t > & + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26674,15 +27196,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | _ea: ea_t - | _lnnum: int - | _x: int - | _y: int | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __init__(self, _ea, p) -> history_item_t - | _ea: ea_t - | p: ctext_position_t const & + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -26693,10 +27216,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -26706,37 +27229,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ctext_position_t const & + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool | Is the cursor in the variable/type declaration area? | - | in_ctree(self, hdrlines) -> bool - | @param hdrlines: Number of lines of the declaration area (C++: int) + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -26748,13 +27278,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes inherited from ctext_position_t: @@ -26789,22 +27319,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) - | v: history_item_t const & + | + | @param v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26817,35 +27351,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26858,78 +27399,85 @@ class history_t(qvector_history_t) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26951,314 +27499,329 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' - Check that your plugin is compatible with hex-rays decompiler. This - function must be called before calling any other decompiler function. - init_hexrays_plugin(flags=0) -> bool - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and is compatible with your - plugin + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - install_microcode_filter(filter, install=True) -> bool - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - @return: success + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) -> 'bool' + is_additive(op) -> bool Is additive operator? - is_additive(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) -> 'bool' + is_assignment(op) -> bool Is assignment operator? - is_assignment(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) -> 'bool' + is_binary(op) -> bool Is binary operator? - is_binary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) -> 'bool' + is_bitop(op) -> bool Is bit related operator? - is_bitop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) -> 'bool' + is_bool_type(type) -> bool Is a boolean type? - is_bool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) -> 'bool' + is_break_consumer(op) -> bool Does a break statement influence the specified statement code? - is_break_consumer(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) -> 'bool' + is_commutative(op) -> bool Is commutative operator? - is_commutative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) -> 'bool' + is_inplace_def(type) -> bool Is struct/union/enum definition (not declaration)? - is_inplace_def(type) -> bool - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> 'bool' - Is a kernel register? Kernel registers are temporary registers that - can be used freely. They may be used to store values that cross - instruction or basic block boundaries. Kernel registers do not map to - regular processor registers. See also 'mba_t::alloc_kreg()' - is_kreg(r) -> bool - @param r (C++: mreg_t) + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) -> 'bool' + is_logical(op) -> bool Is logical operator? - is_logical(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) -> 'bool' + is_loop(op) -> bool Is loop statement code? - is_loop(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) -> 'bool' + is_lvalue(op) -> bool Is Lvalue operator? - is_lvalue(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool - @param maymust (C++: maymust_t) + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) -> 'bool' is_mcode_convertible_to_jmp(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) -> 'bool' is_mcode_convertible_to_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool - @param op (C++: mcode_t) + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) -> 'bool' - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - is_mcode_propagatable(mcode) -> bool - @param mcode (C++: mcode_t) + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) -> 'bool' + is_multiplicative(op) -> bool Is multiplicative operator? - is_multiplicative(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) -> 'bool' + is_nonbool_type(type) -> bool Is definitely a non-boolean type? - is_nonbool_type(type) -> bool - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) -> 'bool' + is_paf(t) -> bool Is a pointer, array, or function type? - is_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) -> 'bool' + is_prepost(op) -> bool Is pre/post increment/decrement operator? - is_prepost(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) -> 'bool' + is_ptr_or_array(t) -> bool Is a pointer or array type? - is_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) -> 'bool' + is_relational(op) -> bool Is comparison operator? - is_relational(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) -> 'bool' + is_small_udt(tif) -> bool Is a small structure or union? - is_small_udt(tif) -> bool - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) -> 'bool' + is_type_correct(ptr) -> bool Verify a type string. - is_type_correct(ptr) -> bool - @param ptr (C++: const type_t *) - @return: true if type string is correct + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) -> 'bool' + is_unary(op) -> bool Is unary operator? - is_unary(op) -> bool - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on class iterator in module ida_hexrays: @@ -27269,15 +27832,18 @@ class iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __init__(self, *args) | __init__(self, n=-1) -> iterator - | n: int + | + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: bitset_t::iterator const & + | + | @param n: bitset_t::iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -27318,32 +27884,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t - | _off: uval_t - | _size: uval_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ivl_t const & + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -27355,11 +27928,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ivl_t const & + | + | @param r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool - | @param off2 (C++: uval_t) + | + | @param off2: uval_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27369,19 +27944,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | intersect(self, *args) -> 'void' | intersect(self, r) - | @param r (C++: const ivl_t &) + | + | @param r: ivl_t const & | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27416,10 +27995,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -27446,16 +28025,16 @@ class ivl_with_name_t(builtins.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole Help on class ivlset_t in module ida_hexrays: @@ -27471,31 +28050,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -27507,29 +28094,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | add(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | add(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool - | @param ivs (C++: const ivlset_t &) - | @param mask (C++: const ivl_t &) + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: ivlset_t const & + | + | @param r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool - | @param off (C++: uval_t) + | + | @param off: uval_t | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27539,33 +28130,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool - | @param ivl (C++: const ivl_t &) - | @param strict (C++: bool) | + | @param ivl: ivl_t const & + | @param strict: bool | | has_common(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool - | @param ivs (C++: const ivlset_t &) + | + | @param ivs: ivlset_t const & | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool - | @param ivl (C++: const ivl_t &) | + | @param ivl: ivl_t const & | | sub(self, ea, size) -> bool - | ea: ea_t - | size: asize_t | + | @param ea: ea_t + | @param size: asize_t | | sub(self, ivs) -> bool - | ivs: ivlset_t const & + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27600,7 +28195,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -27616,11 +28212,14 @@ class ivlset_t(uval_ivl_ivlset_t) | | single_value(self, *args) -> 'bool' | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -27635,31 +28234,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int - a: mop_t const & - b: mop_t const & + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. Help on function locate_lvar in module ida_hexrays: locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool Find a variable by name. - locate_lvar(out, func_ea, varname) -> bool - @param out: output buffer for the variable locator (C++: - lvar_locator_t *) - @param func_ea: function start address (C++: ea_t) - @param varname: variable name (C++: const char *) - @return: success Since VARNAME is not always enough to find the - variable, it may decompile the function. + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -27670,32 +28275,40 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -27704,33 +28317,46 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -27743,10 +28369,10 @@ class lvar_locator_t(builtins.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -27759,71 +28385,70 @@ class lvar_locator_t(builtins.object) Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_begin(map) -> lvar_mapping_iterator_t Get iterator pointing to the beginning of lvar_mapping_t. - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) -> 'void' + lvar_mapping_clear(map) Clear lvar_mapping_t. - lvar_mapping_clear(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_end(map) -> lvar_mapping_iterator_t Get iterator pointing to the end of lvar_mapping_t. - lvar_mapping_end(map) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) -> 'void' + lvar_mapping_erase(map, p) Erase current element from lvar_mapping_t. - lvar_mapping_erase(map, p) - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t Find the specified key in lvar_mapping_t. - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) -> 'lvar_locator_t const &' + lvar_mapping_first(p) -> lvar_locator_t Get reference to the current map key. - lvar_mapping_first(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) -> 'void' + lvar_mapping_free(map) Delete lvar_mapping_t instance. - lvar_mapping_free(map) - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -27834,14 +28459,16 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: lvar_mapping_iterator_t const & + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -27861,7 +28488,7 @@ class lvar_mapping_iterator_t(builtins.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27871,39 +28498,40 @@ class lvar_mapping_iterator_t(builtins.object) Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) -> 'lvar_mapping_t *' + lvar_mapping_new() -> lvar_mapping_t Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_next(p) -> lvar_mapping_iterator_t Move to the next element. - lvar_mapping_next(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_prev(p) -> lvar_mapping_iterator_t Move to the previous element. - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) -> 'lvar_locator_t &' + lvar_mapping_second(p) -> lvar_locator_t Get reference to the current map value. - lvar_mapping_second(p) -> lvar_locator_t - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) -> 'size_t' + lvar_mapping_size(map) -> size_t Get size of lvar_mapping_t. - lvar_mapping_size(map) -> size_t - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -27922,7 +28550,8 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t - | _Keyval: lvar_locator_t const & + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -27948,37 +28577,44 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t - | m: mba_t * - | i: int - | o: sval_t | + | @param m: mba_t * + | @param i: int + | @param o: sval_t | | __init__(self, r) -> lvar_ref_t - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -27987,13 +28623,16 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_ref_t const & + | + | @param r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lvar_ref_t &) + | + | @param r: lvar_ref_t & | | var(self, *args) -> 'lvar_t &' + | var(self) -> lvar_t | Retrieve the referenced variable. | | ---------------------------------------------------------------------- @@ -28006,13 +28645,13 @@ class lvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -28031,14 +28670,16 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_saved_info_t const & + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -28103,25 +28744,25 @@ class lvar_saved_info_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28137,15 +28778,19 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | x: qvector< lvar_saved_info_t > const & + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28154,25 +28799,31 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_saved_info_t > const & + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_saved_info_t const & + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | __swig_destroy__ = delete_lvar_saved_infos_t(...) | delete_lvar_saved_infos_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_saved_info_t const & + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -28183,7 +28834,6 @@ class lvar_saved_infos_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28196,78 +28846,85 @@ class lvar_saved_infos_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator | + | @param it: qvector< lvar_saved_info_t >::iterator | | erase(self, first, last) -> lvar_saved_info_t - | first: qvector< lvar_saved_info_t >::iterator - | last: qvector< lvar_saved_info_t >::iterator + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) -> 'lvar_saved_info_t *' | extract(self) -> lvar_saved_info_t | | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & | - | - | find(self, x) -> lvar_saved_info_t - | x: lvar_saved_info_t const & + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_saved_info_t * - | len: size_t + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t - | it: qvector< lvar_saved_info_t >::iterator - | x: lvar_saved_info_t const & + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_saved_info_t &' | push_back(self, x) - | x: lvar_saved_info_t const & + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_saved_info_t const & | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_saved_info_t > & + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28303,8 +28960,10 @@ class lvar_t(lvar_locator_t) | | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t - | loc: vdloc_t const & - | ea: ea_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __repr__ = _swig_repr(self) | @@ -28312,20 +28971,20 @@ class lvar_t(lvar_locator_t) | delete_lvar_t(self) | | accepts_type(self, *args) -> 'bool' - | Check if the variable accept the specified type. Some types are - | forbidden (void, function types, wrong arrays, etc) - | | accepts_type(self, t, may_change_thisarg=False) -> bool - | @param t (C++: const tinfo_t &) - | @param may_change_thisarg (C++: bool) + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) -> 'void' + | append_list(self, mba, lst, pad_if_scattered=False) | Append local variable to mlist. | - | append_list(self, mba, lst, pad_if_scattered=False) - | @param mba: ptr to the current mba_t (C++: const mba_t *) - | @param lst: list to append to (C++: mlist_t *) - | @param pad_if_scattered (C++: bool) + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -28388,54 +29047,63 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) -> 'bool' + | has_common(self, v) -> bool | Do variables overlap? | - | has_common(self, v) -> bool - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) -> 'bool' + | has_common_bit(self, loc, width2) -> bool | Does the variable overlap with the specified location? | - | has_common_bit(self, loc, width2) -> bool - | @param loc (C++: const vdloc_t &) - | @param width2 (C++: asize_t) + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) -> 'bool' + | has_regname(self) -> bool | Has a register name? (like _RAX) | | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mba) -> bool | Is the variable aliasable? | - | is_aliasable(self, mba) -> bool - | @param mba: ptr to the current mba_t Aliasable variables may be - | modified indirectly (through a pointer) (C++: const mba_t - | *) + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) -> 'bool' + | is_automapped(self) -> bool | Was the variable automatically mapped to another variable? | | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) -> 'bool' + | is_dummy_arg(self) -> bool | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) -> 'bool' + | is_forced_var(self) -> bool | Is a forced variable? | | is_noptr_var(self, *args) -> 'bool' + | is_noptr_var(self) -> bool | Variable type should not be a pointer. | | is_notarg(self, *args) -> 'bool' + | is_notarg(self) -> bool | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) -> 'bool' + | is_thisarg(self) -> bool | Is 'this' argument of a C++ member function? | | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' @@ -28454,10 +29122,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) -> 'void' + | set_final_lvar_type(self, t) | Set final variable type. | - | set_final_lvar_type(self, t) - | @param t (C++: const tinfo_t &) + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -28466,17 +29134,16 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) -> 'bool' - | Set variable type Note: this function does not modify the idb, only - | the lvar instance in the memory. For permanent changes see - | modify_user_lvars() Also, the variable type is not considered as final - | by the decompiler and may be modified later by the type derivation. In - | some cases set_final_var_type() may work better, but it does not do - | persistent changes to the database neither. - | | set_lvar_type(self, t, may_fail=False) -> bool - | @param t: new type (C++: const tinfo_t &) - | @param may_fail: if false and type is bad, interr (C++: bool) - | @return: success + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -28521,144 +29188,177 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) -> 'bool' - | Change the variable width. We call the variable size 'width', it is - | represents the number of bytes. This function may change the variable - | type using 'set_lvar_type()' . - | | set_width(self, w, svw_flags=0) -> bool - | @param w: new width (C++: int) - | @param svw_flags: combination of SVW_... bits (C++: int) - | @return: success + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) -> 'tinfo_t &' - | Get variable type. + | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name + | has_nice_name(self) -> bool | Does the variable have a nice name? | | has_user_info + | has_user_info(self) -> bool | Has any user-defined information? | | has_user_name + | has_user_name(self) -> bool | Has user-defined name? | | has_user_type + | has_user_type(self) -> bool | Has user-defined type? | | is_arg_var + | is_arg_var(self) -> bool | Is the function argument? | | is_fake_var + | is_fake_var(self) -> bool | Is fake return variable? | | is_floating_var + | is_floating_var(self) -> bool | Used by a fpu insn? | | is_mapdst_var + | is_mapdst_var(self) -> bool | Other variable(s) map to this var? | | is_overlapped_var + | is_overlapped_var(self) -> bool | Is overlapped variable? | | is_result_var + | is_result_var(self) -> bool | Is the function result? | | is_spoiled_var + | is_spoiled_var(self) -> bool | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width + | is_unknown_width(self) -> bool | Do we know the width of the variable? | | mreg_done - | Have corresponding microregs been replaced by references to this - | variable? + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed + | typed(self) -> bool | Has the variable a type? | | used + | used(self) -> bool | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from lvar_locator_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: lvar_locator_t const & + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' - | Get information about scattered variable. + | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool | Is variable located on the stack? | | ---------------------------------------------------------------------- @@ -28671,10 +29371,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | ---------------------------------------------------------------------- | Data and other attributes inherited from lvar_locator_t: @@ -28703,20 +29403,21 @@ class lvar_uservec_t(builtins.object) | empty(self) -> bool | | find_info(self, *args) -> 'lvar_saved_info_t *' + | find_info(self, vloc) -> lvar_saved_info_t | find saved user settings for given var | - | find_info(self, vloc) -> lvar_saved_info_t - | @param vloc (C++: const lvar_locator_t &) + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) -> 'void' + | keep_info(self, v) | Preserve user settings for given var. | - | keep_info(self, v) - | @param v (C++: const lvar_t &) + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lvar_uservec_t &) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28728,19 +29429,19 @@ class lvar_uservec_t(builtins.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags Help on class lvars_t in module ida_hexrays: @@ -28763,37 +29464,36 @@ class lvars_t(qvector_lvar_t) | delete_lvars_t(self) | | find(self, *args) -> 'lvar_t *' + | find(self, ll) -> lvar_t | Find variable at the specified location. | - | find(self, ll) -> lvar_t - | @param ll: variable location (C++: const lvar_locator_t &) - | @return: pointer to variable or NULL + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) -> 'int' + | find_input_lvar(self, argloc, _size) -> int | Find input variable at the specified location. | - | find_input_lvar(self, argloc, _size) -> int - | @param argloc: variable location (C++: const vdloc_t &) - | @param _size: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' + | find_lvar(self, location, width, defblk=-1) -> int | Find variable at the specified location. | - | find_lvar(self, location, width, defblk=-1) -> int - | @param location: variable location (C++: const vdloc_t &) - | @param width: variable size (C++: int) - | @param defblk: definition block of the lvar. -1 means any block (C++: - | int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' + | find_stkvar(self, spoff, width) -> int | Find stack variable at the specified location. | - | find_stkvar(self, spoff, width) -> int - | @param spoff: offset from the minimal sp (C++: sval_t) - | @param width: variable size (C++: int) - | @return: -1 if failed, otherwise the index into the variables vector. + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28806,11 +29506,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28820,35 +29522,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28861,16 +29572,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -28880,51 +29591,61 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28946,32 +29667,34 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) -> 'tinfo_t' - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - make_pointer(type) -> tinfo_t - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) -> 'bool' - Flush the cached decompilation results. Erases a cache entry for the - specified function. - mark_cfunc_dirty(ea, close_views=False) -> bool - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -28999,7 +29722,8 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool - | @param mbr (C++: const mba_ranges_t &) + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29011,10 +29735,10 @@ class mba_range_iterator_t(builtins.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -29028,11 +29752,12 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t - | _pfn: func_t * | + | @param _pfn: func_t * | | __init__(self, r) -> mba_ranges_t - | r: rangevec_t const & + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -29064,10 +29789,10 @@ class mba_ranges_t(builtins.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag @@ -29092,66 +29817,62 @@ class mba_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | | alloc_fict_ea(self, *args) -> 'ea_t' - | Allocate a fictional address. This function can be used to allocate a - | new unique address for a new instruction, if re-using any existing - | address leads to conflicts. For example, if the last instruction of - | the function modifies R0 and falls through to the next function, it - | will be a tail call: LDM R0!, {R4,R7} end of the function start of - | another function In this case R0 generates two different lvars at the - | same address:one modified by LDManother that represents the return - | value from the tail call Another example: a third-party plugin makes a - | copy of an instruction. This may lead to the generation of two - | variables at the same address. Example 3: fictional addresses can be - | used for new instructions created while modifying the microcode. This - | function can be used to allocate a new unique address for a new - | instruction or a variable. The fictional address is selected from an - | unallocated address range. - | | alloc_fict_ea(self, real_ea) -> ea_t - | @param real_ea (C++: ea_t) - | @return: a unique fictional address + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address | | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t | Allocate a kernel register. | - | alloc_kreg(self, size, check_size=True) -> mreg_t - | @param size: size of the register in bytes (C++: size_t) - | @param check_size: if true, only the sizes that correspond to a size - | of a basic type will be accepted. (C++: bool) - | @return: allocated register. mr_none means failure. + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. | | alloc_lvars(self, *args) -> 'void' + | alloc_lvars(self) | Allocate local variables. Must be called only immediately after - | 'optimize_global()' , with no modifications to the microcode. Converts - | registers, stack variables, and similar operands into mop_l. This call - | will not fail because all necessary checks were performed in - | 'optimize_global()' . After this call the microcode reaches its final - | state. + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) -> 'int' + | analyze_calls(self, acflags) -> int | Analyze calls and determine calling conventions. | - | analyze_calls(self, acflags) -> int - | @param acflags: permitted actions that are necessary for successful - | detection of calling conventions. See Bits for - | analyze_calls() (C++: int) - | @return: number of calls. -1 means error. + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' - | Get input argument of the decompiled function. - | | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) | - | - | arg(self, n) -> lvar_t - | @param n: argument number (0..nargs-1) (C++: int) + | @param n: int | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -29166,10 +29887,12 @@ class mba_t(builtins.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) -> 'merror_t' - | Build control flow graph. This function may be called only once. It - | calculates the type of each basic block and the adjacency list. - | 'optimize_local()' calls this function if necessary. You need to call - | this function only before MMAT_LOCOPT. + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -29185,50 +29908,50 @@ class mba_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | code16_bit_removed(self, *args) -> 'bool' | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) -> 'bool' - | Combine blocks. This function merges blocks constituting linear flow. - | It calls 'remove_empty_and_unreachable_blocks()' as well. + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> 'mblock_t *' - | Make a copy of a block. This function makes a simple copy of the - | block. It does not fix the predecessor and successor lists, they must - | be fixed if necessary. - | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | @param blk: block to copy (C++: mblock_t *) - | @param new_serial: position of the copied block (C++: int) - | @param cpblk_flags: combination of Batch decompilation bits ... bits - | (C++: int) - | @return: pointer to the new copy + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy | | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t | Create a call of a helper function. | - | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t - | @param ea: The desired address of the instruction (C++: ea_t) - | @param helper: The helper name (C++: const char *) - | @param rettype: The return type (NULL or empty type means 'void') - | (C++: const tinfo_t *) - | @param callargs: The helper arguments (NULL-no arguments) (C++: const - | mcallargs_t *) - | @param out: The operand where the call result should be stored. If - | this argument is not NULL, "mov helper_call(), out" will - | be generated. Otherwise "call helper()" will be generated. - | Note: the size of this operand must be equal to the - | RETTYPE size (C++: const mop_t *) - | @return: pointer to the created instruction or NULL if error + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -29240,60 +29963,57 @@ class mba_t(builtins.object) | display_valnums(self) -> bool | | dump(self, *args) -> 'void' - | Dump microcode to a file. The file will be created in the directory - | pointed by IDA_DUMPDIR envvar. Dump will be created only if IDA is run - | under debugger. + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) -> 'void' | dump_mba(self, _verify, title) - | @param _verify (C++: bool) - | @param title (C++: const char *) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) -> 'mop_t *' - | Find an operand in the microcode. This function tries to find the - | operand that matches LIST. Any operand that overlaps with LIST is - | considered as a match. - | | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | @param ctx: context information for the result (C++: op_parent_info_t - | *) - | @param ea: desired address of the operand (C++: ea_t) - | @param is_dest: search for destination operand? this argument may be - | ignored if the exact match could not be found (C++: - | bool) - | @param list: list of locations the correspond to the operand (C++: - | const mlist_t &) - | @return: pointer to the operand or NULL. + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits all instruction and | subinstructions. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int | Visit all operands of all instructions. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' + | for_all_topinsns(self, mv) -> int | Visit all top level instructions. | - | for_all_topinsns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | free_kreg(self, *args) -> 'void' - | Free a kernel register. If wrong arguments are passed, this function - | will generate an internal error. - | | free_kreg(self, reg, size) - | @param reg: a previously allocated kernel register (C++: mreg_t) - | @param size: size of the register in bytes (C++: size_t) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -29305,12 +30025,13 @@ class mba_t(builtins.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) -> 'mbl_graph_t *' - | Get control graph. Call 'build_graph()' if you need the graph before - | MMAT_LOCOPT. + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) -> 'argloc_t' | get_ida_argloc(self, v) -> argloc_t - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -29322,14 +30043,9 @@ class mba_t(builtins.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) -> 'mblock_t *' - | Get basic block by its serial number. - | | get_mblock(self, n) -> mblock_t - | @param n (C++: int) | - | - | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | @param n: int | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -29338,11 +30054,11 @@ class mba_t(builtins.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) -> 'ivl_t const &' - | Get information about various memory regions. We map the stack frame - | to the global memory, to some unused range. - | | get_std_region(self, idx) -> ivl_t - | @param idx (C++: memreg_index_t) + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -29361,19 +30077,19 @@ class mba_t(builtins.object) | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t - | @param loc (C++: const argloc_t &) - | @param width (C++: int) + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) -> 'mblock_t *' - | Insert a block in the middle of the mbl array. The very first block of - | microcode must be empty, it is the entry block. The very last block of - | microcode must be BLT_STOP, it is the exit block. Therefore inserting - | a new block before the entry point or after the exit block is not a - | good idea. - | | insert_block(self, bblk) -> mblock_t - | @param bblk: the new block will be inserted before BBLK (C++: int) - | @return: ptr to the new block + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -29392,7 +30108,8 @@ class mba_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool - | @param v (C++: const lvar_t &) + | + | @param v: lvar_t const & | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -29410,36 +30127,37 @@ class mba_t(builtins.object) | lvars_renamed(self) -> bool | | map_fict_ea(self, *args) -> 'ea_t' - | Resolve a fictional address. This function provides a reverse of the - | mapping made by 'alloc_fict_ea()' . - | | map_fict_ea(self, fict_ea) -> ea_t - | @param fict_ea: fictional definition address (C++: ea_t) - | @return: the real instruction address + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address | | mark_chains_dirty(self, *args) -> 'void' - | Mark the microcode use-def chains dirty. Call this function is any - | inter-block data dependencies got changed because of your - | modifications to the microcode. Failing to do so may cause an internal - | error. + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) -> 'bool' | may_refine_rettype(self) -> bool | | optimize_global(self, *args) -> 'merror_t' - | Optimize microcode globally. This function applies various - | optimization methods until we reach the fixed point. After that it - | preallocates lvars unless reqmat forbids it. + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) -> 'int' + | optimize_local(self, locopt_bits) -> int | Optimize each basic block locally | - | optimize_local(self, locopt_bits) -> int - | @param locopt_bits: combination of Bits for optimize_local() bits - | (C++: int) - | @return: number of changes. 0 means nothing changed This function is - | called by the decompiler, usually there is no need to call it - | explicitly. + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) -> 'bool' | optimized(self) -> bool @@ -29457,16 +30175,16 @@ class mba_t(builtins.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) -> 'bool' + | remove_block(self, blk) -> bool | Delete a block. | - | remove_block(self, blk) -> bool - | @param blk: block to delete (C++: mblock_t *) - | @return: true if at least one of the other blocks became empty or - | unreachable + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' - | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP - | won't be deleted. + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -29475,33 +30193,36 @@ class mba_t(builtins.object) | rtype_refined(self) -> bool | | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) | Create and save microcode snapshot. | - | save_snapshot(self, description) - | @param description (C++: const char *) + | @param description: (C++: const char *) char const * | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' + | serialize(self) | Serialize mbl array into a sequence of bytes. | | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool | Set maturity level. | - | set_maturity(self, mat) -> bool - | @param mat (C++: mba_maturity_t) - | @return: true if it is time to stop analysis Plugins may use this - | function to skip some parts of the analysis. The maturity - | level cannot be decreased. + | @param mat: (C++: mba_maturity_t) enum mba_maturity_t + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) - | @param f (C++: int) + | + | @param f: int | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) - | @param f (C++: int) + | + | @param f: int | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -29514,11 +30235,13 @@ class mba_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t - | @param off (C++: sval_t) + | + | @param off: sval_t | | term(self, *args) -> 'void' | term(self) @@ -29534,25 +30257,25 @@ class mba_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) - | spd: sval_t | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t | | vd2idaloc(self, loc, width) -> argloc_t - | @param loc (C++: const vdloc_t &) - | @param width (C++: int) + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) -> 'void' + | verify(self, always) | Verify microcode consistency. | - | verify(self, always) - | @param always: if false, the check will be performed only if ida runs - | under debugger If any inconsistency is discovered, an - | internal error will be generated. We strongly recommend - | you to call this function before returing control to - | the decompiler from your callbacks, in the case if you - | modified the microcode. (C++: bool) + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -29562,7 +30285,10 @@ class mba_t(builtins.object) | | deserialize(*args) -> 'mba_t *' | deserialize(bytes) -> mba_t - | bytes: uchar const * + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29574,156 +30300,157 @@ class mba_t(builtins.object) | list of weak references to the object (if defined) | | aliased_args - | mba_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mba_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mba_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mba_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mba_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mba_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mba_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs | | deprecated_idb_node - | mba_t_deprecated_idb_node_get(self) -> netnode + | deprecated_idb_node | | entry_ea - | mba_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mba_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mba_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mba_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mba_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mba_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mba_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mba_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mba_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mba_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mba_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node | | idb_spoiled - | mba_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mba_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mba_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mba_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mba_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mba_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mba_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mba_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mba_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mba_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mba_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mba_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mba_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mba_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mba_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mba_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mba_t_qty_get(self) -> int + | qty | | reqmat - | mba_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mba_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mba_t_retsize_get(self) -> int + | retsize | | retvaridx - | mba_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mba_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mba_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mba_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mba_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mba_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mba_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mba_t_vars_get(self) -> lvars_t + | vars Help on function mba_t_deserialize in module ida_hexrays: mba_t_deserialize(*args) -> 'mba_t *' mba_t_deserialize(bytes) -> mba_t - bytes: uchar const * + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -29740,7 +30467,8 @@ class mbl_graph_t(simple_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29748,54 +30476,55 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) -> 'graph_chains_t *' + | get_du(self, gctype) -> graph_chains_t | Get def-use chains. | - | get_du(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t - | @param n (C++: int) + | + | @param n: int | | get_ud(self, *args) -> 'graph_chains_t *' + | get_ud(self, gctype) -> graph_chains_t | Get use-def chains. | - | get_ud(self, gctype) -> graph_chains_t - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) -> 'bool' + | is_du_chain_dirty(self, gctype) -> bool | Is the def-use chain of the specified kind dirty? | - | is_du_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) -> 'bool' + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST redefined in the graph? | - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' + | is_ud_chain_dirty(self, gctype) -> bool | Is the use-def chain of the specified kind dirty? | - | is_ud_chain_dirty(self, gctype) -> bool - | @param gctype (C++: gctype_t) + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) -> 'bool' + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool | Is LIST used in the graph? | - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | @param list (C++: const mlist_t &) - | @param b1 (C++: int) - | @param b2 (C++: int) - | @param m1 (C++: const minsn_t *) - | @param m2 (C++: const minsn_t *) - | @param maymust (C++: maymust_t) + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29807,10 +30536,10 @@ class mbl_graph_t(simple_graph_t) | Data descriptors inherited from simple_graph_t: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -29825,9 +30554,10 @@ class mbl_graph_t(simple_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -29840,7 +30570,8 @@ class mbl_graph_t(simple_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -29850,65 +30581,77 @@ class mbl_graph_t(simple_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -29936,208 +30679,184 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) - | vp: vd_printer_t & + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' - | Append def-list of an operand. This function calculates list of - | locations that may or must be modified by the operand and appends it - | to LIST. - | | append_def_list(self, list, op, maymust) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the def list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) -> 'void' - | Append use-list of an operand. This function calculates list of - | locations that may or must be used by the operand and appends it to - | LIST. - | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | @param list: ptr to the output buffer. we will append to it. (C++: - | mlist_t *) - | @param op: operand to calculate the use list of (C++: const mop_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @param mask: if only part of the operand should be considered, a - | bitmask can be used to specify which part. example: - | op=AX,mask=0xFF means that we will consider only AL. - | (C++: bitrange_t) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) -> 'mlist_t' - | Build def-list of an instruction. This function calculates list of - | locations that may or must be modified by the instruction. Examples: - | "stx ebx.4, ds.2, eax.4", may-list: all aliasable memory "stx ebx.4, - | ds.2, eax.4", must-list: empty Since STX uses EAX for indirect access, - | it may modify any aliasable memory. On the other hand, we cannot tell - | for sure which memory cells will be modified, this is why the must- - | list is empty. - | | build_def_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the def list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-def' or 'must-def' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated def-list + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' + | build_lists(self, kill_deads) -> int | Build def-use lists and eliminate deads. | - | build_lists(self, kill_deads) -> int - | @param kill_deads: do delete dead instructions? (C++: bool) - | @return: the number of eliminated instructions Better mblock_t::call - | make_lists_ready() rather than this function. + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) -> 'mlist_t' - | Build use-list of an instruction. This function calculates list of - | locations that may or must be used by the instruction. Examples: "ldx - | ds.2, eax.4, ebx.4", may-list: all aliasable memory "ldx ds.2, eax.4, - | ebx.4", must-list: empty Since LDX uses EAX for indirect access, it - | may access any aliasable memory. On the other hand, we cannot tell for - | sure which memory cells will be accessed, this is why the must-list is - | empty. - | | build_use_list(self, ins, maymust) -> mlist_t - | @param ins: instruction to calculate the use list of (C++: const - | minsn_t &) - | @param maymust: should we calculate 'may-use' or 'must-use' list? see - | maymust_t for more details. (C++: maymust_t) - | @return: the calculated use-list + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) -> 'void' - | Dump block info. This function is useful for debugging, see - | 'mba_t::dump' for info + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) -> 'void' | dump_block(self, title) - | @param title (C++: const char *) + | + | @param title: char const * | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' - | Find the instruction that accesses the specified operand. This - | function search inside one block. - | | find_access(self, op, parent, mend, fdflags) -> minsn_t - | @param op: operand to search for (C++: const mop_t &) - | @param parent (C++: minsn_t **) - | @param mend (C++: const minsn_t *) - | @param fdflags (C++: int) - | @return: the instruction that accesses the operand. this instruction - | may be a sub-instruction. to find out the top level - | instruction, check out *p_i1. NULL means 'not found'. + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param p_i1: ptr to ptr to a top level instruction. denotes the beginning of the + | search range. + | @param mend: (C++: const minsn_t *) minsn_t const * + | @param fdflags: (C++: int) + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) -> 'minsn_t *' - | Find the first insn that uses the specified list in the insn range. - | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. Upon return LIST will - | contain only locations not redefined by insns [i1..result] + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) -> 'minsn_t *' - | Find the first insn that redefines any part of the list in the insn - | range. - | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) - | @return: pointer to such instruction or NULL. + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | @param op (C++: const mop_t &) - | @param p_i1 (C++: minsn_t **) - | @param i2 (C++: const minsn_t *) - | @param fdflags (C++: int) + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int | Visit all instructions. This function visits subinstructions too. | - | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: zero or the value returned by mv.visit_insn() See also - | mba_t::for_all_topinsns() + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int | Visit all operands. This function visit subinstruction operands too. | - | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: zero or the value returned by mv.visit_mop() + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' + | for_all_uses(self, list, i1, i2, mmv) -> int | Visit all operands that use LIST. | - | for_all_uses(self, list, i1, i2, mmv) -> int - | @param list: ptr to the list of locations. it may be modified: parts - | that get redefined by the instructions in [i1,i2) will be - | deleted. (C++: mlist_t *) - | @param i1: starting instruction. must be a top level insn. (C++: - | minsn_t *) - | @param i2: ending instruction (excluded). must be a top level insn. - | (C++: minsn_t *) - | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) - | @return: zero or the value returned by mmv.visit_mop() + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) -> 'size_t' - | Calculate number of regular instructions in the block. Assertions are - | skipped by this function. + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) -> 'bool' - | Find possible values for a block. - | | get_valranges(self, res, vivl, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) - | + | Find possible values for an instruction. | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool - | @param res: set of value ranges (C++: valrng_t *) - | @param vivl: what to search for (C++: const vivl_t &) - | m: minsn_t const * - | @param vrflags: combination of bits for get_valranges bits (C++: - | int) + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) -> 'minsn_t *' + | insert_into_block(self, nm, om) -> minsn_t | Insert instruction into the doubly linked list | - | insert_into_block(self, nm, om) -> minsn_t - | @param nm: new instruction (C++: minsn_t *) - | @param om: existing instruction, part of the doubly linked list if - | NULL, then the instruction will be inserted at the - | beginning of the list NM will be inserted immediately after - | OM (C++: minsn_t *) - | @return: pointer to NM + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -30149,32 +30868,26 @@ class mblock_t(builtins.object) | is_nway(self) -> bool | | is_redefined(self, *args) -> 'bool' + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list redefined by the specified instructions? | - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations to check. (C++: const mlist_t &) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) -> 'bool' - | Is the right hand side of the instruction redefined the insn range? - | "right hand side" corresponds to the source operands of the - | instruction. - | | is_rhs_redefined(self, ins, i1, i2) -> bool - | @param ins: instruction to consider (C++: const minsn_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -30186,20 +30899,16 @@ class mblock_t(builtins.object) | is_unknown_call(self) -> bool | | is_used(self, *args) -> 'bool' + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool | Is the list used by the specified instruction range? | - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | @param list: list of locations. LIST may be modified by the function: - | redefined locations will be removed from it. (C++: - | mlist_t *) - | @param i1: starting instruction of the range (must be a top level - | insn) (C++: const minsn_t *) - | @param i2: end instruction of the range (must be a top level insn) i2 - | is excluded from the range. it can be specified as NULL. i1 - | and i2 must belong to the same block. (C++: const minsn_t - | *) - | @param maymust: should we search in 'may-access' or 'must-access' - | mode? (C++: maymust_t) + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -30211,12 +30920,11 @@ class mblock_t(builtins.object) | make_lists_ready(self) -> int | | make_nop(self, *args) -> 'void' - | Erase the instruction (convert it to nop) and mark the lists dirty. - | This is the recommended function to use because it also marks the - | block use-def lists dirty. - | | make_nop(self, m) - | @param m (C++: minsn_t *) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -30225,49 +30933,57 @@ class mblock_t(builtins.object) | needs_propagation(self) -> bool | | npred(self, *args) -> 'int' + | npred(self) -> int | Get number of block predecessors. | | nsucc(self, *args) -> 'int' + | nsucc(self) -> int | Get number of block successors. | | optimize_block(self, *args) -> 'int' + | optimize_block(self) -> int | Optimize a basic block. Usually there is no need to call this function - | explicitly because the decompiler will call it itself if - | 'optinsn_t::func' or 'optblock_t::func' return non-zero. + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) -> 'int' + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int | Optimize one instruction in the context of the block. | - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | @param m: pointer to a top level instruction (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the block This function may change - | other instructions in the block too. However, it will not - | destroy top level instructions (it may convert them to - | nop's). This function performs only intrablock modifications. - | See also minsn_t::optimize_solo() + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) -> 'int' - | Remove a jump at the end of the block if it is useless. This function - | preserves any side effects when removing a useless jump. Both - | conditional and unconditional jumps are handled (and jtbl too). This - | function deletes useless jumps, not only replaces them with a nop. - | (please note that \optimize_insn does not handle useless jumps). + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) -> 'int' | pred(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' + | remove_from_block(self, m) -> minsn_t | Remove instruction from the doubly linked list | - | remove_from_block(self, m) -> minsn_t - | @param m: instruction to remove The removed instruction is not - | deleted, the caller gets its ownership (C++: minsn_t *) - | @return: pointer to the next instruction + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -30277,7 +30993,8 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int - | @param n (C++: int) + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -30292,70 +31009,70 @@ class mblock_t(builtins.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mba_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type Help on class mcallarg_t in module ida_hexrays: @@ -30371,7 +31088,9 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | rarg: mop_t const & + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -30380,79 +31099,89 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) - | @param op (C++: const mop_t &) + | + | @param op: mop_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) - | @param val (C++: int) - | @param val_ea (C++: ea_t) - | @param opno (C++: int) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) - | @param mr (C++: mreg_t) - | @param sz (C++: int) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & | | set_regarg(self, mr, tif) - | @param mr (C++: mreg_t) - | @param tif (C++: const tinfo_t &) | + | @param mr: mreg_t + | @param tif: tinfo_t const & | | set_regarg(self, mr, dt, sign=type_unsigned) - | @param mr (C++: mreg_t) - | dt: char - | sign: type_sign_t + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea | | flags - | mcallarg_t_flags_get(self) -> uint32 + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from mop_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -30516,90 +31245,84 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -30621,173 +31344,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -30796,122 +31563,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -30926,29 +31693,32 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -30961,140 +31731,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -31114,36 +31880,37 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -31185,7 +31952,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -31196,13 +31963,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -31218,15 +31985,19 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | x: qvector< mcallarg_t > const & + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31236,36 +32007,42 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< mcallarg_t > const & + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: mcallarg_t const & + | + | @param i: size_t + | @param v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: mcallarg_t const & + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -31278,78 +32055,85 @@ class mcallargs_t(builtins.object) | | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator | + | @param it: qvector< mcallarg_t >::iterator | | erase(self, first, last) -> mcallarg_t - | first: qvector< mcallarg_t >::iterator - | last: qvector< mcallarg_t >::iterator + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) -> 'mcallarg_t *' | extract(self) -> mcallarg_t | | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | find(self, x) -> mcallarg_t - | x: mcallarg_t const & | - | - | find(self, x) -> mcallarg_t - | x: mcallarg_t const & + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: mcallarg_t * - | len: size_t + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t - | it: qvector< mcallarg_t >::iterator - | x: mcallarg_t const & + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) - | x: mcallarg_t const & + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: mcallarg_t const & | + | @param _newsize: size_t + | @param x: mcallarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< mcallarg_t > & + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31380,8 +32164,9 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | _callee: ea_t - | _sargs: int + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | @@ -31390,8 +32175,11 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) - | size: int - | shins_flags: int + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -31404,11 +32192,13 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int - | @param f (C++: const mcallinfo_t &) + | + | @param f: mcallinfo_t const & | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool - | @param type (C++: const tinfo_t &) + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31420,58 +32210,58 @@ class mcallinfo_t(builtins.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory Help on class mcases_t in module ida_hexrays: @@ -31482,30 +32272,36 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mcases_t const & + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -31517,7 +32313,8 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mcases_t const & + | + | @param r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -31527,14 +32324,16 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) - | @param s (C++: int) + | + | @param s: int | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: mcases_t &) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31546,13 +32345,13 @@ class mcases_t(builtins.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31563,7 +32362,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool - @param mcode (C++: mcode_t) + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -31576,7 +32376,8 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31584,20 +32385,20 @@ class microcode_filter_t(builtins.object) | delete_microcode_filter_t(self) | | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) -> 'bool' + | match(self, cdg) -> bool | check if the filter object is to be appied | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) - | @return: success + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31620,15 +32421,17 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t - | _ea: ea_t | + | @param _ea: ea_t | | __init__(self, m) -> minsn_t - | m: minsn_t const & + | + | @param m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool - | ri: minsn_t const & + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -31647,9 +32450,7 @@ class minsn_t(builtins.object) | _ensure_ownership_transferrable(self, v) | | _make_nop(self, *args) -> 'void' - | Convert instruction to nop. This function erases all info but the - | prev/next fields. In most cases it is better to use - | 'mblock_t::make_nop()' , which also marks the block lists as dirty. + | _make_nop(self) | | _maybe_disown_and_deregister(self) | @@ -31668,7 +32469,10 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -31701,97 +32505,85 @@ class minsn_t(builtins.object) | clr_tailcall(self) | | contains_call(self, *args) -> 'bool' + | contains_call(self, with_helpers=False) -> bool | Does the instruction contain a call? | - | contains_call(self, with_helpers=False) -> bool - | @param with_helpers (C++: bool) + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) -> 'bool' + | contains_opcode(self, mcode) -> bool | Does the instruction have the specified opcode? This function searches | subinstructions as well. | - | contains_opcode(self, mcode) -> bool - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: (C++: mcode_t) opcode to search for. | | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' - | Compare instructions. This is the main comparison function for - | instructions. - | | equal_insns(self, m, eqflags) -> bool - | @param m: instruction to compare with (C++: const minsn_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) -> 'minsn_t *' + | find_call(self, with_helpers=False) -> minsn_t | Find a call instruction. Check for the current instruction and its | subinstructions. | - | find_call(self, with_helpers=False) -> minsn_t - | @param with_helpers: consider helper calls as well? (C++: bool) + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) -> 'minsn_t *' - | Find an operand that is a subinsruction with the specified opcode. - | This function checks only the 'l' and 'r' operands of the current - | insn. - | | find_ins_op(self, op=m_nop) -> minsn_t - | @param op: opcode to search for (C++: mcode_t) - | @return: &l or &r or NULL + | + | @param op: enum mcode_t | | find_num_op(self, *args) -> 'mop_t *' - | Find a numeric operand of the current instruction. This function - | checks only the 'l' and 'r' operands of the current insn. + | find_num_op(self) -> mop_t | | find_opcode(self, *args) -> 'minsn_t *' - | Find a (sub)insruction with the specified opcode. - | | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) | - | - | find_opcode(self, mcode) -> minsn_t - | @param mcode: opcode to search for. (C++: mcode_t) + | @param mcode: enum mcode_t | | for_all_insns(self, *args) -> 'int' - | Visit all instructions. This function visits the instruction itself - | and all its subinstructions. - | | for_all_insns(self, mv) -> int - | @param mv: instruction visitor (C++: minsn_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' - | Visit all instruction operands. This function visits subinstruction - | operands as well. - | | for_all_ops(self, mv) -> int - | @param mv: operand visitor (C++: mop_visitor_t &) - | @return: non-zero value returned by mv.visit_mop() or zero + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) -> 'funcrole_t' + | get_role(self) -> funcrole_t | Get the function role of a call. | | get_split_size(self, *args) -> 'int' | get_split_size(self) -> int | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Does the instruction have a side effect? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? stx is always considered as - | having side effects. Apart from ldx/std - | only call may have side effects. (C++: - | bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) -> 'bool' + | is_after(self, m) -> bool | Is the instruction after the specified one? | - | is_after(self, m) -> bool - | @param m: the instruction to compare against in the list (C++: const - | minsn_t *) + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -31800,15 +32592,13 @@ class minsn_t(builtins.object) | is_assert(self) -> bool | | is_between(self, *args) -> 'bool' + | is_between(self, m1, m2) -> bool | Is the instruction in the specified range of instructions? | - | is_between(self, m1, m2) -> bool - | @param m1: beginning of the range in the doubly linked list (C++: - | const minsn_t *) - | @param m2: end of the range in the doubly linked list (excluded, may - | be NULL) This function assumes that m1 and m2 belong to the - | same basic block and they are top level instructions. (C++: - | const minsn_t *) + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -31832,13 +32622,12 @@ class minsn_t(builtins.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) -> 'bool' - | Is a helper call with the specified name? Helper calls usually have - | well-known function names (see 'Well known function names' ) but they - | may have any other name. The decompiler does not assume any special - | meaning for non-well-known names. - | | is_helper(self, name) -> bool - | @param name (C++: const char *) + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -31865,10 +32654,11 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' + | is_noret_call(self, flags=0) -> bool | Is a non-returing call? | - | is_noret_call(self, flags=0) -> bool - | @param flags (C++: int) + | @param ignore_noret_icall: if set, indirect calls to noret functions will return + | false | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -31886,49 +32676,52 @@ class minsn_t(builtins.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool | Is an unknown call? Unknown calls are calls without the argument list - | ( 'mcallinfo_t' ). Usually the argument lists are determined by - | 'mba_t::analyze_calls()' . Unknown calls exist until the MMAT_CALLS - | maturity level. See also mblock_t::is_call_block + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) -> 'bool' | is_wild_match(self) -> bool | | lexcompare(self, *args) -> 'int' | lexcompare(self, ri) -> int - | @param ri (C++: const minsn_t &) + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) -> 'bool' - | Does the instruction modify its 'd' operand? Some instructions (e.g. - | m_stx) do not modify the 'd' operand. + | modifes_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) -> 'bool' | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) -> 'int' - | Optimize one instruction without context. This function does not have - | access to the instruction context (the previous and next instructions - | in the list, the block number, etc). It performs only basic - | optimizations that are available without this info. - | | optimize_solo(self, optflags=0) -> int - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes, 0-unchanged See also - | mblock_t::optimize_insn() + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int | Optimize instruction in its context. Do not use this function, use | mblock_t::optimize() | - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | @param blk (C++: mblock_t *) - | @param top (C++: minsn_t *) - | @param parent (C++: minsn_t *) - | @param converted_call (C++: ea_t *) - | @param optflags (C++: int) + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | @@ -31973,7 +32766,8 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) - | @param s (C++: int) + | + | @param s: int | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) @@ -31982,18 +32776,17 @@ class minsn_t(builtins.object) | set_wild_match(self) | | setaddr(self, *args) -> 'void' - | Change the instruction address. This function modifies subinstructions - | as well. - | | setaddr(self, new_ea) - | @param new_ea (C++: ea_t) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) -> 'void' - | Swap two instructions. The prev/next fields are not modified by this - | function because it would corrupt the doubly linked list. - | | swap(self, m) - | @param m (C++: minsn_t &) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -32011,33 +32804,33 @@ class minsn_t(builtins.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -32058,9 +32851,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -32086,16 +32880,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -32108,7 +32902,8 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32117,7 +32912,8 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int - | @param op (C++: mop_t *) + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32129,19 +32925,19 @@ class mlist_mop_visitor_t(builtins.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins Help on class mlist_t in module ida_hexrays: @@ -32152,36 +32948,44 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | ivl: ivl_t const & + | __init__(self, ivl) -> mlist_t | + | @param ivl: ivl_t const & | | __init__(self, r, size) -> mlist_t - | r: mreg_t - | size: int + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mlist_t const & + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -32193,32 +32997,35 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | add(self, r) -> bool - | @param r (C++: mreg_t) | + | @param r: rlist_t const & | | add(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | add(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool - | @param ea (C++: ea_t) - | @param size (C++: asize_t) + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mlist_t const & + | + | @param r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -32231,53 +33038,62 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool - | @param r (C++: mreg_t) + | + | @param r: mreg_t | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool - | @param lst (C++: const mlist_t &) + | + | @param lst: mlist_t const & | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool - | @param r (C++: mreg_t) - | @param size (C++: int) | + | @param r: mreg_t + | @param size: int | | sub(self, ivl) -> bool - | ivl: ivl_t const & | + | @param ivl: ivl_t const & | | sub(self, lst) -> bool - | lst: mlist_t const & + | + | @param lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: mlist_t &) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32289,10 +33105,10 @@ class mlist_t(builtins.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -32316,33 +33132,40 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | v: uint64 - | _ea: ea_t - | n: int + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -32351,23 +33174,25 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: mnumber_t const & + | + | @param r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) - | @param val64 (C++: uint64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32384,33 +33209,31 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' + modify_user_lvar_info(func_ea, mli_flags, info) -> bool Modify saved local variable settings of one variable. - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - @param func_ea: function start address (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) -> 'bool' + modify_user_lvars(entry_ea, mlv) -> bool Modify saved local variable settings. - modify_user_lvars(entry_ea, mlv) -> bool - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -32426,13 +33249,15 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | ra: mop_addr_t const & + | __init__(self, ra) -> mop_addr_t | + | @param ra: mop_addr_t const & | | __init__(self, ra, isz, osz) -> mop_addr_t - | ra: mop_t const & - | isz: int - | osz: int + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | @@ -32441,16 +33266,17 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int - | @param ra (C++: const mop_addr_t &) + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -32460,15 +33286,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -32532,90 +33361,84 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -32634,170 +33457,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -32806,11 +33676,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -32819,122 +33689,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -32949,29 +33819,32 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -32984,136 +33857,131 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -33133,36 +34001,37 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -33204,7 +34073,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -33215,13 +34084,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -33253,10 +34122,10 @@ class mop_pair_t(builtins.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -33270,24 +34139,29 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | rop: mop_t const & + | __init__(self, rop) -> mop_t | + | @param rop: mop_t const & | | __init__(self, _r, _s) -> mop_t - | _r: mreg_t - | _s: int + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool - | rop: mop_t const & + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -33356,90 +34230,84 @@ class mop_t(builtins.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' - | Create a block reference operand without erasing previous data. - | | _make_blkref(self, blknum) - | @param blknum: block number Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: int) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' - | Create a call info operand without erasing previous data. - | | _make_callinfo(self, fi) - | @param fi: callinfo Note: this function does not erase the previous - | contents of the operand; call erase() if necessary (C++: - | mcallinfo_t *) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' - | Create a 'switch cases' operand without erasing previous data. Note: - | this function does not erase the previous contents of the operand; - | call erase() if necessary - | | _make_cases(self, _cases) - | @param _cases (C++: mcases_t *) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' - | Create a global variable operand without erasing previous data. - | | _make_gvar(self, ea) - | @param ea: address of the variable Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: ea_t) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' - | Create a nested instruction without erasing previous data. - | | _make_insn(self, ins) - | @param ins (C++: minsn_t *) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' - | Create a local variable operand. - | | _make_lvar(self, mba, idx, off=0) - | @param mba: pointer to microcode (C++: mba_t *) - | @param idx: index into mba->vars (C++: int) - | @param off: offset from the beginning of the variable Note: this - | function does not erase the previous contents of the - | operand; call erase() if necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' - | Create a pair operand without erasing previous data. Note: this - | function does not erase the previous contents of the operand; call - | erase() if necessary - | | _make_pair(self, _pair) - | @param _pair (C++: mop_pair_t *) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' - | Create a register operand without erasing previous data. - | | _make_reg(self, reg) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) | + | Parameters + | ---------- + | reg: mreg_t | | _make_reg(self, reg, _size) - | @param reg: micro register number Note: this function does not erase - | the previous contents of the operand; call erase() if - | necessary (C++: mreg_t) - | _size: int + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' - | Create a stack variable operand. - | | _make_stkvar(self, mba, off) - | @param mba: pointer to microcode (C++: mba_t *) - | @param off: decompiler stkoff Note: this function does not erase the - | previous contents of the operand; call erase() if - | necessary (C++: sval_t) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' - | Create a constant string operand. - | | _make_strlit(self, str) - | @param str (C++: const char *) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -33458,170 +34326,217 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) - | shins_flags: int + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) - | _v: mop_addr_t * + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) - | _v: int + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) - | _v: mcases_t * + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) - | _v: minsn_t * + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) - | _v: mcallinfo_t * + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) - | _v: fnumber_t * + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) - | _v: ea_t + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) - | _v: char const * + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) - | _v: lvar_ref_t * + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) - | _v: mnumber_t * + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) - | _v: mop_pair_t * + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) - | _v: mreg_t + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) - | _v: stkvar_ref_t * + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) - | _v: scif_t * + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) - | v: mopt_t + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) | Apply a unary opcode to the operand. | - | apply_ld_mcode(self, mcode, ea, newsize) - | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but - | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: - | mcode_t) - | @param ea: value of minsn_t::ea for the newly created insruction - | (C++: ea_t) - | @param newsize: new operand size Example: apply_ld_mcode(m_low) will - | convert op => low(op) (C++: int) + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) - | @param ea (C++: ea_t) - | @param newsize (C++: int) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' - | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 - | change_size(qword_00000008.8, 4) -> dword_00000008.4 - | change_size(xdu.8(op.4), 4) -> op.4 change_size(#0x12345678.4, 1) -> - | #0x78.1 - | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | @param nsize: new operand size (C++: int) - | @param sideff: may modify the database because of the size change? - | (C++: side_effect_t) - | @return: success + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' - | Create operand from an instruction. This function creates a nested - | instruction that can be used as an operand. Example: if m="add x,y,z", - | our operand will be (t=mop_d,d=m). The destination operand of 'add' - | (z) is lost. - | | create_from_insn(self, m) - | @param m: instruction to embed into operand. may not be NULL. (C++: - | const minsn_t *) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' - | Create operand from 'ivlset_t' . Example: if IVS contains - | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) - | | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param ivs: set of memory intervals (C++: const ivlset_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' - | Create operand from 'mlist_t' . Example: if LST contains 4 bits for - | R0.4, our operand will be (t=mop_r, r=R0, size=4) - | | create_from_mlist(self, mba, lst, fullsize) -> bool - | @param mba: pointer to microcode (C++: mba_t *) - | @param lst: list of locations (C++: const mlist_t &) - | @param fullsize: mba->fullsize (C++: sval_t) - | @return: success + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' - | Create operand from scattered 'vdloc_t' . Example: if LOC is - | (ALOC_DIST, {EAX.4, EDX.4}) and TYPE is _LARGE_INTEGER, our operand - | will be (t=mop_sc, scif={EAX.4, EDX.4}) - | | create_from_scattered_vdloc(self, mba, name, type, loc) - | @param mba: pointer to microcode (C++: mba_t *) - | @param name: name of the operand, if available (C++: const char *) - | @param type: type of the operand, must be present (C++: tinfo_t) - | @param loc: a scattered location (C++: const vdloc_t &) - | @return: success + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' - | Create operand from 'vdloc_t' . Example: if LOC contains - | (type=ALOC_REG1, r=R0), our operand will be (t=mop_r, r=R0, - | size=_SIZE) - | | create_from_vdloc(self, mba, loc, _size) - | @param mba: pointer to microcode (C++: mba_t *) - | @param loc: location (C++: const vdloc_t &) - | @param _size: operand size Note: this function cannot handle scattered - | locations. (C++: int) - | @return: success + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool - | @param sideff (C++: side_effect_t) + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -33630,11 +34545,11 @@ class mop_t(builtins.object) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool | Compare operands. This is the main comparison function for operands. | - | equal_mops(self, rop, eqflags) -> bool - | @param rop: operand to compare with (C++: const mop_t &) - | @param eqflags: combination of comparison bits bits (C++: int) + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -33643,122 +34558,122 @@ class mop_t(builtins.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' - | Visit the operand and all its sub-operands. This function visits the - | current operand as well. - | | for_all_ops(self, mv, type=None, is_target=False) -> int - | @param mv: visitor object (C++: mop_visitor_t &) - | @param type: operand type (C++: const tinfo_t *) - | @param is_target: is a destination operand? (C++: bool) + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' - | Visit all sub-operands of a scattered operand. This function does not - | visit the current operand, only its sub-operands. All sub-operands are - | synthetic and are destroyed after the visitor. This function works - | only with scattered operands. - | | for_all_scattered_submops(self, sv) -> int - | @param sv: visitor object (C++: scif_visitor_t &) + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' - | Get subinstruction of the operand. If the operand has a subinstruction - | with the specified opcode, return it. - | | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL | - | - | get_insn(self, code) -> minsn_t - | @param code: desired opcode (C++: mcode_t) - | @return: pointer to the instruction or NULL + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' - | Get the referenced stack offset. This function can also handle mop_sc - | if it is entirely mapped into a continuous stack region. - | | get_stkoff(self, p_off) -> bool - | @param p_off: the output buffer (C++: sval_t *) - | @return: success + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool | Has any side effects? | - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | @param include_ldx_and_divs: consider ldx/div/mod as having side - | effects? (C++: bool) + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' - | Are the possible values of the operand only 0 and 1? This function - | returns true for 0/1 constants, bit registers, the result of 'set' - | insns, etc. + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool - | reg: mreg_t + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool | Retrieve value of a constant integer operand. | - | is_constant(self, is_signed=True) -> bool - | @param is_signed: should treat the value as signed (C++: bool) - | @return: true if the operand is mop_n + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool - | @param n (C++: uint64) - | @param is_signed (C++: bool) + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool | Does the high part of the operand consist of zero or sign bytes? | - | is_extended_from(self, nbytes, is_signed) -> bool - | @param nbytes (C++: int) - | @param is_signed (C++: bool) + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' - | Is address of a global memory cell? - | | is_glbaddr(self) -> bool - | ea: ea_t + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' - | Is a sub-instruction? - | | is_insn(self) -> bool - | code: enum mcode_t + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool | Is a kernel register? | | is_lowaddr(self, *args) -> 'bool' | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool | Is a block reference to the specified block? | - | is_mob(self, serial) -> bool - | @param serial (C++: int) + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -33773,29 +34688,32 @@ class mop_t(builtins.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' - | Is a register operand? See also get_mreg_name() - | | is_reg(self) -> bool - | _r: mreg_t + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool | + | @param _r: mreg_t | | is_reg(self, _r, _size) -> bool - | _r: mreg_t - | _size: int + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of the sign bytes? | - | is_sign_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were sign extended. the remaining - | size-nbytes high bytes must be sign bytes Example: - | is_sign_extended_from(xds.4(op.1), 1) -> true because - | the high 3 bytes are certainly sign bits (C++: int) + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' @@ -33808,140 +34726,136 @@ class mop_t(builtins.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool | Does the high part of the operand consist of zero bytes? | - | is_zero_extended_from(self, nbytes) -> bool - | @param nbytes: number of bytes that were zero extended. the remaining - | size-nbytes high bytes must be zero Example: - | is_zero_extended_from(xdu.8(op.1), 2) -> true because - | the high 6 bytes are certainly zero (C++: int) + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int - | @param rop (C++: const mop_t &) + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) | Create a global variable operand. | - | make_blkref(self, blknum) - | @param blknum (C++: int) + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' - | Make the first part of the operand. This function does not care about - | the memory endianness - | | make_first_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool | Create a floating point constant operand. | - | make_fpnum(self, bytes) -> bool - | @param bytes: pointer to the floating point value as used by the - | current processor (e.g. for x86 it must be in IEEE 754) - | (C++: const void *) - | @return: success + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) | Create a global variable operand. | - | make_gvar(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' - | Create a helper operand. A helper operand usually keeps a built-in - | function name like "va_start" It is essentially just an arbitrary - | identifier without any additional info. - | | make_helper(self, name) - | @param name (C++: const char *) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' - | Make the high part of the operand. This function takes into account - | the memory endianness (byte sex) - | | make_high_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' + | make_insn(self, ins) | Create a nested instruction. | - | make_insn(self, ins) - | @param ins (C++: minsn_t *) + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' - | Make the low part of the operand. This function takes into account the - | memory endianness (byte sex) - | | make_low_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) | Create an integer constant operand. | - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | @param _value: value to store in the operand (C++: uint64) - | @param _size: size of the value in bytes (1,2,4,8) (C++: int) - | @param _ea: address of the processor instruction that made the value - | (C++: ea_t) - | @param opnum: operand number of the processor instruction (C++: int) + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' - | Create a register operand. - | | make_reg(self, reg) - | @param reg (C++: mreg_t) | + | @param reg: mreg_t | | make_reg(self, reg, _size) - | @param reg (C++: mreg_t) - | _size: int + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) | Create pair of registers. | - | make_reg_pair(self, loreg, hireg, halfsize) - | @param loreg: register holding the low part of the value (C++: int) - | @param hireg: register holding the high part of the value (C++: int) - | @param halfsize: the size of each of loreg/hireg (C++: int) + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' - | Make the second part of the operand. This function does not care about - | the memory endianness - | | make_second_half(self, width) -> bool - | @param width: the desired size of the operand part in bytes (C++: int) - | @return: success + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_stkvar(self, *args) -> 'void' | make_stkvar(self, mba, off) - | @param mba (C++: mba_t *) - | @param off (C++: sval_t) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' - | Move subinstructions with side effects out of the operand. If we - | decide to delete an instruction operand, it is a good idea to call - | this function. Alternatively we should skip such operands by calling - | 'mop_t::has_side_effects()' For example, if we transform: jnz x, x, - | @blk => goto @blk then we must call this function before deleting the - | X operands. - | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | @param blk: current block (C++: mblock_t *) - | @param top: top level instruction that contains our operand (C++: - | minsn_t *) - | @param moved_calls: pointer to the boolean that will track if all side - | effects get handled correctly. must be false - | initially. (C++: bool *) - | @return: false failed to preserve a side effect, it is not safe to - | delete the operand true no side effects or successfully - | preserved them + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -33961,36 +34875,37 @@ class mop_t(builtins.object) | set_undef_val(self) | | shift_mop(self, *args) -> 'bool' - | Shift the operand. This function shifts only the beginning of the - | operand. The operand size will be changed. Examples: shift_mop(AH.1, - | -1) -> AX.2 shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 - | shift_mop(xdu.8(op.4), 4) -> #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 - | | shift_mop(self, offset) -> bool - | @param offset: shift count (the number of bytes to shift) (C++: int) - | @return: success + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) - | @param rop (C++: mop_t &) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | update_numop_value(self, *args) -> 'void' | update_numop_value(self, val) - | @param val (C++: uint64) + | + | @param val: uint64 | | value(self, *args) -> 'uint64' - | Retrieve value of a constant integer operand. These functions can be - | called only for mop_n operands. See 'is_constant()' that can be called - | on any operand. - | | value(self, is_signed) -> uint64 - | @param is_signed (C++: bool) + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -34032,7 +34947,7 @@ class mop_t(builtins.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -34043,7 +34958,7 @@ class mop_t(builtins.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -34052,7 +34967,7 @@ class mop_t(builtins.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -34075,9 +34990,10 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34086,15 +35002,16 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int - | @param op (C++: mop_t *) - | @param type (C++: const tinfo_t *) - | @param is_target (C++: bool) + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -34109,16 +35026,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -34129,15 +35046,19 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | x: qvector< mop_t > const & + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34147,36 +35068,42 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< mop_t > const & + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: mop_t const & + | + | @param i: size_t + | @param v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: mop_t const & + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mop_t >::const_iterator' | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -34189,78 +35116,85 @@ class mopvec_t(builtins.object) | | end(self, *args) -> 'qvector< mop_t >::const_iterator' | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t - | it: qvector< mop_t >::iterator | + | @param it: qvector< mop_t >::iterator | | erase(self, first, last) -> mop_t - | first: qvector< mop_t >::iterator - | last: qvector< mop_t >::iterator + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) -> 'mop_t *' | extract(self) -> mop_t | | find(self, *args) -> 'qvector< mop_t >::const_iterator' | find(self, x) -> mop_t - | x: mop_t const & | - | - | find(self, x) -> mop_t - | x: mop_t const & + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) - | x: mop_t const & + | + | @param x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: mop_t const & + | + | @param x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: mop_t * - | len: size_t + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t - | it: qvector< mop_t >::iterator - | x: mop_t const & + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) - | x: mop_t const & + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: mop_t const & | + | @param _newsize: size_t + | @param x: mop_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< mop_t > & + | + | @param r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -34285,45 +35219,46 @@ class mopvec_t(builtins.object) Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) -> 'int' + mreg2reg(reg, width) -> int Map a microregister to a processor register. - mreg2reg(reg, width) -> int - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) -> 'bool' - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - must_mcode_close_block(mcode, including_calls) -> bool - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case: unknown - calls (is_unknown_call) are considered as - closing opcodes. (C++: bool) + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) -> 'ctype_t' + negated_relation(op) -> ctype_t Negate a comparison operator. For example, cot_sge becomes cot_slt. - negated_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -34334,7 +35269,8 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t - | _opnum: int + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | @@ -34342,39 +35278,51 @@ class number_format_t(builtins.object) | delete_number_format_t(self) | | get_radix(self, *args) -> 'int' + | get_radix(self) -> int | Get number radix + | + | @return: 2,8,10, or 16 | | has_unmutable_type(self, *args) -> 'bool' | has_unmutable_type(self) -> bool | | is_char(self, *args) -> 'bool' + | is_char(self) -> bool | Is a character constant? | | is_dec(self, *args) -> 'bool' + | is_dec(self) -> bool | Is a decimal number? | | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool | Is a symbolic constant? | | is_fixed(self, *args) -> 'bool' - | Is number representation fixed? Fixed representation cannot be - | modified by the decompiler + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool | Is a hexadecimal number? | | is_numop(self, *args) -> 'bool' + | is_numop(self) -> bool | Is a number? | | is_oct(self, *args) -> 'bool' + | is_oct(self) -> bool | Is a octal number? | | is_stroff(self, *args) -> 'bool' + | is_stroff(self) -> bool | Is a structure field offset? | | needs_to_be_inverted(self, *args) -> 'bool' - | Does the number need to be negated or bitwise negated? Returns true if - | the user requested a negation but it is not done yet + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34386,25 +35334,25 @@ class number_format_t(builtins.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name Help on class op_parent_info_t in module ida_hexrays: @@ -34415,9 +35363,10 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | _mba: mba_t * - | _blk: mblock_t * - | _topins: minsn_t * + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -34434,54 +35383,54 @@ class op_parent_info_t(builtins.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) -> 'bool' - Does operator use the 'x' field of 'cexpr_t' ? - op_uses_x(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) -> 'bool' - Does operator use the 'y' field of 'cexpr_t' ? - op_uses_y(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) -> 'bool' - Does operator use the 'z' field of 'cexpr_t' ? - op_uses_z(op) -> bool - @param op (C++: ctype_t) + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) -> 'vdui_t *' - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - open_pseudocode(ea, flags) -> vdui_t - @param ea: function to decompile (C++: ea_t) - @param flags: a combination of OPF_ flags (C++: int) - @return: false if failed + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -34492,32 +35441,39 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t - | _ea: ea_t - | _opnum: int + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -34526,7 +35482,8 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: operand_locator_t const & + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -34538,10 +35495,10 @@ class operand_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -34562,7 +35519,8 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -34570,16 +35528,14 @@ class optblock_t(builtins.object) | delete_optblock_t(self) | | func(self, *args) -> 'int' - | Optimize a block. This function usually performs the optimizations - | that require analyzing the entire block and/or its neighbors. For - | example it can recognize patterns and perform conversions like: b0: - | b0: ... ... jnz x, 0, @b2 => jnz x, 0, @b2 b1: b1: add x, 0, y mov x, - | y ... ... - | | func(self, blk) -> int - | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) - | @return: number of changes made to the block. See also - | mark_lists_dirty. + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -34610,7 +35566,8 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -34618,26 +35575,23 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' + | func(self, blk, ins, optflags) -> int | Optimize an instruction. | - | func(self, blk, ins, optflags) -> int - | @param blk: current basic block. maybe NULL, which means that the - | instruction must be optimized without context (C++: - | mblock_t *) - | @param ins: instruction to optimize; it is always a top-level - | instruction. the callback may not delete the instruction - | but may convert it into nop (see mblock_t::make_nop ). to - | optimize sub-instructions, visit them using - | minsn_visitor_t . sub-instructions may not be converted - | into nop but can be converted to "mov x,x". for example: - | add x,0,x => mov x,x this callback may change other - | instructions in the block, but should do this with care, - | e.g. to no break the propagation algorithm if called with - | OPTI_NO_LDXOPT. (C++: minsn_t *) - | @param optflags: combination of optimization flags bits (C++: int) - | @return: number of changes made to the instruction. if after this call - | the instruction's use/def lists have changed, you must mark - | the block level lists as dirty (see mark_lists_dirty) + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) -> 'void' | install(self) @@ -34660,232 +35614,38 @@ class optinsn_t(builtins.object) Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) -> 'bool' + parse_user_call(udc, decl, silent) -> bool Convert function type declaration into internal structure - parse_user_call(udc, decl, silent) -> bool - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) -> 'int' + partial_type_num(type) -> int Calculate number of partial subtypes. - partial_type_num(type) -> int - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) -> 'qstring *' - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - print_vdloc(loc, nbytes) - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(builtins.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __getitem__(self, *args) -> 'cinsn_t const &' - | __getitem__(self, i) -> cinsn_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | x: qlist< cinsn_t > const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | x: qlist< cinsn_t > const & - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | __swig_destroy__ = delete_qlist_cinsn_t(...) - | delete_qlist_cinsn_t(self) - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) -> 'void' - | clear(self) - | - | empty(self, *args) -> 'bool' - | empty(self) -> bool - | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | erase(self, p1, p2) - | p1: qlist< cinsn_t >::iterator - | p2: qlist< cinsn_t >::iterator - | - | - | erase(self, p) - | p: qlist_cinsn_t_iterator - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | x: cinsn_t const & - | - | - | insert(self, p) -> qlist< cinsn_t >::iterator - | p: qlist< cinsn_t >::iterator - | - | - | insert(self, i, v) - | i: size_t - | v: cinsn_t const & - | - | - | insert(self, p, x) -> qlist_cinsn_t_iterator - | p: qlist_cinsn_t_iterator - | x: cinsn_t const & - | - | pop_back(self, *args) -> 'void' - | pop_back(self) - | - | pop_front(self, *args) -> 'void' - | pop_front(self) - | - | push_back(self, *args) -> 'cinsn_t &' - | push_back(self, x) - | x: cinsn_t const & - | - | push_front(self, *args) -> 'void' - | push_front(self, x) - | x: cinsn_t const & - | - | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) -> 'bool' - | remove(self, v) -> bool - | v: cinsn_t const & - | - | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) -> 'size_t' - | size(self) -> size_t - | - | swap(self, *args) -> 'void' - | swap(self, x) - | x: qlist< cinsn_t > & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(builtins.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | x: qlist_cinsn_t_iterator const * - | - | __next__(self, *args) -> 'void' - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_qlist_cinsn_t_iterator(...) - | delete_qlist_cinsn_t_iterator(self) - | - | next = __next__(self, *args) -> 'void' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -34901,15 +35661,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t - | f: cfunc_t const * - | tags: bool + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -34923,7 +35687,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -34934,16 +35698,19 @@ class qstring_printer_t(vc_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -34955,17 +35722,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) - a: cinsn_t & - b: cinsn_t & + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -34976,15 +35744,19 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | x: qvector< carg_t > const & + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -34993,25 +35765,31 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< carg_t > const & + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: carg_t const & + | + | @param i: size_t + | @param v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: carg_t const & + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -35022,7 +35800,6 @@ class qvector_carg_t(builtins.object) | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35035,78 +35812,85 @@ class qvector_carg_t(builtins.object) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t - | it: qvector< carg_t >::iterator | + | @param it: qvector< carg_t >::iterator | | erase(self, first, last) -> carg_t - | first: qvector< carg_t >::iterator - | last: qvector< carg_t >::iterator + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | x: carg_t const & | - | - | find(self, x) -> carg_t - | x: carg_t const & + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) - | x: carg_t const & + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: carg_t const & + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: carg_t * - | len: size_t + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t - | it: qvector< carg_t >::iterator - | x: carg_t const & + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | x: carg_t const & + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: carg_t const & | + | @param _newsize: size_t + | @param x: carg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< carg_t > & + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35137,15 +35921,19 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | x: qvector< ccase_t > const & + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35154,25 +35942,31 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ccase_t > const & + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ccase_t const & + | + | @param i: size_t + | @param v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ccase_t const & + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -35183,7 +35977,6 @@ class qvector_ccase_t(builtins.object) | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35196,78 +35989,85 @@ class qvector_ccase_t(builtins.object) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t - | it: qvector< ccase_t >::iterator | + | @param it: qvector< ccase_t >::iterator | | erase(self, first, last) -> ccase_t - | first: qvector< ccase_t >::iterator - | last: qvector< ccase_t >::iterator + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | x: ccase_t const & | - | - | find(self, x) -> ccase_t - | x: ccase_t const & + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) - | x: ccase_t const & + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ccase_t const & + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ccase_t * - | len: size_t + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t - | it: qvector< ccase_t >::iterator - | x: ccase_t const & + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | x: ccase_t const & + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ccase_t const & | + | @param _newsize: size_t + | @param x: ccase_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ccase_t > & + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35298,15 +36098,19 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | x: qvector< history_item_t > const & + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35316,36 +36120,42 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< history_item_t > const & + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: history_item_t const & + | + | @param i: size_t + | @param v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: history_item_t const & + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35358,78 +36168,85 @@ class qvector_history_t(builtins.object) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t - | it: qvector< history_item_t >::iterator | + | @param it: qvector< history_item_t >::iterator | | erase(self, first, last) -> history_item_t - | first: qvector< history_item_t >::iterator - | last: qvector< history_item_t >::iterator + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | x: history_item_t const & | - | - | find(self, x) -> history_item_t - | x: history_item_t const & + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) - | x: history_item_t const & + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: history_item_t const & + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: history_item_t * - | len: size_t + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t - | it: qvector< history_item_t >::iterator - | x: history_item_t const & + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | x: history_item_t const & + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: history_item_t const & | + | @param _newsize: size_t + | @param x: history_item_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< history_item_t > & + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35460,15 +36277,19 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | x: qvector< lvar_t > const & + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -35477,25 +36298,31 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< lvar_t > const & + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: lvar_t const & + | + | @param i: size_t + | @param v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: lvar_t const & + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -35506,7 +36333,6 @@ class qvector_lvar_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -35519,78 +36345,85 @@ class qvector_lvar_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t - | it: qvector< lvar_t >::iterator | + | @param it: qvector< lvar_t >::iterator | | erase(self, first, last) -> lvar_t - | first: qvector< lvar_t >::iterator - | last: qvector< lvar_t >::iterator + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t | | find(self, *args) -> 'qvector< lvar_t >::const_iterator' | find(self, x) -> lvar_t - | x: lvar_t const & | - | - | find(self, x) -> lvar_t - | x: lvar_t const & + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) - | x: lvar_t const & + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: lvar_t const & + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: lvar_t * - | len: size_t + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t - | it: qvector< lvar_t >::iterator - | x: lvar_t const & + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | x: lvar_t const & + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: lvar_t const & | + | @param _newsize: size_t + | @param x: lvar_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< lvar_t > & + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -35615,113 +36448,116 @@ class qvector_lvar_t(builtins.object) Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) -> 'mreg_t' + reg2mreg(reg) -> mreg_t Map a processor register to a microregister. - reg2mreg(reg) -> mreg_t - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) - @param e (C++: const citem_t *) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. Help on function rename_lvar in module ida_hexrays: rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool Rename a local variable. - rename_lvar(func_ea, oldname, newname) -> bool - @param func_ea: function start address (C++: ea_t) - @param oldname: old name of the variable (C++: const char *) - @param newname: new name of the variable (C++: const char *) - @return: success This is a convenience function. For bulk renaming - consider using modify_user_lvars. + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) -> 'user_cmts_t *' + restore_user_cmts(func_ea) -> user_cmts_t Restore user defined comments from the database. - restore_user_cmts(func_ea) -> user_cmts_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) -> 'bool' + restore_user_defined_calls(udcalls, func_ea) -> bool Restore user defined function calls from the database. - restore_user_defined_calls(udcalls, func_ea) -> bool - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) -> 'user_iflags_t *' + restore_user_iflags(func_ea) -> user_iflags_t Restore user defined citem iflags from the database. - restore_user_iflags(func_ea) -> user_iflags_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) -> 'user_labels_t *' + restore_user_labels(func_ea) -> user_labels_t Restore user defined labels from the database. - restore_user_labels(func_ea) -> user_labels_t - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() Help on function restore_user_labels2 in module ida_hexrays: restore_user_labels2(*args) -> 'user_labels_t *' restore_user_labels2(func_ea, func=None) -> user_labels_t - @param func_ea (C++: ea_t) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) -> 'bool' + restore_user_lvar_settings(lvinf, func_ea) -> bool Restore user defined local variable settings in the database. - restore_user_lvar_settings(lvinf, func_ea) -> bool - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) -> 'user_numforms_t *' + restore_user_numforms(func_ea) -> user_numforms_t Restore user defined number formats from the database. - restore_user_numforms(func_ea) -> user_numforms_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) -> 'user_unions_t *' + restore_user_unions(func_ea) -> user_unions_t Restore user defined union field selections from the database. - restore_user_unions(func_ea) -> user_unions_t - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -35737,12 +36573,14 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | m: rlist_t const & + | __init__(self, m) -> rlist_t | + | @param m: rlist_t const & | | __init__(self, reg, width) -> rlist_t - | reg: mreg_t - | width: int + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -35763,46 +36601,55 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitset_t const & + | + | @param r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | add(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | add(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int @@ -35815,19 +36662,24 @@ class rlist_t(bitset_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitset_t const & + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t - | @param m (C++: const bitset_t &) + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int - | bit: int + | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool - | @param maxbit (C++: int) + | + | @param maxbit: int | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -35837,77 +36689,91 @@ class rlist_t(bitset_t) | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) - | @param maxbit (C++: int) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool - | @param bit (C++: int) + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool - | @param bit (C++: int) - | @param width (C++: int) + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) - | @param p (C++: iterator &) - | @param n (C++: int) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool - | @param ml (C++: const bitset_t &) + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' | itat(self, n) -> iterator - | @param n (C++: int) + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int - | it: bitset_t::const_iterator + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) - | @param shift (C++: int) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool - | @param bit (C++: int) | + | @param bit: int | | sub(self, bit, width) -> bool - | @param bit (C++: int) - | width: int | + | @param bit: int + | @param width: int | | sub(self, ml) -> bool - | ml: bitset_t const & + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitset_t &) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -35926,81 +36792,74 @@ class rlist_t(bitset_t) Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) -> 'void' + save_user_cmts(func_ea, user_cmts) Save user defined comments into the database. - save_user_cmts(func_ea, user_cmts) - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) -> 'void' + save_user_defined_calls(func_ea, udcalls) Save user defined local function calls into the database. - save_user_defined_calls(func_ea, udcalls) - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) -> 'void' + save_user_iflags(func_ea, iflags) Save user defined citem iflags into the database. - save_user_iflags(func_ea, iflags) - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) -> 'void' + save_user_labels(func_ea, user_labels) Save user defined labels into the database. - save_user_labels(func_ea, user_labels) - @param func_ea: the entry address of the function, ignored if FUNC != - NULL (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels Help on function save_user_labels2 in module ida_hexrays: save_user_labels2(*args) -> 'void' save_user_labels2(func_ea, user_labels, func=None) - @param func_ea (C++: ea_t) - @param user_labels (C++: const user_labels_t *) - @param func (C++: const cfunc_t *) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) -> 'void' + save_user_lvar_settings(func_ea, lvinf) Save user defined local variable settings into the database. - save_user_lvar_settings(func_ea, lvinf) - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) -> 'void' + save_user_numforms(func_ea, numforms) Save user defined number formats into the database. - save_user_numforms(func_ea, numforms) - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) -> 'void' + save_user_unions(func_ea, unions) Save user defined union field selections into the database. - save_user_unions(func_ea, unions) - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -36017,9 +36876,10 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, tif, n=None) -> scif_t - | _mba: mba_t * - | tif: tinfo_t * - | n: qstring * + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -36030,63 +36890,75 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mba_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from vdloc_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -36097,191 +36969,221 @@ class scif_t(vdloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -36303,7 +37205,8 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36312,8 +37215,9 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int - | @param r (C++: const mop_t &) - | @param off (C++: int) + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36330,48 +37234,46 @@ class scif_visitor_t(builtins.object) Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) -> 'int' + select_udt_by_offset(udts, ops, applicator) -> int Select UDT - select_udt_by_offset(udts, ops, applicator) -> int - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) Help on function send_database in module ida_hexrays: send_database(*args) -> 'void' - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - send_database(err, silent) - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) -> 'mcode_t' set2jcnd(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) -> 'bool' + set_type(id, tif, source, force=False) -> bool Set a global type. - set_type(id, tif, source, force=False) -> bool - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success Help on class simple_graph_t in module ida_hexrays: @@ -36387,7 +37289,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | __init__(self, *args, **kwargs) | __init__(self) -> gdl_graph_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36395,13 +37298,13 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | Data descriptors defined here: | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title | | ---------------------------------------------------------------------- | Methods inherited from ida_gdl.gdl_graph_t: @@ -36416,9 +37319,10 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | edge(self, *args) -> 'int' | edge(self, node, i, ispred) -> int - | @param node (C++: int) - | @param i (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param i: int + | @param ispred: bool | | empty(self, *args) -> 'bool' | empty(self) -> bool @@ -36431,7 +37335,8 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | exists(self, *args) -> 'bool' | exists(self, node) -> bool - | @param node (C++: int) + | + | @param node: int | | exit(self, *args) -> 'int' | exit(self) -> int @@ -36441,65 +37346,77 @@ class simple_graph_t(ida_gdl.gdl_graph_t) | | get_edge_color(self, *args) -> 'bgcolor_t' | get_edge_color(self, i, j) -> bgcolor_t - | @param i (C++: int) - | @param j (C++: int) + | + | @param i: int + | @param j: int | | get_node_color(self, *args) -> 'bgcolor_t' | get_node_color(self, n) -> bgcolor_t - | @param n (C++: int) + | + | @param n: int | | get_node_label(self, *args) -> 'char *' | get_node_label(self, n) -> char * - | @param n (C++: int) + | + | @param n: int | | nedge(self, *args) -> 'size_t' | nedge(self, node, ispred) -> size_t - | @param node (C++: int) - | @param ispred (C++: bool) + | + | @param node: int + | @param ispred: bool | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int - | @param node (C++: int) + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | print_edge(self, *args) -> 'bool' | print_edge(self, fp, i, j) -> bool - | @param fp (C++: FILE *) - | @param i (C++: int) - | @param j (C++: int) + | + | @param fp: FILE * + | @param i: int + | @param j: int | | print_graph_attributes(self, *args) -> 'void' | print_graph_attributes(self, fp) - | @param fp (C++: FILE *) + | + | @param fp: FILE * | | print_node(self, *args) -> 'bool' | print_node(self, fp, n) -> bool - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, fp, n) - | @param fp (C++: FILE *) - | @param n (C++: int) + | + | @param fp: FILE * + | @param n: int | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, node, i) -> int - | @param node (C++: int) - | @param i (C++: int) + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_gdl.gdl_graph_t: @@ -36519,32 +37436,39 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t - | m: mba_t * - | o: sval_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -36553,19 +37477,20 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: stkvar_ref_t const & + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off=None) -> member_t * | Retrieve the referenced stack variable. | - | get_stkvar(self, p_off=None) -> member_t * - | @param p_off: if specified, will hold IDA stkoff after the call. (C++: - | uval_t *) - | @return: pointer to the stack variable + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: stkvar_ref_t &) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36577,10 +37502,10 @@ class stkvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mba_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -36594,19 +37519,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t - @param code (C++: mcode_t) + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) -> 'ctype_t' + swapped_relation(op) -> ctype_t Swap a comparison operator. For example, cot_sge becomes cot_sle. - swapped_relation(op) -> ctype_t - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) -> 'void' + term_hexrays_plugin() Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -36618,14 +37545,16 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: treeloc_t const & + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -36642,10 +37571,10 @@ class treeloc_t(builtins.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -36671,7 +37600,8 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36679,30 +37609,35 @@ class udc_filter_t(microcode_filter_t) | delete_udc_filter_t(self) | | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t | generate microcode for an instruction | - | apply(self, cdg) -> merror_t - | @param cdg (C++: codegen_t &) - | @return: MERR_... code: MERR_OK - user-defined call generated, go to - | the next instruction MERR_INSN - not generated - the caller - | should try the standard way else - error + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to the next + | instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | cleanup(self, *args) -> 'void' - | Cleanup the filter This function properly clears type information - | associated to this filter. + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | init(self, *args) -> 'bool' | init(self, decl) -> bool - | @param decl (C++: const char *) + | + | @param decl: char const * | | install(self, *args) -> 'void' | install(self) | | match(self, *args) -> 'bool' + | match(self, cdg) -> bool | return true if the filter object should be appied to given instruction | - | match(self, cdg) -> bool - | @param cdg (C++: codegen_t &) + | @param cdg: (C++: codegen_t &) | | remove(self, *args) -> 'bool' | remove(self) -> bool @@ -36725,70 +37660,70 @@ class udc_filter_t(microcode_filter_t) Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) -> 'udcall_map_iterator_t' + udcall_map_begin(map) -> udcall_map_iterator_t Get iterator pointing to the beginning of udcall_map_t. - udcall_map_begin(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) -> 'void' + udcall_map_clear(map) Clear udcall_map_t. - udcall_map_clear(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) -> 'udcall_map_iterator_t' + udcall_map_end(map) -> udcall_map_iterator_t Get iterator pointing to the end of udcall_map_t. - udcall_map_end(map) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) -> 'void' + udcall_map_erase(map, p) Erase current element from udcall_map_t. - udcall_map_erase(map, p) - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) -> 'udcall_map_iterator_t' + udcall_map_find(map, key) -> udcall_map_iterator_t Find the specified key in udcall_map_t. - udcall_map_find(map, key) -> udcall_map_iterator_t - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) -> 'ea_t const &' + udcall_map_first(p) -> ea_t const & Get reference to the current map key. - udcall_map_first(p) -> ea_t const & - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) -> 'void' + udcall_map_free(map) Delete udcall_map_t instance. - udcall_map_free(map) - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) -> 'udcall_map_iterator_t' - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -36799,14 +37734,16 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: udcall_map_iterator_t const & + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -36826,7 +37763,7 @@ class udcall_map_iterator_t(builtins.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36836,39 +37773,40 @@ class udcall_map_iterator_t(builtins.object) Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) -> 'udcall_map_t *' + udcall_map_new() -> udcall_map_t * Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) -> 'udcall_map_iterator_t' + udcall_map_next(p) -> udcall_map_iterator_t Move to the next element. - udcall_map_next(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) -> 'udcall_map_iterator_t' + udcall_map_prev(p) -> udcall_map_iterator_t Move to the previous element. - udcall_map_prev(p) -> udcall_map_iterator_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) -> 'udcall_t &' + udcall_map_second(p) -> udcall_t Get reference to the current map value. - udcall_map_second(p) -> udcall_t - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) -> 'size_t' + udcall_map_size(map) -> size_t Get size of udcall_map_t. - udcall_map_size(map) -> size_t - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -36879,30 +37817,36 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: udcall_t const & + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -36911,7 +37855,11 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: udcall_t const & + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36923,13 +37871,13 @@ class udcall_t(builtins.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -36947,7 +37895,8 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -36956,12 +37905,11 @@ class ui_stroff_applicator_t(builtins.object) | | apply(self, *args) -> 'bool' | apply(self, opnum, path, top_tif, spath) -> bool - | @param opnum: operand ordinal number, see below (C++: size_t) - | @param path: path describing the union selection, maybe empty (C++: - | const intvec_t &) - | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const - | tinfo_t &) - | @param spath: selected path (C++: const char *) + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -36984,14 +37932,16 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ui_stroff_op_t const & + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -37008,10 +37958,10 @@ class ui_stroff_op_t(builtins.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -37030,15 +37980,19 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | x: qvector< ui_stroff_op_t > const & + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -37047,25 +38001,31 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< ui_stroff_op_t > const & + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ui_stroff_op_t const & + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | __swig_destroy__ = delete_ui_stroff_ops_t(...) | delete_ui_stroff_ops_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: ui_stroff_op_t const & + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -37076,7 +38036,6 @@ class ui_stroff_ops_t(builtins.object) | | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -37089,78 +38048,85 @@ class ui_stroff_ops_t(builtins.object) | | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator | + | @param it: qvector< ui_stroff_op_t >::iterator | | erase(self, first, last) -> ui_stroff_op_t - | first: qvector< ui_stroff_op_t >::iterator - | last: qvector< ui_stroff_op_t >::iterator + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) -> 'ui_stroff_op_t *' | extract(self) -> ui_stroff_op_t | | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & | - | - | find(self, x) -> ui_stroff_op_t - | x: ui_stroff_op_t const & + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ui_stroff_op_t * - | len: size_t + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t - | it: qvector< ui_stroff_op_t >::iterator - | x: ui_stroff_op_t const & + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ui_stroff_op_t &' | push_back(self, x) - | x: ui_stroff_op_t const & + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ui_stroff_op_t const & | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ui_stroff_op_t > & + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -37185,70 +38151,70 @@ class ui_stroff_ops_t(builtins.object) Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) -> 'user_cmts_iterator_t' + user_cmts_begin(map) -> user_cmts_iterator_t Get iterator pointing to the beginning of user_cmts_t. - user_cmts_begin(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) -> 'void' + user_cmts_clear(map) Clear user_cmts_t. - user_cmts_clear(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) -> 'user_cmts_iterator_t' + user_cmts_end(map) -> user_cmts_iterator_t Get iterator pointing to the end of user_cmts_t. - user_cmts_end(map) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) -> 'void' + user_cmts_erase(map, p) Erase current element from user_cmts_t. - user_cmts_erase(map, p) - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) -> 'user_cmts_iterator_t' + user_cmts_find(map, key) -> user_cmts_iterator_t Find the specified key in user_cmts_t. - user_cmts_find(map, key) -> user_cmts_iterator_t - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) -> 'treeloc_t const &' + user_cmts_first(p) -> treeloc_t Get reference to the current map key. - user_cmts_first(p) -> treeloc_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) -> 'void' + user_cmts_free(map) Delete user_cmts_t instance. - user_cmts_free(map) - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) -> 'user_cmts_iterator_t' - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -37259,14 +38225,16 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_cmts_iterator_t const & + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37286,7 +38254,7 @@ class user_cmts_iterator_t(builtins.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37296,39 +38264,40 @@ class user_cmts_iterator_t(builtins.object) Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) -> 'user_cmts_t *' + user_cmts_new() -> user_cmts_t Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) -> 'user_cmts_iterator_t' + user_cmts_next(p) -> user_cmts_iterator_t Move to the next element. - user_cmts_next(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) -> 'user_cmts_iterator_t' + user_cmts_prev(p) -> user_cmts_iterator_t Move to the previous element. - user_cmts_prev(p) -> user_cmts_iterator_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) -> 'citem_cmt_t &' + user_cmts_second(p) -> citem_cmt_t Get reference to the current map value. - user_cmts_second(p) -> citem_cmt_t - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) -> 'size_t' + user_cmts_size(map) -> size_t Get size of user_cmts_t. - user_cmts_size(map) -> size_t - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -37439,7 +38408,8 @@ class user_cmts_t(builtins.object) | | at(self, *args) -> 'citem_cmt_t &' | at(self, _Keyval) -> citem_cmt_t - | _Keyval: treeloc_t const & + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -37512,70 +38482,70 @@ class user_cmts_t(builtins.object) Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) -> 'user_iflags_iterator_t' + user_iflags_begin(map) -> user_iflags_iterator_t Get iterator pointing to the beginning of user_iflags_t. - user_iflags_begin(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) -> 'void' + user_iflags_clear(map) Clear user_iflags_t. - user_iflags_clear(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) -> 'user_iflags_iterator_t' + user_iflags_end(map) -> user_iflags_iterator_t Get iterator pointing to the end of user_iflags_t. - user_iflags_end(map) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) -> 'void' + user_iflags_erase(map, p) Erase current element from user_iflags_t. - user_iflags_erase(map, p) - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) -> 'user_iflags_iterator_t' + user_iflags_find(map, key) -> user_iflags_iterator_t Find the specified key in user_iflags_t. - user_iflags_find(map, key) -> user_iflags_iterator_t - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) -> 'citem_locator_t const &' + user_iflags_first(p) -> citem_locator_t Get reference to the current map key. - user_iflags_first(p) -> citem_locator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) -> 'void' + user_iflags_free(map) Delete user_iflags_t instance. - user_iflags_free(map) - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) -> 'user_iflags_iterator_t' - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -37586,14 +38556,16 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_iflags_iterator_t const & + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37613,7 +38585,7 @@ class user_iflags_iterator_t(builtins.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37623,39 +38595,40 @@ class user_iflags_iterator_t(builtins.object) Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) -> 'user_iflags_t *' + user_iflags_new() -> user_iflags_t Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) -> 'user_iflags_iterator_t' + user_iflags_next(p) -> user_iflags_iterator_t Move to the next element. - user_iflags_next(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) -> 'user_iflags_iterator_t' + user_iflags_prev(p) -> user_iflags_iterator_t Move to the previous element. - user_iflags_prev(p) -> user_iflags_iterator_t - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) -> 'int32 const &' + user_iflags_second(p) -> int32 const & Get reference to the current map value. - user_iflags_second(p) -> int32 const & - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) -> 'size_t' + user_iflags_size(map) -> size_t Get size of user_iflags_t. - user_iflags_size(map) -> size_t - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -37766,7 +38739,8 @@ class user_iflags_t(builtins.object) | | at(self, *args) -> 'int &' | at(self, _Keyval) -> int & - | _Keyval: citem_locator_t const & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -37852,70 +38826,70 @@ class user_iflags_t(builtins.object) Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) -> 'user_labels_iterator_t' + user_labels_begin(map) -> user_labels_iterator_t Get iterator pointing to the beginning of user_labels_t. - user_labels_begin(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) -> 'void' + user_labels_clear(map) Clear user_labels_t. - user_labels_clear(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) -> 'user_labels_iterator_t' + user_labels_end(map) -> user_labels_iterator_t Get iterator pointing to the end of user_labels_t. - user_labels_end(map) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) -> 'void' + user_labels_erase(map, p) Erase current element from user_labels_t. - user_labels_erase(map, p) - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) -> 'user_labels_iterator_t' + user_labels_find(map, key) -> user_labels_iterator_t Find the specified key in user_labels_t. - user_labels_find(map, key) -> user_labels_iterator_t - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) -> 'int const &' + user_labels_first(p) -> int const & Get reference to the current map key. - user_labels_first(p) -> int const & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) -> 'void' + user_labels_free(map) Delete user_labels_t instance. - user_labels_free(map) - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) -> 'user_labels_iterator_t' + user_labels_insert(map, key, val) -> user_labels_iterator_t Insert new (int, qstring) pair into user_labels_t. - user_labels_insert(map, key, val) -> user_labels_iterator_t - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -37926,14 +38900,16 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_labels_iterator_t const & + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -37953,7 +38929,7 @@ class user_labels_iterator_t(builtins.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -37963,39 +38939,40 @@ class user_labels_iterator_t(builtins.object) Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) -> 'user_labels_t *' + user_labels_new() -> user_labels_t Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) -> 'user_labels_iterator_t' + user_labels_next(p) -> user_labels_iterator_t Move to the next element. - user_labels_next(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) -> 'user_labels_iterator_t' + user_labels_prev(p) -> user_labels_iterator_t Move to the previous element. - user_labels_prev(p) -> user_labels_iterator_t - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) -> 'qstring &' + user_labels_second(p) -> qstring & Get reference to the current map value. - user_labels_second(p) -> qstring & - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) -> 'size_t' + user_labels_size(map) -> size_t Get size of user_labels_t. - user_labels_size(map) -> size_t - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -38014,7 +38991,8 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & - | _Keyval: int const & + | + | @param _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -38042,7 +39020,8 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -38050,10 +39029,10 @@ class user_lvar_modifier_t(builtins.object) | delete_user_lvar_modifier_t(self) | | modify_lvars(self, *args) -> 'bool' + | modify_lvars(self, lvinf) -> bool | Modify lvar settings. Returns: true-modified | - | modify_lvars(self, lvinf) -> bool - | @param lvinf (C++: lvar_uservec_t *) + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38070,71 +39049,70 @@ class user_lvar_modifier_t(builtins.object) Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) -> 'user_numforms_iterator_t' + user_numforms_begin(map) -> user_numforms_iterator_t Get iterator pointing to the beginning of user_numforms_t. - user_numforms_begin(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) -> 'void' + user_numforms_clear(map) Clear user_numforms_t. - user_numforms_clear(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) -> 'user_numforms_iterator_t' + user_numforms_end(map) -> user_numforms_iterator_t Get iterator pointing to the end of user_numforms_t. - user_numforms_end(map) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) -> 'void' + user_numforms_erase(map, p) Erase current element from user_numforms_t. - user_numforms_erase(map, p) - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) -> 'user_numforms_iterator_t' + user_numforms_find(map, key) -> user_numforms_iterator_t Find the specified key in user_numforms_t. - user_numforms_find(map, key) -> user_numforms_iterator_t - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) -> 'operand_locator_t const &' + user_numforms_first(p) -> operand_locator_t Get reference to the current map key. - user_numforms_first(p) -> operand_locator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) -> 'void' + user_numforms_free(map) Delete user_numforms_t instance. - user_numforms_free(map) - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) -> 'user_numforms_iterator_t' - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -38145,14 +39123,16 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_numforms_iterator_t const & + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38172,7 +39152,7 @@ class user_numforms_iterator_t(builtins.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38182,39 +39162,40 @@ class user_numforms_iterator_t(builtins.object) Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) -> 'user_numforms_t *' + user_numforms_new() -> user_numforms_t Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) -> 'user_numforms_iterator_t' + user_numforms_next(p) -> user_numforms_iterator_t Move to the next element. - user_numforms_next(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) -> 'user_numforms_iterator_t' + user_numforms_prev(p) -> user_numforms_iterator_t Move to the previous element. - user_numforms_prev(p) -> user_numforms_iterator_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) -> 'number_format_t &' + user_numforms_second(p) -> number_format_t Get reference to the current map value. - user_numforms_second(p) -> number_format_t - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) -> 'size_t' + user_numforms_size(map) -> size_t Get size of user_numforms_t. - user_numforms_size(map) -> size_t - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -38325,7 +39306,8 @@ class user_numforms_t(builtins.object) | | at(self, *args) -> 'number_format_t &' | at(self, _Keyval) -> number_format_t - | _Keyval: operand_locator_t const & + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -38398,70 +39380,70 @@ class user_numforms_t(builtins.object) Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) -> 'user_unions_iterator_t' + user_unions_begin(map) -> user_unions_iterator_t Get iterator pointing to the beginning of user_unions_t. - user_unions_begin(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) -> 'void' + user_unions_clear(map) Clear user_unions_t. - user_unions_clear(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) -> 'user_unions_iterator_t' + user_unions_end(map) -> user_unions_iterator_t Get iterator pointing to the end of user_unions_t. - user_unions_end(map) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) -> 'void' + user_unions_erase(map, p) Erase current element from user_unions_t. - user_unions_erase(map, p) - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) -> 'user_unions_iterator_t' + user_unions_find(map, key) -> user_unions_iterator_t Find the specified key in user_unions_t. - user_unions_find(map, key) -> user_unions_iterator_t - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) -> 'ea_t const &' + user_unions_first(p) -> ea_t const & Get reference to the current map key. - user_unions_first(p) -> ea_t const & - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) -> 'void' + user_unions_free(map) Delete user_unions_t instance. - user_unions_free(map) - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) -> 'user_unions_iterator_t' + user_unions_insert(map, key, val) -> user_unions_iterator_t Insert new (ea_t, intvec_t) pair into user_unions_t. - user_unions_insert(map, key, val) -> user_unions_iterator_t - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -38472,14 +39454,16 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool - | p: user_unions_iterator_t const & + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -38499,7 +39483,7 @@ class user_unions_iterator_t(builtins.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -38509,39 +39493,40 @@ class user_unions_iterator_t(builtins.object) Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) -> 'user_unions_t *' + user_unions_new() -> user_unions_t Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) -> 'user_unions_iterator_t' + user_unions_next(p) -> user_unions_iterator_t Move to the next element. - user_unions_next(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) -> 'user_unions_iterator_t' + user_unions_prev(p) -> user_unions_iterator_t Move to the previous element. - user_unions_prev(p) -> user_unions_iterator_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) -> 'intvec_t &' + user_unions_second(p) -> intvec_t Get reference to the current map value. - user_unions_second(p) -> intvec_t - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) -> 'size_t' + user_unions_size(map) -> size_t Get size of user_unions_t. - user_unions_size(map) -> size_t - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -38652,7 +39637,8 @@ class user_unions_t(builtins.object) | | at(self, *args) -> 'qvector< int > &' | at(self, _Keyval) -> intvec_t - | _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -38730,15 +39716,19 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | ivl: ivl_t const & + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool - | v: ivl_t const & + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -38764,7 +39754,8 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t - | idx: int + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -38780,11 +39771,14 @@ class uval_ivl_ivlset_t(builtins.object) | | single_value(self, *args) -> 'bool' | single_value(self) -> bool - | v: unsigned-ea-like-numeric-type↗ + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) - | r: ivlset_tpl< ivl_t,uval_t > & + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38812,8 +39806,9 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t - | _off: unsigned-ea-like-numeric-type↗ - | _size: unsigned-ea-like-numeric-type↗ + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -38839,10 +39834,10 @@ class uval_ivl_t(builtins.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -38856,35 +39851,42 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | size_: int | + | @param size_: int | | __init__(self, r) -> valrng_t - | r: valrng_t const & + | + | @param r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: valrng_t const & + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -38905,11 +39907,13 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: valrng_t const & + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool - | @param strict (C++: bool) + | + | @param strict: bool | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -38925,11 +39929,13 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | inverse(self, *args) -> 'void' | inverse(self) @@ -38939,31 +39945,43 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | max_value(self) -> uvlr_t | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t - | size_: int + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool - | @param new_size (C++: int) + | + | @param new_size: int | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) - | @param cmp (C++: cmpop_t) - | @param _value (C++: uvlr_t) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) -> 'void' | set_eq(self, v) - | @param v (C++: uvlr_t) + | + | @param v: uvlr_t | | set_none(self, *args) -> 'void' | set_none(self) @@ -38973,11 +39991,13 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: valrng_t &) + | + | @param r: valrng_t & | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool - | @param r (C++: const valrng_t &) + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39005,30 +40025,36 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -39037,7 +40063,8 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: var_ref_t const & + | + | @param r: var_ref_t const & | | getv(self, *args) -> 'lvar_t &' | getv(self) -> lvar_t @@ -39052,10 +40079,10 @@ class var_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mba_t + | mba | | thisown | The membership flag @@ -39081,7 +40108,8 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t - | f: cfunc_t const * + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -39089,16 +40117,19 @@ class vc_printer_t(vd_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -39108,8 +40139,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -39121,10 +40155,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -39135,19 +40169,21 @@ class vd_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: char const * + | __init__(self, code, ea, buf=None) -> vd_failure_t | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * | | __init__(self, code, ea, buf) -> vd_failure_t - | code: enum merror_t - | ea: ea_t - | buf: qstring const & | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __init__(self, _hf) -> vd_failure_t - | _hf: hexrays_failure_t const & + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -39167,7 +40203,7 @@ class vd_failure_t(builtins.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -39186,8 +40222,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t - | ea: ea_t - | buf: char const * + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -39216,7 +40253,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -39229,7 +40266,8 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -39238,8 +40276,11 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int - | indent: int - | format: char const * + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39251,13 +40292,13 @@ class vd_printer_t(builtins.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vdloc_t in module ida_hexrays: @@ -39273,30 +40314,36 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -39305,23 +40352,29 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) - | @param r1 (C++: int) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vdloc_t const & + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool - | @param mb (C++: const mba_t *) - | @param size (C++: int) + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) - | @param r1 (C++: int) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39338,191 +40391,221 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -39549,321 +40632,344 @@ class vdui_t(builtins.object) | delete_vdui_t(self) | | calc_cmt_type(self, *args) -> 'cmt_type_t' - | Check if the specified line can have a comment. Due to the coordinate - | system for comments: (https://www.hex-rays.com/blog/coordinate-system- - | for-hex-rays) some function lines cannot have comments. This function - | checks if a comment can be attached to the specified line. - | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | @param lnnum: line number (0 based) (C++: size_t) - | @param cmttype: comment types to check (C++: cmt_type_t) - | @return: possible comment types + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) -> 'void' - | Clear the pseudocode window. It deletes the current function and - | microcode. + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) -> 'bool' + | collapse_item(self, hide) -> bool | Collapse/uncollapse item. This function collapses the current item. | - | collapse_item(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' + | collapse_lvars(self, hide) -> bool | Collapse/uncollapse local variable declarations. | - | collapse_lvars(self, hide) -> bool - | @param hide (C++: bool) - | @return: false if failed. + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) -> 'bool' - | Jump to disassembly. This function jumps to the address in the - | disassembly window which corresponds to the current item. The current - | item is determined based on the current keyboard cursor position. + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) -> 'bool' - | Delete all orphan comments. Delete all orphan comments and refresh the - | screen. + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) -> 'bool' - | Edit an indented comment. This function displays a dialog box and - | allows the user to edit the comment for the specified ctree location. - | | edit_cmt(self, loc) -> bool - | @param loc: comment location (C++: const treeloc_t &) - | @return: false if failed or cancelled + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) -> 'bool' - | Edit a function comment. This function displays a dialog box and - | allows the user to edit the function comment. + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) -> 'bool' - | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' - | fields. 'cfunc_t::get_line_item()' - | | get_current_item(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) -> 'int' - | Get current label. If there is a label under the cursor, return its - | number. + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) -> 'cnumber_t *' - | Get current number. If the current item is a number, return pointer to - | it. + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) -> 'bool' + | in_ctree(self) -> bool | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) -> 'bool' - | Bitwise negate a number. This function inverts all bits of the current - | number. + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) -> 'bool' + | invert_sign(self) -> bool | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) -> 'bool' - | Process the Enter key. This function jumps to the definition of the - | item under the cursor. If the current item is a function, it will be - | decompiled. If the current item is a global data, its disassemly text - | will be displayed. - | | jump_enter(self, idv, omflags) -> bool - | @param idv: what cursor must be used, the keyboard or the mouse (C++: - | input_device_t) - | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse - | the existing window (C++: int) - | @return: false if failed + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) -> 'bool' - | Does the pseudocode window contain valid code? We lock windows before - | modifying them, to avoid recursion due to the events generated by the - | IDA kernel. + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) -> 'bool' - | Map a local variable to another. This function permanently maps one - | lvar to another. All occurrences of the mapped variable are replaced - | by the new variable - | | map_lvar(self, frm, to) -> bool - | @param frm: the variable being mapped (C++: lvar_t *) - | @param to: the variable to map to. if NULL, unmaps the variable (C++: - | lvar_t *) - | @return: false if failed + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' - | Refresh the current position. This function refreshes the 'cpos' - | field. - | | refresh_cpos(self, idv) -> bool - | @param idv: keyboard or mouse (C++: input_device_t) - | @return: false if failed + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' - | Refresh pseudocode window. This function refreshes the pseudocode - | window by regenerating its text from 'cfunc_t' . Instead of this - | function use refresh_func_ctext(), which refreshes all pseudocode - | windows for the function. 'refresh_view()' , refresh_func_ctext() - | | refresh_ctext(self, activate=True) - | @param activate (C++: bool) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) -> 'void' - | Refresh pseudocode window. This is the highest level refresh function. - | It causes the most profound refresh possible and can lead to - | redecompilation of the current function. Please consider using - | 'refresh_ctext()' if you need a more superficial refresh. - | 'refresh_ctext()' - | | refresh_view(self, redo_mba) - | @param redo_mba: true means to redecompile the current function - | false means to rebuild ctree without regenerating - | microcode (C++: bool) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) -> 'bool' - | Rename global item. This function displays a dialog box and allows the - | user to rename a global item (data or function). - | | rename_global(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' - | Rename a label. This function displays a dialog box and allows the - | user to rename a statement label. - | | rename_label(self, label) -> bool - | @param label: label number (C++: int) - | @return: false if failed or cancelled + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' - | Rename local variable. This function permanently renames a local - | variable.::rename_lvar() - | | rename_lvar(self, v, name, is_user_name) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param name: new variable name (C++: const char *) - | @param is_user_name: use true to save the new name into the database. - | use false to delete the saved name. (C++: bool) - | @return: false if failed + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' - | Rename structure field. This function displays a dialog box and allows - | the user to rename a structure field. - | | rename_strmem(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) -> 'bool' - | Set global item type. This function displays a dialog box and allows - | the user to change the type of a global item (data or function). - | | set_global_type(self, ea) -> bool - | @param ea: address of the global item (C++: ea_t) - | @return: false if failed or cancelled + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool - | @param v (C++: bool) + | + | @param v: bool | | set_lvar_cmt(self, *args) -> 'bool' - | Set local variable comment. This function permanently sets a variable - | comment. - | | set_lvar_cmt(self, v, cmt) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param cmt: new comment (C++: const char *) - | @return: false if failed + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) -> 'bool' - | Set local variable type. This function permanently sets a local - | variable type and clears NOPTR flag if it was set before by function - | 'set_noptr_lvar' - | | set_lvar_type(self, v, type) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @param type: new variable type (C++: const tinfo_t &) - | @return: false if failed + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) -> 'bool' - | Inform that local variable should have a non-pointer type This - | function permanently sets a corresponding variable flag (NOPTR) and - | removes type if it was set before by function 'set_lvar_type' - | | set_noptr_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) -> 'bool' - | Convert number to symbolic constant. This function displays a dialog - | box and allows the user to select a symbolic constant to represent the - | number. + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) -> 'bool' - | Change number base. This function changes the current number - | representation. - | | set_num_radix(self, base) -> bool - | @param base: number radix (10 or 16) 0 means a character constant - | (C++: int) - | @return: false if failed + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' + | set_num_stroff(self) -> bool | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) -> 'bool' - | Set structure field type. This function displays a dialog box and - | allows the user to change the type of a structure field. - | | set_strmem_type(self, sptr, mptr) -> bool - | @param sptr: pointer to structure (C++: struc_t *) - | @param mptr: pointer to structure member (C++: member_t *) - | @return: false if failed or cancelled + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) - | @param v (C++: bool) + | + | @param v: bool | | set_visible(self, *args) -> 'void' | set_visible(self, v) - | @param v (C++: bool) + | + | @param v: bool | | split_item(self, *args) -> 'bool' - | Split/unsplit item. This function splits the current assignment - | expression. - | | split_item(self, split) -> bool - | @param split (C++: bool) - | @return: false if failed. + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' - | Display the specified pseudocode. This function replaces the - | pseudocode window contents with the specified 'cfunc_t' . - | | switch_to(self, f, activate) - | @param f: pointer to the function to display. (C++: cfuncptr_t) - | @param activate: should the pseudocode window get focus? (C++: bool) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) -> 'bool' - | Set local variable comment. This function displays a dialog box and - | allows the user to edit the comment of a local variable. - | | ui_edit_lvar_cmt(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' - | Map a local variable to another. This function displays a variable - | list and allows the user to select mapping. - | | ui_map_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' - | Rename local variable. This function displays a dialog box and allows - | the user to rename a local variable. - | | ui_rename_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> 'bool' - | Set type of a function call This function displays a dialog box and - | allows the user to change the type of a function call - | | ui_set_call_type(self, e) -> bool - | @param e: pointer to call expression (C++: const cexpr_t *) - | @return: false if failed or cancelled + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' - | Set local variable type. This function displays a dialog box and - | allows the user to change the type of a local variable. - | | ui_set_lvar_type(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> 'bool' - | Unmap a local variable. This function displays list of variables - | mapped to the specified variable and allows the user to select a - | variable to unmap. - | | ui_unmap_lvar(self, v) -> bool - | @param v: pointer to local variable (C++: lvar_t *) - | @return: false if failed or cancelled + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) -> 'bool' - | Does the pseudocode window contain valid code? It can become invalid - | if the function type gets changed in IDA. + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) -> 'bool' - | Is the pseudocode window visible? if not, it might be invisible or - | destroyed + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39875,40 +40981,40 @@ class vdui_t(builtins.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mba_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx Help on class vivl_t in module ida_hexrays: @@ -39924,45 +41030,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: vivl_t const & | + | @param r: vivl_t const & | | __eq__(self, mop) -> bool - | mop: mop_t const & + | + | @param mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | _type: mopt_t - | _off: sval_t - | _size: int | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | __init__(self, ch) -> vivl_t - | ch: chain_t const & | + | @param ch: chain_t const & | | __init__(self, op) -> vivl_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: vivl_t const & + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -39974,69 +41087,73 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: vivl_t const & + | + | @param r: vivl_t const & | | contains(self, *args) -> 'bool' + | contains(self, voff2) -> bool | Does our value interval contain the specified value offset? | - | contains(self, voff2) -> bool - | @param voff2 (C++: const voff_t &) + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool | Extend a value interval using another value interval of the same type | - | extend_to_cover(self, r) -> bool - | @param r (C++: const vivl_t &) - | @return: success + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) -> 'bool' + | includes(self, r) -> bool | Does our value interval include another? | - | includes(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) -> 'uval_t' + | intersect(self, r) -> uval_t | Intersect value intervals the same type | - | intersect(self, r) -> uval_t - | @param r (C++: const vivl_t &) - | @return: size of the resulting intersection + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool | Do two value intervals overlap? | - | overlap(self, r) -> bool - | @param r (C++: const vivl_t &) + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) - | @param _size (C++: int) | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int | | set(self, voff, _size) - | voff: voff_t const & - | @param _size (C++: int) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) - | @param mreg (C++: mreg_t) - | @param sz (C++: int) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) - | @param stkoff (C++: sval_t) - | @param sz (C++: int) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -40051,14 +41168,16 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -40068,7 +41187,8 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -40089,10 +41209,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -40103,36 +41223,44 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | _type: mopt_t - | _off: sval_t + | __init__(self, _type, _off) -> voff_t | + | @param _type: mopt_t + | @param _off: sval_t | | __init__(self, op) -> voff_t - | op: mop_t const & + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: voff_t const & + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -40141,18 +41269,21 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t - | @param width (C++: int) + | + | @param width: int | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: voff_t const & + | + | @param r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t - | @param r (C++: const voff_t &) + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -40162,7 +41293,8 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) - | @param delta (C++: sval_t) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -40172,16 +41304,19 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) - | @param _type (C++: mopt_t) - | @param _off (C++: sval_t) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) - | @param mreg (C++: mreg_t) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) - | @param stkoff (C++: sval_t) + | + | @param stkoff: sval_t | | undef(self, *args) -> 'void' | undef(self) @@ -40196,1063 +41331,32 @@ class voff_t(builtins.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFL_NORET -""" -call does not return -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LOCKED -""" -cfunc is temporarily locked -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -del the jump insn at the end of the block if it becomes useless -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_HIDE -""" -do not close display waitbox. see close_hexrays_waitboxes() -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_NO_XREFS -""" -do not update global xrefs cache -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore source operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -A variadic function with recognized printf- or scanf-style format -string -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -ignore possible implicit definitions by function calls and indirect -memory access -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -the purpose of the instruction is to clean stack (e.g. "pop ecx" is -often used for that) -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -this instruction acts as a memory barrier (instructions accessing -memory may not be reordered past it) -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -bits that can be set by plugins: - -the minsn was generated as part of insn that moves multiple registers -(example: STM on ARM may transfer multiple registers) -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -redo optimization for all blocks. if this bit is not set, only dirty -blocks will be optimized -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.LVINF_UNUSED -""" -unused argument, corresponds to CVAR_UNUSED -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_KEEP -""" -do not remove even if unreachable -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -private block - no instructions except the specified are accepted -(used in patterns) -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_VALID -""" -internal bit: stroff or enum is valid for enums: this bit is set -immediately for stroffs: this bit is set at the end of decompilation -""" - -ida_hexrays.OPF_NEW_WINDOW -""" -open new window -""" - -ida_hexrays.OPF_NO_WAIT -""" -do not display waitbox if decompilation happens -""" - -ida_hexrays.OPF_REUSE -""" -reuse existing window -""" - -ida_hexrays.OPF_REUSE_ACTIVE -""" -reuse existing window, only if the currently active widget is a -pseudocode view -""" - -ida_hexrays.OPROP_CCFLAGS -""" -mop_n: a pc-relative value else: value of a condition code register -(like mr_cc) -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_LOWADDR -""" -a low address offset -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -the function is called after the propagation attempt, we do not -optimize low/high(ldx) in this case -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -ida_hexrays.VR_AT_START -""" -get value ranges before the instruction or at the block start (if M is -NULL) -""" +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -ida_hexrays.VR_EXACT -""" -find exact match. if not set, the returned valrng size will be >= -vivl.size -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -41260,12 +41364,15 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - #<pycode(py_ida)> Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + Help on function __wrap_hooks_callback in module ida_ida: __wrap_hooks_callback(klass, new_name, old_name, do_call) @@ -41273,6 +41380,7 @@ __wrap_hooks_callback(klass, new_name, old_name, do_call) Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) -> 'int' + calc_default_idaplace_flags() -> int Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -41300,34 +41408,34 @@ class compiler_info_t(builtins.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag @@ -41335,30 +41443,36 @@ class compiler_info_t(builtins.object) Help on function delinf in module ida_ida: delinf(*args) -> 'bool' + delinf(tag) -> bool undefine a program specific information - delinf(tag) -> bool - @param tag: one of inftag_t constants (C++: inftag_t) - @return: success + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success Help on function get_dbctx_id in module ida_ida: get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t Get the current database context ID + + @return: the database context ID, or -1 if no current database Help on function get_dbctx_qty in module ida_ida: get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t Get number of database contexts + + @return: number of database contexts Help on function getinf_str in module ida_ida: getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str get program specific information (a non-scalar value) - getinf_str(tag) -> str - @param tag: one of inftag_t constants (C++: inftag_t) - @return: number of bytes stored in the buffer (<0 - not defined) + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) Help on class idainfo in module ida_ida: @@ -41385,17 +41499,8 @@ class idainfo(builtins.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) -> 'ea_t' - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) -> 'ea_t' - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) -> 'qstring' - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -41448,14 +41553,6 @@ class idainfo(builtins.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) -> 'void' - | set_maxEA(self, ea) - | ea: ea_t - | - | set_minEA(self, *args) -> 'void' - | set_minEA(self, ea) - | ea: ea_t - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -41490,193 +41587,206 @@ class idainfo(builtins.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | lflags | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) -> 'bool' @@ -41695,7 +41805,8 @@ inf_gen_tryblks(*args) -> 'bool' Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) -> 'uchar' - Get 'DEMNAM_MASK' bits of #demnames. + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: @@ -41784,6 +41895,10 @@ inf_map_stkargs(*args) -> 'bool' Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -41795,73 +41910,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) -> 'bool' inf_set_auto_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) -> 'bool' inf_set_gen_lzero(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) -> 'bool' inf_set_gen_null(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) -> 'bool' inf_set_gen_tryblks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) -> 'bool' inf_set_graph_view(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) -> 'bool' inf_set_line_pref_with_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) -> 'int' inf_set_pack_mode(pack_mode) -> int - @param pack_mode (C++: int) + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) -> 'bool' inf_set_show_auto(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) -> 'bool' inf_set_show_line_pref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) -> 'bool' inf_set_show_void(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function <lambda> in module ida_ida: @@ -41871,7 +41998,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) -> 'bool' inf_set_wide_high_byte_first(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -42051,6 +42179,7 @@ inf_get_af2(*args) -> 'uint32' Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) -> 'ushort' + inf_get_af2_low() -> ushort Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -42061,6 +42190,7 @@ inf_get_af_high(*args) -> 'ushort' Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) -> 'ushort' + inf_get_af_low() -> ushort Get/set low/high 16bit halves of inf.af. Help on function inf_get_app_bitness in module ida_ida: @@ -42097,7 +42227,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool - @param out (C++: compiler_info_t *) + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -42154,11 +42285,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) -> 'uchar' inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) -> 'uchar' - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) -> 'uint32' @@ -42293,7 +42419,10 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool - @param out (C++: range_t *) + + @param out: range_t * + + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -42434,7 +42563,8 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) -> 'void' inf_inc_database_change_count(cnt=1) - @param cnt (C++: int) + + @param cnt: int Help on function inf_is_16bit in module ida_ida: @@ -42505,7 +42635,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) -> 'uval_t' inf_postinc_strlit_sernum(cnt=1) -> uval_t - @param cnt (C++: uval_t) + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -42551,951 +42682,1102 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) -> 'bool' inf_set_abi_set_by_user(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) -> 'void' inf_set_af2_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) -> 'void' inf_set_af_high(saf2) - @param saf2 (C++: ushort) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) -> 'void' inf_set_af_low(saf) - @param saf (C++: ushort) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) -> 'bool' inf_set_allow_non_matched_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) -> 'bool' inf_set_allow_sigmulti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) -> 'bool' inf_set_appcall_options(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) -> 'bool' inf_set_append_sigcmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) -> 'bool' inf_set_big_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) -> 'bool' inf_set_bin_prefix_size(_v) -> bool - @param _v (C++: short) + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool - @param _v (C++: const compiler_info_t &) + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) -> 'bool' inf_set_cc_cm(_v) -> bool - @param _v (C++: cm_t) + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) -> 'bool' inf_set_cc_defalign(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) -> 'bool' inf_set_cc_id(_v) -> bool - @param _v (C++: comp_t) + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) -> 'bool' inf_set_cc_size_b(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) -> 'bool' inf_set_cc_size_e(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) -> 'bool' inf_set_cc_size_i(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) -> 'bool' inf_set_cc_size_l(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) -> 'bool' inf_set_cc_size_ldbl(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) -> 'bool' inf_set_cc_size_ll(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) -> 'bool' inf_set_cc_size_s(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) -> 'bool' inf_set_check_manual_ops(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) -> 'bool' inf_set_check_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) -> 'bool' inf_set_coagulate_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) -> 'bool' inf_set_coagulate_data(_v=True) -> bool - @param _v (C++: bool) - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) -> 'bool' - inf_set_comment(_v) -> bool - @param _v (C++: uchar) + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) -> 'bool' inf_set_compress_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) -> 'bool' inf_set_create_all_xrefs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) -> 'bool' inf_set_create_func_from_call(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) -> 'bool' inf_set_create_func_from_ptr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) -> 'bool' inf_set_create_func_tails(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) -> 'bool' inf_set_create_jump_tables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) -> 'bool' inf_set_create_off_on_dref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) -> 'bool' inf_set_create_off_using_fixup(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) -> 'bool' inf_set_create_strlit_on_xref(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) -> 'bool' inf_set_data_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) -> 'bool' inf_set_database_change_count(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) -> 'bool' inf_set_dbg_no_store_path(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) -> 'bool' inf_set_decode_fpp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) -> 'bool' inf_set_del_no_xref_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool - @param _v (C++: filetype_t) + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) -> 'bool' inf_set_final_pass(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) -> 'bool' inf_set_flat_off32(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) -> 'bool' inf_set_full_sp_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) -> 'bool' inf_set_gen_assume(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) -> 'bool' inf_set_gen_org(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) -> 'bool' inf_set_guess_func_type(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) -> 'bool' inf_set_handle_eh(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) -> 'bool' inf_set_handle_rtti(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) -> 'bool' inf_set_hard_float(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) -> 'bool' inf_set_hide_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) -> 'bool' inf_set_hide_libfuncs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) -> 'bool' inf_set_huge_arg_align(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) -> 'bool' inf_set_kernel_mode(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) -> 'bool' inf_set_limiter_empty(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) -> 'bool' inf_set_limiter_thick(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) -> 'bool' inf_set_limiter_thin(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) -> 'bool' inf_set_loading_idc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) -> 'bool' inf_set_long_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) -> 'bool' inf_set_macros_enabled(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) -> 'bool' inf_set_map_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) -> 'bool' inf_set_mark_code(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) -> 'bool' inf_set_max_autoname_len(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) -> 'bool' inf_set_max_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) -> 'bool' inf_set_mem_aligned4(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) -> 'bool' inf_set_min_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool - @param _v (C++: sval_t) + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) -> 'bool' inf_set_no_store_user_info(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) -> 'bool' inf_set_noflow_to_data(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) -> 'bool' inf_set_noret_ana(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) -> 'bool' inf_set_omax_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) -> 'bool' inf_set_omin_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) -> 'bool' inf_set_op_offset(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) -> 'bool' inf_set_pack_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) -> 'bool' inf_set_pack_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) -> 'bool' inf_set_prefix_show_funcoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) -> 'bool' inf_set_prefix_show_segaddr(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) -> 'bool' inf_set_prefix_show_stack(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool - @param _v (C++: const range_t &) + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) -> 'bool' inf_set_privrange_end_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) -> 'bool' inf_set_privrange_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) -> 'bool' inf_set_procname(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) -> 'bool' inf_set_propagate_regargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) -> 'bool' inf_set_propagate_stkargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) -> 'bool' inf_set_readonly_idb(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) -> 'bool' inf_set_rename_jumpfunc(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) -> 'bool' inf_set_rename_nullsub(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) -> 'bool' inf_set_short_demnames(_v) -> bool - @param _v (C++: uint32) + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) -> 'bool' inf_set_should_create_stkvars(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) -> 'bool' inf_set_should_trace_sp(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) -> 'bool' inf_set_show_all_comments(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) -> 'bool' inf_set_show_hidden_funcs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) -> 'bool' inf_set_show_hidden_insns(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) -> 'bool' inf_set_show_hidden_segms(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) -> 'bool' inf_set_show_repeatables(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) -> 'bool' inf_set_show_src_linnum(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) -> 'bool' inf_set_show_xref_fncoff(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) -> 'bool' inf_set_show_xref_seg(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) -> 'bool' inf_set_show_xref_tmarks(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) -> 'bool' inf_set_show_xref_val(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) -> 'bool' inf_set_stack_ldbl(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) -> 'bool' inf_set_stack_varargs(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) -> 'bool' inf_set_start_cs(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) -> 'bool' inf_set_start_ea(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) -> 'bool' inf_set_start_ip(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) -> 'bool' inf_set_start_sp(_v) -> bool - @param _v (C++: ea_t) + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) -> 'bool' inf_set_start_ss(_v) -> bool - @param _v (C++: sel_t) + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) -> 'bool' inf_set_strlit_autocmt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) -> 'bool' inf_set_strlit_break(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) -> 'bool' inf_set_strlit_flags(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) -> 'bool' inf_set_strlit_name_bit(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) -> 'bool' inf_set_strlit_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) -> 'bool' inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - @param _v (C++: const char *) - @param len (C++: size_t) + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) -> 'bool' inf_set_strlit_savecase(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) -> 'bool' inf_set_strlit_serial_names(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) -> 'bool' inf_set_strlit_sernum(_v) -> bool - @param _v (C++: uval_t) + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) -> 'bool' inf_set_strlit_zeroes(_v) -> bool - @param _v (C++: char) + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) -> 'bool' inf_set_strtype(_v) -> bool - @param _v (C++: int32) + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) -> 'bool' inf_set_trace_flow(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) -> 'bool' inf_set_truncate_on_del(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) -> 'bool' inf_set_type_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) -> 'bool' inf_set_unicode_strlits(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) -> 'bool' inf_set_use_allasm(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) -> 'bool' inf_set_use_flirt(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) -> 'bool' inf_set_use_gcc_layout(_v=True) -> bool - @param _v (C++: bool) + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool - @param _v (C++: ushort) + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool - @param _v (C++: uchar) + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -43610,10 +43892,10 @@ inf_use_flirt(*args) -> 'bool' Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) -> 'bool' + is_filetype_like_binary(ft) -> bool Is unstructured input file? - is_filetype_like_binary(ft) -> bool - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function <lambda> in module ida_ida: @@ -43622,603 +43904,24 @@ Help on function <lambda> in module ida_ida: Help on function switch_dbctx in module ida_ida: switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * Switch to the database with the provided context ID - switch_dbctx(idx) -> dbctx_t * - @param idx: the index of the database to switch to (C++: size_t) - @return: the current dbctx_t instance or nullptr + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr Help on function to_ea in module ida_ida: to_ea(*args) -> 'ea_t' + to_ea(reg_cs, reg_ip) -> ea_t Convert (sel,off) value to a linear address. - to_ea(reg_cs, reg_ip) -> ea_t - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -use natural type alignment for argument if the alignment exceeds -native word size (e.g. __int64 argument should be 8byte aligned on -some 32bit platforms) -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment. this -bit is not used by ida yet -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -may use constructs not supported by the target assembler -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program (or higher)? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -Bit order of wide bytes: high byte first? (wide bytes: \\ph{dnbits} > -8) -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -44319,7 +44022,8 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44328,81 +44032,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44426,10 +44130,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44482,6 +44186,8 @@ Help on function IDAPython_ExecScript in module ida_idaapi: IDAPython_ExecScript(path, g, print_error=True) Run the specified script. + + This function is used by the low-level plugin code. Help on function IDAPython_ExecSystem in module ida_idaapi: @@ -44623,33 +44329,6 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on __BC695 in module ida_idaapi object: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on IDAPython_displayhook in module ida_idaapi object: class IDAPython_displayhook(builtins.object) @@ -44677,33 +44356,6 @@ class IDAPython_displayhook(builtins.object) | __weakref__ | list of weak references to the object (if defined) -Help on class __BC695 in module ida_idaapi: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(builtins.object) @@ -44759,6 +44411,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -44827,19 +44487,22 @@ enable_extlang_python(*args) -> 'void' enable_extlang_python(enable) Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) - enable: bool + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' - format_basestring(_in) -> PyObject * - _in: PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: @@ -44850,9 +44513,6 @@ get_inf_structure(*args) -> 'idainfo *' Help on class loader_input_t in module ida_idaapi: class loader_input_t(builtins.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -44860,7 +44520,8 @@ class loader_input_t(builtins.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | Closes the file + | + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -44869,15 +44530,17 @@ class loader_input_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | file2base(self, *args) -> 'int' | file2base(self, pos, ea1, ea2, patchable) -> int | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -44893,12 +44556,15 @@ class loader_input_t(builtins.object) | get_linput(self) -> linput_t * | | gets(self, *args) -> 'PyObject *' - | gets(self, len) -> PyObject * + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) -> 'PyObject *' | getz(self, sz, fpos=-1) -> PyObject * | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. @@ -44906,12 +44572,16 @@ class loader_input_t(builtins.object) | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) -> 'bool' | open_memory(self, start, size=0) -> bool | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 @@ -44921,21 +44591,31 @@ class loader_input_t(builtins.object) | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' - | read(self, size) -> PyObject * + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) -> 'void' | set_linput(self, linput) | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) -> 'int64' | size(self) -> int64 @@ -44949,15 +44629,19 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t - | pycapsule: PyObject * + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t - | linput: linput_t * + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -44966,7 +44650,7 @@ class loader_input_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -44978,19 +44662,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) -> 'loader_input_t *' loader_input_t_from_capsule(pycapsule) -> loader_input_t - pycapsule: PyObject * + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) -> 'loader_input_t *' loader_input_t_from_fp(fp) -> loader_input_t - fp: FILE * + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) -> 'loader_input_t *' loader_input_t_from_linput(linput) -> loader_input_t - linput: linput_t * + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -45030,7 +44717,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * - cmdline: char const * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -45145,43 +44833,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' - pygc_create_groups(_self, groups_infos) -> PyObject * - self: PyObject * - groups_infos: PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) -> 'PyObject *' - pygc_delete_groups(_self, groups, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - new_current: PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) -> 'PyObject *' - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - self: PyObject * - groups: PyObject * - expand: PyObject * - new_current: PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -45273,28 +44967,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -45323,15 +45030,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45364,8 +45069,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45434,15 +45138,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -45475,8 +45177,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -45600,8 +45301,7 @@ class Appcall_callable__(builtins.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -45653,11 +45353,12 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - func_ea: ea_t - tid: thid_t - _type_or_none: bytevec_t const & - _fields: bytevec_t const & - arg_list: PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -45684,10 +45385,10 @@ class bptaddr_t(builtins.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -45701,14 +45402,16 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: call_stack_info_t const & + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -45725,16 +45428,16 @@ class call_stack_info_t(builtins.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -45753,15 +45456,19 @@ class call_stack_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_info_vec_t - | x: qvector< call_stack_info_t > const & + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45771,36 +45478,42 @@ class call_stack_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | __swig_destroy__ = delete_call_stack_info_vec_t(...) | delete_call_stack_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -45813,78 +45526,85 @@ class call_stack_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -45937,11 +45657,13 @@ class call_stack_t(call_stack_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -45951,31 +45673,37 @@ class call_stack_t(call_stack_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< call_stack_info_t > const & + | + | @param r: qvector< call_stack_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: call_stack_info_t const & + | + | @param i: size_t + | @param v: call_stack_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: call_stack_info_t const & + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -45988,78 +45716,85 @@ class call_stack_t(call_stack_info_vec_t) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator | + | @param it: qvector< call_stack_info_t >::iterator | | erase(self, first, last) -> call_stack_info_t - | first: qvector< call_stack_info_t >::iterator - | last: qvector< call_stack_info_t >::iterator + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & | - | - | find(self, x) -> call_stack_info_t - | x: call_stack_info_t const & + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: call_stack_info_t * - | len: size_t + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t - | it: qvector< call_stack_info_t >::iterator - | x: call_stack_info_t const & + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) - | x: call_stack_info_t const & + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: call_stack_info_t const & | + | @param _newsize: size_t + | @param x: call_stack_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< call_stack_info_t > & + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46082,35 +45817,33 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) -> 'error_t' + cleanup_appcall(tid) -> error_t Cleanup after manual appcall. - cleanup_appcall(tid) -> error_t - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) -> 'error_t' + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t Call a function from the debugged application. - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -46122,8 +45855,8 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) -> 'PyObject *' dbg_get_memory_info() -> PyObject * This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: @@ -46131,6 +45864,7 @@ Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) -> 'PyObject *' dbg_get_name() -> PyObject * This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: @@ -46139,8 +45873,8 @@ dbg_get_registers(*args) -> 'PyObject *' dbg_get_registers() -> PyObject * This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -46149,10 +45883,10 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) -> 'PyObject *' dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: @@ -46160,15 +45894,20 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' - dbg_write_memory(ea, buf) -> PyObject * + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -46196,16 +45935,16 @@ class debapp_attrs_t(builtins.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -46219,7 +45958,9 @@ class debug_event_t(builtins.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | r: debug_event_t const & + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -46227,70 +45968,71 @@ class debug_event_t(builtins.object) | delete_debug_event_t(self) | | bpt(self, *args) -> 'bptaddr_t const &' - | 'EXCEPTION' + | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) -> 'ea_t' - | On some systems with special memory mappings the triggered ea might be - | different from the actual ea. Calculate the address to use. + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) -> 'void' - | clear the dependent information (see below), set event code to - | NO_EVENT + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) -> 'void' | clear_all(self) | | copy(self, *args) -> 'debug_event_t &' | copy(self, r) -> debug_event_t - | @param r (C++: const debug_event_t &) + | + | @param r: debug_event_t const & | | eid(self, *args) -> 'event_id_t' + | eid(self) -> event_id_t | Event code. | | exc(self, *args) -> 'excinfo_t const &' | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) -> 'int const &' - | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) - | 'INFORMATION' (will be displayed in the output window if not empty) + | exit_code(self) -> int const & | | info(self, *args) -> 'qstring const &' - | 'BREAKPOINT' + | info(self) -> qstring + | info(self) -> qstring const & | | modinfo(self, *args) -> 'modinfo_t const &' - | Information that depends on the event code: - | - | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' - | 'PROCESS_EXITED' , 'THREAD_EXITED' + | modinfo(self) -> modinfo_t | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' - | Set event code. If the new event code is compatible with the old one - | then the dependent information (see below) will be preserved. - | Otherwise the event will be cleared and the new event code will be - | set. - | | set_eid(self, id) - | @param id (C++: event_id_t) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) -> 'excinfo_t &' | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) -> 'void' | set_exit_code(self, id, code) - | @param id (C++: event_id_t) - | @param code (C++: int) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t - | @param id (C++: event_id_t) + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -46302,19 +46044,19 @@ class debug_event_t(builtins.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid Help on class exception_info_t in module ida_idd: @@ -46325,10 +46067,12 @@ class exception_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | _code: uint - | _flags: uint32 - | _name: char const * - | _desc: char const * + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | @@ -46336,9 +46080,11 @@ class exception_info_t(builtins.object) | delete_exception_info_t(self) | | break_on(self, *args) -> 'bool' + | break_on(self) -> bool | Should we break on the exception? | | handle(self, *args) -> 'bool' + | handle(self) -> bool | Should we handle the exception? | | ---------------------------------------------------------------------- @@ -46351,16 +46097,16 @@ class exception_info_t(builtins.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -46390,16 +46136,16 @@ class excinfo_t(builtins.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -46413,11 +46159,14 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | x: qvector< exception_info_t > const & + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46429,22 +46178,23 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: exception_info_t const & + | + | @param i: size_t + | @param v: exception_info_t const & | | __swig_destroy__ = delete_excvec_t(...) | delete_excvec_t(self) | | at(self, *args) -> 'exception_info_t const &' | at(self, _idx) -> exception_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46457,16 +46207,16 @@ class excvec_t(builtins.object) | | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t - | it: qvector< exception_info_t >::iterator | + | @param it: qvector< exception_info_t >::iterator | | erase(self, first, last) -> exception_info_t - | first: qvector< exception_info_t >::iterator - | last: qvector< exception_info_t >::iterator + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -46476,47 +46226,56 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) - | x: exception_info_t const & + | + | @param x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: exception_info_t * - | len: size_t + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t - | it: qvector< exception_info_t >::iterator - | x: exception_info_t const & + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) - | x: exception_info_t const & + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: exception_info_t const & | + | @param _newsize: size_t + | @param x: exception_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< exception_info_t > & + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46537,49 +46296,57 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) -> 'ea_t' get_event_bpt_hea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) -> 'uint' get_event_exc_code(ev) -> uint - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) -> 'ea_t' get_event_exc_ea(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) -> 'size_t' get_event_exc_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) -> 'size_t' get_event_info(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) -> 'ea_t' get_event_module_base(ev) -> ea_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) -> 'size_t' get_event_module_name(ev) -> str - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) -> 'asize_t' get_event_module_size(ev) -> asize_t - ev: debug_event_t const * + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -46590,15 +46357,19 @@ class meminfo_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | x: qvector< memory_info_t > const & + | __init__(self, x) -> meminfo_vec_t + | + | @param x: qvector< memory_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46608,36 +46379,42 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< memory_info_t > const & + | + | @param r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: memory_info_t const & + | + | @param i: size_t + | @param v: memory_info_t const & | | __swig_destroy__ = delete_meminfo_vec_t(...) | delete_meminfo_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: memory_info_t const & + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46650,78 +46427,85 @@ class meminfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t - | it: qvector< memory_info_t >::iterator | + | @param it: qvector< memory_info_t >::iterator | | erase(self, first, last) -> memory_info_t - | first: qvector< memory_info_t >::iterator - | last: qvector< memory_info_t >::iterator + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) -> 'memory_info_t *' | extract(self) -> memory_info_t | | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' | find(self, x) -> memory_info_t - | x: memory_info_t const & | - | - | find(self, x) -> memory_info_t - | x: memory_info_t const & + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: memory_info_t const & + | + | @param x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: memory_info_t * - | len: size_t + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t - | it: qvector< memory_info_t >::iterator - | x: memory_info_t const & + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) - | x: memory_info_t const & + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: memory_info_t const & | + | @param _newsize: size_t + | @param x: memory_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< memory_info_t > & + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46757,14 +46541,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: memory_info_t const & + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -46775,19 +46561,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -46802,58 +46588,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -46867,12 +46657,12 @@ class memory_info_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -46899,16 +46689,16 @@ class modinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -46938,10 +46728,10 @@ class process_info_t(builtins.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -46955,11 +46745,14 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | x: qvector< process_info_t > const & + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46971,22 +46764,23 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: process_info_t const & + | + | @param i: size_t + | @param v: process_info_t const & | | __swig_destroy__ = delete_procinfo_vec_t(...) | delete_procinfo_vec_t(self) | | at(self, *args) -> 'process_info_t const &' | at(self, _idx) -> process_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46999,16 +46793,16 @@ class procinfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< process_info_t >::const_iterator' | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t - | it: qvector< process_info_t >::iterator | + | @param it: qvector< process_info_t >::iterator | | erase(self, first, last) -> process_info_t - | first: qvector< process_info_t >::iterator - | last: qvector< process_info_t >::iterator + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -47018,47 +46812,56 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) - | x: process_info_t const & + | + | @param x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: process_info_t * - | len: size_t + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t - | it: qvector< process_info_t >::iterator - | x: process_info_t const & + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) - | x: process_info_t const & + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: process_info_t const & | + | @param _newsize: size_t + | @param x: process_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< process_info_t > & + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -47100,22 +46903,22 @@ class register_info_t(builtins.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | bit_strings | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -47129,15 +46932,19 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | r: regval_t const & + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: regval_t const & + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -47146,43 +46953,56 @@ class regval_t(builtins.object) | | bytes(self, *args) -> 'bytevec_t const &' | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' + | clear(self) | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) -> 'size_t' | get_data_size(self) -> size_t + | Get size of value. | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) - | data: uchar const * - | size: size_t + | Initialize this regval to an empty custom value. | + | @param data: uchar const * + | @param size: size_t | | set_bytes(self, v) - | v: bytevec_t const & + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & | | set_float(self, *args) -> 'void' | set_float(self, x) - | x: fpvalue_t const & + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) -> 'void' | set_int(self, x) - | x: uint64 + | Set int value (ival) + | + | @param x: (C++: uint64) | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) -> 'void' + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: regval_t &) + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47194,13 +47014,13 @@ class regval_t(builtins.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> fpvalue_t + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype | | thisown | The membership flag @@ -47234,7 +47054,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -47244,66 +47064,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -47317,12 +47143,12 @@ class scattered_segm_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -47333,8 +47159,9 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) -> 'void' set_debug_event_code(ev, id) - @param ev (C++: debug_event_t *) - @param id (C++: event_id_t) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -47361,128 +47188,45 @@ class thread_name_t(builtins.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -displays this register without returning to the next line allowing the -next register to be displayed to its right (on the same line) -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -unavailable other values mean custom data type -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -47496,7 +47240,8 @@ class IDB_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -47504,733 +47249,745 @@ class IDB_Hooks(builtins.object) | delete_IDB_Hooks(self) | | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) -> 'void' - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) -> 'void' - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) -> 'void' - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) -> 'void' - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) -> 'void' - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) -> 'void' - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) -> 'void' - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) -> 'void' - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) -> 'void' - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) -> 'void' + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' + | savebase(self) | The database is being saved. | | segm_added(self, *args) -> 'void' + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -48255,7 +48012,8 @@ class IDP_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -48263,1277 +48021,1249 @@ class IDP_Hooks(builtins.object) | delete_IDP_Hooks(self) | | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> 'bool' - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) -> 'int' - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) -> 'PyObject *' + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) -> 'int' - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int | Reserved. | | ev_can_have_type(self, *args) -> 'int' - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) -> 'int' + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) -> 'int' - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) -> 'int' - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) -> 'int' + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) -> 'int' + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) -> 'bool' - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) -> 'int' - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_asm_or_lst(self, *args) -> 'int' - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) -> 'int' - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) -> 'int' + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) -> 'PyObject *' - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) -> 'int' - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) -> 'int' - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) -> 'int' - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_get_procmod(self, *args) -> 'int' - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) -> 'int' - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) -> 'int' - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) -> 'int' + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) -> 'int' - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) -> 'int' - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) -> 'int' - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) -> 'int' + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) -> 'int' + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) -> 'int' + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) -> 'int' - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) -> 'int' - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) -> 'int' + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) -> 'int' - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) -> 'int' + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) -> 'int' + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) -> 'int' + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) -> 'int' + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) -> 'int' - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) -> 'int' + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) -> 'int' - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) -> 'int' - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) -> 'bool' - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) -> 'int' - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) -> 'int' - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) -> 'bool' - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) -> 'int' + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) -> 'int' + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) -> 'int' - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) -> 'int' + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) -> 'int' - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) -> 'int' - | Called if the user specified an option string in the command line: - | -p<processor name>:<options>. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_setup_til(self, *args) -> 'int' - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) -> 'int' - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) -> 'int' - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) -> 'int' + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) -> 'int' + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_update_call_stack(self, *args) -> 'int' - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) -> 'int' - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) -> 'int' + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -49659,7 +49389,8 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __init__(self, proc) | __init__(self, _flags=0) -> IDB_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -49676,733 +49407,745 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | delete_IDB_Hooks(self) | | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) | A segment is being created. | - | adding_segm(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | allsegs_moved(self, *args) -> 'void' - | Program rebasing is complete. This event is generated after series of - | segm_moved events - | | allsegs_moved(self, info) - | @param info (C++: segm_move_infos_t *) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | Info: all analysis queues are empty. This callback is called once when - | the initial analysis is finished. If the queue is not empty upon the - | return from this callback, it will be called later again. + | auto_empty(self) | | auto_empty_finally(self, *args) -> 'void' - | Info: all analysis queues are empty definitively. This callback is - | called only once. + | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) | Boomarked position changed. | - | bookmark_changed(self, index, pos, desc, operation) - | @param index (C++: uint32) - | @param pos (C++: const lochist_entry_t *) - | @param desc (C++: const char *) - | @param operation: 0-added, 1-updated, 2-deleted if desc==NULL, then - | the bookmark was deleted. (C++: int) + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) | A byte has been patched. | - | byte_patched(self, ea, old_value) - | @param ea (C++: ea_t) - | @param old_value (C++: uint32) + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) | Callee address has been updated by the user. | - | callee_addr_changed(self, ea, callee) - | @param ea (C++: ea_t) - | @param callee (C++: ea_t) + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) | An item comment is to be changed. | - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) - | @param newcmt (C++: const char *) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) | An enum type 'bitfield' attribute is to be changed. | - | changing_enum_bf(self, id, new_bf) - | @param id (C++: enum_t) - | @param new_bf (C++: bool) + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) | An enum or member type comment is to be changed. | - | changing_enum_cmt(self, id, repeatable, newcmt) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) | An operand typestring (c/c++ prototype) is to be changed. | - | changing_op_ti(self, ea, n, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) | An operand type (offset, hex, etc...) is to be changed. | - | changing_op_type(self, ea, n, opinfo) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) - | @param opinfo: additional operand info (C++: const opinfo_t *) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) | Range comment is to be changed. | - | changing_range_cmt(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) | Segment class is being changed. | - | changing_segm_class(self, s) - | @param s (C++: segment_t *) + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) | Segment end address is to be changed. | - | changing_segm_end(self, s, new_end, segmod_flags) - | @param s (C++: segment_t *) - | @param new_end (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) | Segment name is being changed. | - | changing_segm_name(self, s, oldname) - | @param s (C++: segment_t *) - | @param oldname (C++: const char *) + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) | Segment start address is to be changed. | - | changing_segm_start(self, s, new_start, segmod_flags) - | @param s (C++: segment_t *) - | @param new_start (C++: ea_t) - | @param segmod_flags (C++: int) + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) | A structure type is being changed (the struct alignment). | - | changing_struc_align(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) | A structure type comment is to be changed. | - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | @param struc_id (C++: tid_t) - | @param repeatable (C++: bool) - | @param newcmt (C++: const char *) + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) | A structure member is to be changed. | - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param flag (C++: flags_t) - | @param ti (C++: const opinfo_t *) - | @param nbytes (C++: asize_t) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) | An item typestring (c/c++ prototype) is to be changed. | - | changing_ti(self, ea, new_type, new_fnames) - | @param ea (C++: ea_t) - | @param new_type (C++: const type_t *) - | @param new_fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' + | closebase(self) | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) | An item comment has been changed. | - | cmt_changed(self, ea, repeatable_cmt) - | @param ea (C++: ea_t) - | @param repeatable_cmt (C++: bool) + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | The kernel has changed the compiler information. (\inf{cc} structure; - | 'get_abi_name' ) - | | compiler_changed(self, adjust_inf_fields) - | @param adjust_inf_fields: may change inf fields? (C++: bool) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) | An enum type is to be deleted. | - | deleting_enum(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) | An enum member is to be deleted. | - | deleting_enum_member(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) | The kernel is about to delete a function. | - | deleting_func(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) | A function tail chunk is to be removed. | - | deleting_func_tail(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: const range_t *) + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) | A segment is to be deleted. | - | deleting_segm(self, start_ea) - | @param start_ea (C++: ea_t) + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) | A structure type is to be deleted. | - | deleting_struc(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) | A structure member is to be deleted. | - | deleting_struc_member(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) | About to delete tryblk information in given range | - | deleting_tryblks(self, range) - | @param range (C++: const range_t *) + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) | Instructions/data have been destroyed in [ea1,ea2). | - | destroyed_items(self, ea1, ea2, will_disable_range) - | @param ea1 (C++: ea_t) - | @param ea2 (C++: ea_t) - | @param will_disable_range (C++: bool) + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' + | determined_main(self, main) | The main() function has been determined. | - | determined_main(self, main) - | @param main: address of the main() function (C++: ea_t) + | @param main: (::ea_t) address of the main() function | | dirtree_link(self, *args) -> 'void' - | Dirtree: an item has been linked/unlinked. - | | dirtree_link(self, dt, path, link) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param link (C++: bool) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) | | dirtree_mkdir(self, *args) -> 'void' - | Dirtree: a directory has been created. - | | dirtree_mkdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_move(self, *args) -> 'void' - | Dirtree: a directory or item has been moved. - | | dirtree_move(self, dt, _from, to) - | @param dt (C++: dirtree_t *) - | @param _from (C++: const char *) - | @param to (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) | | dirtree_rank(self, *args) -> 'void' - | Dirtree: a directory or item rank has been changed. - | | dirtree_rank(self, dt, path, rank) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) - | @param rank (C++: size_t) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) | | dirtree_rmdir(self, *args) -> 'void' - | Dirtree: a directory has been deleted. - | | dirtree_rmdir(self, dt, path) - | @param dt (C++: dirtree_t *) - | @param path (C++: const char *) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) | | dirtree_rminode(self, *args) -> 'void' - | Dirtree: an inode became unavailable. - | | dirtree_rminode(self, dt, inode) - | @param dt (C++: dirtree_t *) - | @param inode (C++: inode_t) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) | | dirtree_segm_moved(self, *args) -> 'void' - | Dirtree: inodes were changed due to a segment movement or a program - | rebasing - | | dirtree_segm_moved(self, dt) - | @param dt (C++: dirtree_t *) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) | An enum type 'bitfield' attribute has been changed. | - | enum_bf_changed(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) | An enum or member type comment has been changed. | - | enum_cmt_changed(self, id, repeatable) - | @param id (C++: tid_t) - | @param repeatable (C++: bool) + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' + | enum_created(self, id) | An enum type has been created. | - | enum_created(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) | An enum type has been deleted. | - | enum_deleted(self, id) - | @param id (C++: enum_t) + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags_t) | | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) | An enum member has been created. | - | enum_member_created(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) | An enum member has been deleted. | - | enum_member_deleted(self, id, cid) - | @param id (C++: enum_t) - | @param cid (C++: const_t) + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) | An enum or member has been renamed. | - | enum_renamed(self, id) - | @param id (C++: tid_t) + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) | A structure type is to be expanded/shrunk. | - | expanding_struc(self, sptr, offset, delta) - | @param sptr (C++: struc_t *) - | @param offset (C++: ea_t) - | @param delta (C++: adiff_t) + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) | The list of extlangs or the default extlang was changed. | - | extlang_changed(self, kind, el, idx) - | @param kind: 0: extlang installed 1: extlang removed 2: default - | extlang changed (C++: int) - | @param el: pointer to the extlang affected (C++: extlang_t *) - | @param idx: extlang index (C++: int) + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) | An extra comment has been changed. | - | extra_cmt_changed(self, ea, line_idx, cmt) - | @param ea (C++: ea_t) - | @param line_idx (C++: int) - | @param cmt (C++: const char *) + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' - | Gui has retrieved a function flow chart. Plugins may modify the flow - | chart in this callback. - | | flow_chart_created(self, fc) - | @param fc (C++: qflow_chart_t *) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) | The kernel has deleted a function frame. | - | frame_deleted(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' + | func_added(self, pfn) | The kernel has added a function. | - | func_added(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) | A function has been deleted. | - | func_deleted(self, func_ea) - | @param func_ea (C++: ea_t) + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' - | 'FUNC_NORET' bit has been changed. - | | func_noret_changed(self, pfn) - | @param pfn (C++: func_t *) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) | A function tail chunk has been appended. | - | func_tail_appended(self, pfn, tail) - | @param pfn (C++: func_t *) - | @param tail (C++: func_t *) + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) | A function tail chunk has been removed. | - | func_tail_deleted(self, pfn, tail_ea) - | @param pfn (C++: func_t *) - | @param tail_ea (C++: ea_t) + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) | The kernel has updated a function. | - | func_updated(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' - | FLIRT signature has been loaded for normal processing (not for - | recognition of startup sequences). - | | idasgn_loaded(self, short_sig_name) - | @param short_sig_name (C++: const char *) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) | An item color has been changed. | - | item_color_changed(self, ea, color) - | @param ea (C++: ea_t) - | @param color: if color==DEFCOLOR, the the color is deleted. (C++: - | bgcolor_t) + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) | This event is issued when ida.cfg is parsed. | - | kernel_config_loaded(self, pass_number) - | @param pass_number (C++: int) + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' - | External file loader finished its work. Use this event to augment the - | existing loader functionality. - | | loader_finished(self, li, neflags, filetypename) - | @param li (C++: linput_t *) - | @param neflags: Load file flags (C++: uint16) - | @param filetypename (C++: const char *) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) | Local types have been changed. | | make_code(self, *args) -> 'void' + | make_code(self, insn) | An instruction is being created. | - | make_code(self, insn) - | @param insn (C++: const insn_t*) + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) | A data item is being created. | - | make_data(self, ea, flags, tid, len) - | @param ea (C++: ea_t) - | @param flags (C++: flags_t) - | @param tid (C++: tid_t) - | @param len (C++: asize_t) + | @param ea: (::ea_t) + | @param flags: (flags_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) | An operand typestring (c/c++ prototype) has been changed. | - | op_ti_changed(self, ea, n, type, fnames) - | @param ea (C++: ea_t) - | @param n (C++: int) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) | An operand type (offset, hex, etc...) has been set or deleted. | - | op_type_changed(self, ea, n) - | @param ea (C++: ea_t) - | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) | Range comment has been changed. | - | range_cmt_changed(self, kind, a, cmt, repeatable) - | @param kind (C++: range_kind_t) - | @param a (C++: const range_t *) - | @param cmt (C++: const char *) - | @param repeatable (C++: bool) + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | The kernel has renamed a byte. See also the \idpcode{rename} event - | | renamed(self, ea, new_name, local_name, old_name) - | @param ea (C++: ea_t) - | @param new_name: can be nullptr (C++: const char *) - | @param local_name (C++: bool) - | @param old_name: can be nullptr (C++: const char *) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) | An enum or enum member is to be renamed. | - | renaming_enum(self, id, is_enum, newname) - | @param id (C++: tid_t) - | @param is_enum (C++: bool) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) | A structure type is to be renamed. | - | renaming_struc(self, id, oldname, newname) - | @param id (C++: tid_t) - | @param oldname (C++: const char *) - | @param newname (C++: const char *) + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) | A structure member is to be renamed. | - | renaming_struc_member(self, sptr, mptr, newname) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) - | @param newname (C++: const char *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' + | savebase(self) | The database is being saved. | | segm_added(self, *args) -> 'void' + | segm_added(self, s) | A new segment has been created. | - | segm_added(self, s) - | @param s: See also adding_segm (C++: segment_t *) + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) | Segment attributes has been changed. | - | segm_attrs_updated(self, s) - | @param s: This event is generated for secondary segment attributes - | (examples: color, permissions, etc) (C++: segment_t *) + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) | Segment class has been changed. | - | segm_class_changed(self, s, sclass) - | @param s (C++: segment_t *) - | @param sclass (C++: const char *) + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) | A segment has been deleted. | - | segm_deleted(self, start_ea, end_ea) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) | Segment end address has been changed. | - | segm_end_changed(self, s, oldend) - | @param s (C++: segment_t *) - | @param oldend (C++: ea_t) + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) | Segment has been moved. | - | segm_moved(self, _from, to, size, changed_netmap) - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param size (C++: asize_t) - | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) | Segment name has been changed. | - | segm_name_changed(self, s, name) - | @param s (C++: segment_t *) - | @param name (C++: const char *) + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) | Segment start address has been changed. | - | segm_start_changed(self, s, oldstart) - | @param s (C++: segment_t *) - | @param oldstart (C++: ea_t) + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) | Function chunk end address will be changed. | - | set_func_end(self, pfn, new_end) - | @param pfn (C++: func_t *) - | @param new_end (C++: ea_t) + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) | Function chunk start address will be changed. | - | set_func_start(self, pfn, new_start) - | @param pfn (C++: func_t *) - | @param new_start (C++: ea_t) + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) | The kernel has changed a segment register value. | - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) - | @param value (C++: sel_t) - | @param old_value (C++: sel_t) - | @param tag: Segment register range tags (C++: uchar) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) | The kernel has deleted a segment register value. | - | sgr_deleted(self, start_ea, end_ea, regnum) - | @param start_ea (C++: ea_t) - | @param end_ea (C++: ea_t) - | @param regnum (C++: int) + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) | Stack change points have been modified. | - | stkpnts_changed(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) | A structure type has been changed (the struct alignment). | - | struc_align_changed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) | A structure type comment has been changed. | - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | @param struc_id (C++: tid_t) - | @param repeatable_cmt (C++: bool) + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) | A new structure type has been created. | - | struc_created(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) | A structure type has been deleted. | - | struc_deleted(self, struc_id) - | @param struc_id (C++: tid_t) + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) | A structure type has been expanded/shrank. | - | struc_expanded(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) | A structure member has been changed. | - | struc_member_changed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) | A structure member has been created. | - | struc_member_created(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) | A structure member has been deleted. | - | struc_member_deleted(self, sptr, member_id, offset) - | @param sptr (C++: struc_t *) - | @param member_id (C++: tid_t) - | @param offset (C++: ea_t) + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) | A structure member has been renamed. | - | struc_member_renamed(self, sptr, mptr) - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr) | A structure type has been renamed. | - | struc_renamed(self, sptr) - | @param sptr (C++: struc_t *) + | @param sptr: (struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) | A tail chunk owner has been changed. | - | tail_owner_changed(self, tail, owner_func, old_owner) - | @param tail (C++: func_t *) - | @param owner_func (C++: ea_t) - | @param old_owner (C++: ea_t) + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) | A thunk bit has been set for a function. | - | thunk_func_created(self, pfn) - | @param pfn (C++: func_t *) + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) | An item typestring (c/c++ prototype) has been changed. | - | ti_changed(self, ea, type, fnames) - | @param ea (C++: ea_t) - | @param type (C++: const type_t *) - | @param fnames (C++: const p_list *) + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) | Updated tryblk information | - | tryblks_updated(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) | About to update tryblk information | - | updating_tryblks(self, tbv) - | @param tbv (C++: const tryblks_t *) + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' - | The database has been upgraded and the receiver can upgrade its info - | as well - | | upgraded(self, _from) - | @param _from: - old IDB version (C++: int) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -50441,166 +50184,170 @@ class asm_t(builtins.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag Help on function assemble in module ida_idp: assemble(*args) -> 'bool' assemble(ea, cs, ip, use32, line) -> bool Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -50613,48 +50360,51 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) -> 'char const *' cfg_get_cc_header_path(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) -> 'char const *' cfg_get_cc_parm(compid, name) -> char const * - compid: comp_t - name: char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) -> 'char const *' cfg_get_cc_predefined_macros(compid) -> char const * - compid: comp_t + + @param compid: comp_t Help on function clr_module_data in module ida_idp: clr_module_data(*args) -> 'void *' + clr_module_data(data_id) -> void * Unregister pointer to database specific module data. - clr_module_data(data_id) -> void * - @param data_id: an data_id that was assigned by set_module_data() - (C++: int) - @return: previously registered pointer for the current database. it - can be deallocated now. Multiple calls to this function with - the same id are forbidden. + @param data_id: (C++: int) an data_id that was assigned by set_module_data() + @return: previously registered pointer for the current database. it can be + deallocated now. Multiple calls to this function with the same id are + forbidden. Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) -> 'bool' delay_slot_insn(ea, bexec, fexec) -> bool - ea: ea_t * - bexec: bool * - fexec: bool * + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) -> 'void' + gen_idb_event(code) the kernel will use this function to generate idb_events - gen_idb_event(code) - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t Help on function get_ash in module ida_idp: @@ -50665,43 +50415,47 @@ Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) -> 'PyObject *' get_idb_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) -> 'PyObject *' get_idb_notifier_ud_addr(hooks) -> PyObject * - hooks: IDB_Hooks * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) -> 'size_t' - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * - arg1: PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) -> 'PyObject *' get_idp_notifier_ud_addr(hooks) -> PyObject * - hooks: IDP_Hooks * + + @param hooks: IDP_Hooks * Help on function get_module_data in module ida_idp: get_module_data(*args) -> 'void *' + get_module_data(data_id) -> void * Get pointer to the database specific module data. - get_module_data(data_id) -> void * - @param data_id: data id that was initialized by set_module_data() - (C++: int) - @return: previously registered pointer for the current database + @param data_id: (C++: int) data id that was initialized by set_module_data() + @return: previously registered pointer for the current database Help on function get_ph in module ida_idp: @@ -50712,105 +50466,174 @@ Help on function get_reg_info in module ida_idp: get_reg_info(*args) -> 'char const *' get_reg_info(regname, bitrange) -> char const * - regname: char const * - bitrange: bitrange_t * + + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) -> 'qstring *' - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - get_reg_name(reg, width, reghi=-1) -> str - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) -> 'bool' - Does an instruction with the specified feature modify the i-th - operand? - has_cf_chg(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) -> 'bool' - Does an instruction with the specified feature use a value of the i-th - operand? - has_cf_use(feature, opnum) -> bool - @param feature (C++: uint32) - @param opnum (C++: uint) + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) -> 'bool' + has_insn_feature(icode, bit) -> bool Does the specified instruction have the specified feature? - has_insn_feature(icode, bit) -> bool - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: int) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) -> 'int' - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - is_align_insn(ea) -> int - @param ea (C++: ea_t) + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) -> 'bool' + is_basic_block_end(insn, call_insn_stops_block) -> bool Is the instruction the end of a basic block? - is_basic_block_end(insn, call_insn_stops_block) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) -> 'bool' + is_call_insn(insn) -> bool Is the instruction a "call"? - is_call_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) -> 'bool' + is_indirect_jump_insn(insn) -> bool Is the instruction an indirect jump? - is_indirect_jump_insn(insn) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) -> 'bool' + is_ret_insn(insn, strict=True) -> bool Is the instruction a "return"? - is_ret_insn(insn, strict=True) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) -> 'bool' + parse_reg_name(ri, regname) -> bool Get register info by name. - parse_reg_name(ri, regname) -> bool - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success Help on __ph in module ida_idp object: @@ -50861,21 +50684,24 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) -> 'bytevec_t *, size_t *' ph_calcrel(ea) - ea: ea_t + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_op_value(insn, op) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - op: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_reg_value(insn, reg) -> ssize_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - reg: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: @@ -50910,7 +50736,7 @@ ph_get_id(*args) -> 'size_t' Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) -> 'PyObject *' - ph_get_instruc() -> PyObject * + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -50929,7 +50755,7 @@ ph_get_instruc_start(*args) -> 'size_t' Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) -> 'PyObject *' - ph_get_operand_info(ea, n) -> PyObject * + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -50942,9 +50768,10 @@ Help on function ph_get_reg_accesses in module ida_idp: ph_get_reg_accesses(*args) -> 'ssize_t' ph_get_reg_accesses(accvec, insn, flags) -> ssize_t - accvec: reg_accesses_t * - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - flags: int + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int Help on function ph_get_reg_code_sreg in module ida_idp: @@ -50973,7 +50800,7 @@ ph_get_reg_last_sreg(*args) -> 'size_t' Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) -> 'PyObject *' - ph_get_regnames() -> PyObject * + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: @@ -50998,8 +50825,9 @@ Help on function process_config_directive in module ida_idp: process_config_directive(*args) -> 'void' process_config_directive(directive, priority=2) - directive: char const * - priority: int + + @param directive: char const * + @param priority: int Help on class processor_t in module ida_idp: @@ -51015,7 +50843,8 @@ class processor_t(IDP_Hooks) | | __init__(self) | __init__(self, _flags=0) -> IDP_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_idb_notifier_addr(self) | @@ -51046,575 +50875,553 @@ class processor_t(IDP_Hooks) | determined_main(self, *args) | | ev_ana_insn(self, *args) - | Analyze one instruction and fill 'out' structure. This function - | shouldn't change the database, flags or anything else. All these - | actions should be performed only by emu_insn() function. \insn_t{ea} - | contains address of instruction to analyze. - | | ev_ana_insn(self, out) -> bool - | @param out (C++: insn_t *) - | @retval: 0 - if instruction can't be decoded. + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * | Assemble an instruction. (display a warning if an error is found). | - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | @param ea: linear address of instruction (C++: ea_t) - | @param cs: cs of instruction (C++: ea_t) - | @param ip: ip of instruction (C++: ea_t) - | @param use32: is 32bit segment? (C++: bool) - | @param line: line to assemble (C++: const char *) + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int | One analysis queue is empty. | - | ev_auto_queue_empty(self, type) -> int - | @param type (C++: atype_t) - | @retval: void - see also idb_event::auto_empty_finally + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) - | Calculate the address of the instruction which will be executed after - | "step over". The kernel will put a breakpoint there. If the step over - | is equal to step into or we cannot calculate the address, return - | 'BADADDR' . - | | ev_calc_step_over(self, target, ip) -> int - | @param target: pointer to the answer (C++: ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_can_have_type(self, *args) - | Can the operand have a type as offset, segment, decimal, etc? (for - | example, a register AX can't have a type, meaning that the user can't - | change its representation. see 'bytes.hpp' for information about types - | and flags) - | | ev_can_have_type(self, op) -> int - | @param op (C++: const op_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int | Compare instruction operands | - | ev_cmp_operands(self, op1, op2) -> int - | @param op1 (C++: const op_t*) - | @param op2 (C++: const op_t*) - | @retval: 1 - equal - | @retval: -1 - not equal - | @retval: 0 - not implemented + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) - | Try to define some unexplored bytes. This notification will be called - | if the kernel tried all possibilities and could not find anything more - | useful than to convert to array of bytes. The module can help the - | kernel and convert the bytes into something more useful. - | | ev_coagulate(self, start_ea) -> int - | @param start_ea (C++: ea_t) - | @return: number of converted bytes + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) - | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. - | for thumb mode refs, we clear the last bit) - | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param may_define (C++: bool) - | @param code_ea (C++: ea_t *) - | @retval: <0 - failed dref analysis, >0 done dref analysis - | @retval: 0 - not implemented or continue + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_func_frame(self, pfn) - | Create a function frame for a newly created function Set up frame - | size, its attributes etc - | | ev_create_func_frame(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int | Create xrefs for a custom jump table. | - | ev_create_switch_xrefs(self, jumpea, si) -> int - | @param jumpea: address of the jump insn (C++: ea_t) - | @param si: switch information (C++: const switch_info_t *) - | @return: must return 1 Must be implemented if module uses custom jump - | tables, + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, s) + | ev_creating_segm(self, seg) -> int | A new segment is about to be created. | - | ev_creating_segm(self, seg) -> int - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: <0 - segment should not be created + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_emu_insn(self, *args) - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this - | function, all information about the instruction is in 'insn' - | structure. - | | ev_emu_insn(self, insn) -> bool - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: -1 - the kernel will delete the instruction + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int | IDA has loaded a binary file. | - | ev_endbinary(self, ok) -> int - | @param ok: file loaded successfully? (C++: bool) + | @param ok: (bool) file loaded successfully? | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | 'find_func_bounds()' finished its work. The module may fine tune the - | function bounds - | | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int - | @param possible_return_code: , in/out (C++: int *) - | @param pfn (C++: func_t *) - | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) - | @retval: void - + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_map_file(self, nlines, fp) - | Generate map file. If not implemented the kernel itself will create - | the map file. - | | ev_gen_map_file(self, nlines, fp) -> int - | @param nlines: number of lines in map file (-1 means write error) - | (C++: int *) - | @param fp: output file (C++: FILE *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - write error + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, ctx, v) + | ev_gen_regvar_def(self, outctx, v) -> int | Generate register variable definition line. | - | ev_gen_regvar_def(self, outctx, v) -> int - | @param outctx (C++: outctx_t *) - | @param v (C++: regvar_t *) - | @retval: >0 - ok, generated the definition text - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) - | Callback: generate analog of: - | - | < #line "file.c" 123 - | < - | - | directive. - | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | @param outctx: output context (C++: outctx_t *) - | @param file: source file (may be NULL) (C++: const char *) - | @param lnnum: line number (C++: size_t) - | @retval: 1 - directive has been generated - | @retval: 0 - not implemented + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_get_autocmt(self, *args) - | Callback: get dynamic auto comment. Will be called if the autocomments - | are enabled and the comment retrieved from ida.int starts with '$!'. - | 'insn' contains valid info. - | | ev_get_autocmt(self, insn) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @retval: 1 - new comment has been generated - | @retval: 0 - callback has not been handled. the buffer must not be - | changed in this case + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_frame_retsize(self, frsize, pfn) - | Get size of function return address in bytes If this event is not - | implemented, the kernel will assume8 bytes for 64-bit function4 bytes - | for 32-bit function2 bytes otherwise - | | ev_get_frame_retsize(self, frsize, pfn) -> int - | @param frsize: frame size (out) (C++: int *) - | @param pfn: , can't be NULL (C++: const func_t *) + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_operand_string(self, buf, insn, opnum) + | ev_get_operand_string(self, insn, opnum) -> PyObject * | Request text string for operand (cli, java, ...). | - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | @param insn: the instruction (C++: const insn_t*) - | @param opnum: operand number, -1 means any string operand (C++: int) - | @retval: 0 - no string (or empty string) - | @retval: >0 - original string length without terminating zero + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_is_align_insn(self, *args) - | Is the instruction created only for alignment purposes?. Do not - | directly call this function, use 'is_align_insn()' - | | ev_is_align_insn(self, ea) -> int - | @param ea: - instruction address (C++: ea_t) - | @retval: number - of bytes in the instruction + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int | Does the function at 'ea' behave as __alloca_probe? | - | ev_is_alloca_probe(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - yes - | @retval: 0 - no + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) - | Is the current instruction end of a basic block?. This function should - | be defined for processors with delayed jump slots. - | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param call_insn_stops_block (C++: bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int | Is the instruction a "call"? | - | ev_is_call_insn(self, insn) -> int - | @param insn: instruction (C++: const insn_t *) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_far_jump(self, *args) - | is indirect far jump or call instruction? meaningful only if the - | processor has 'near' and 'far' reference types - | | ev_is_far_jump(self, icode) -> int - | @param icode (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - yes - | @retval: -1 - no + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) - | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot - | describe all jump types jumps, please define this callback. - | | ev_is_indirect_jump(self, insn) -> int - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - use CF_JUMP - | @retval: 1 - no - | @retval: 2 - yes + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int | Reserved. | | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int | Is the instruction a "return"? | - | ev_is_ret_insn(self, insn, strict) -> int - | @param insn: instruction (C++: const insn_t *) - | @param strict: 1: report only ret instructions 0: include instructions - | like "leave" which begins the function epilog (C++: - | bool) - | @retval: 0 - unknown - | @retval: <0 - no - | @retval: 1 - yes + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int | Is the instruction sane for the current file type?. | - | ev_is_sane_insn(self, insn, no_crefs) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param no_crefs: 1: the instruction has no code refs to it. ida just - | tries to convert unexplored bytes to an instruction - | (but there is no other reason to convert them into an - | instruction) 0: the instruction is created because of - | some coderef, user request or another weighty reason. - | (C++: int) - | @retval: >=0 - ok - | @retval: <0 - no, the instruction isn't likely to appear in the - | program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, mode, insn, op) - | Check whether the operand is relative to stack pointer or frame - | pointer This event is used to determine how to output a stack variable - | If not implemented, then all operands are sp based by default. - | Implement this event only if some stack references use frame pointer - | instead of stack pointer. - | | ev_is_sp_based(self, mode, insn, op) -> int - | @param mode: out, combination of SP/FP operand flags (C++: int *) - | @param insn (C++: const insn_t *) - | @param op (C++: const op_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) - | Find 'switch' idiom. It will be called for instructions marked with - | 'CF_JUMP' . - | | ev_is_switch(self, si, insn) -> int - | @param si: , out (C++: switch_info_t *) - | @param insn: instruction possibly belonging to a switch (C++: const - | insn_t *) - | @retval: 1 - switch is found, 'si' is filled - | @retval: -1 - no switch found - | @retval: 0 - not implemented + | Find 'switch' idiom. It will be called for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled + | @retval -1: no switch found + | @retval 0: not implemented | | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int | Can a function start here? | - | ev_may_be_func(self, insn, state) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param state: autoanalysis phase 0: creating functions 1: creating - | chunks (C++: int) - | @return: probability 1..100 + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) - | The kernel wants to display the segment registers in the messages - | window. - | | ev_may_show_sreg(self, current_ea) -> int - | @param current_ea (C++: ea_t) - | @retval: <0 - if the kernel should not show the segment registers. - | (assuming that the module has done it) - | @retval: 0 - not implemented + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, s, to_ea, flags) + | ev_moving_segm(self, seg, to, flags) -> int | May the kernel move the segment? | - | ev_moving_segm(self, seg, to, flags) -> int - | @param seg: segment to move (C++: segment_t *) - | @param to: new segment start address (C++: ea_t) - | @param flags: combination of Move segment flags (C++: int) - | @retval: 0 - yes - | @retval: <0 - the kernel should stop + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int | IDA is about to load a binary file. | - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | @param filename: binary file name (C++: char *) - | @param fileoff: offset in the file (C++: qoff64_t) - | @param basepara: base loading paragraph (C++: ea_t) - | @param binoff: loader offset (C++: ea_t) - | @param nbytes: number of bytes to load (C++: uint64) + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (uint64) number of bytes to load | | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int | A new file has been loaded. | - | ev_newfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int | Before changing processor type. | - | ev_newprc(self, pnum, keep_cfg) -> int - | @param pnum: processor number in the array of processor names (C++: - | int) - | @param keep_cfg: true: do not modify kernel configuration (C++: bool) - | @retval: 1 - ok - | @retval: <0 - prohibit + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int | An old file has been loaded. | - | ev_oldfile(self, fname) -> int - | @param fname: input file name (C++: char *) + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) - | Function to produce assume directives when segment register value - | changes. - | | ev_out_assumes(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) - | Generate text representation of data items This function may change - | the database and create cross-references if analyze_only is set - | | ev_out_data(self, outctx, analyze_only) -> int - | @param outctx (C++: outctx_t *) - | @param analyze_only (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int | Function to produce end of disassembled text | - | ev_out_footer(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int | Function to produce start of disassembled text | - | ev_out_header(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: void - + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) - | Generate text representation of an instruction in 'ctx.insn' - | 'outctx_t' provides functions to output the generated text. This - | function shouldn't change the database, flags or anything else. All - | these actions should be performed only by emu_insn() function. - | | ev_out_insn(self, outctx) -> bool - | @param outctx (C++: outctx_t *) - | @retval: void - + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) - | The kernel is going to generate an instruction label line or a - | function header. - | | ev_out_label(self, outctx, colored_name) -> int - | @param outctx (C++: outctx_t *) - | @param colored_name (C++: const char *) - | @retval: <0 - if the kernel should not generate the label - | @retval: 0 - not implemented or continue + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) - | Generate instruction mnemonics. This callback should append the - | colored mnemonics to ctx.outbuf Optional notification, if absent, - | out_mnem will be called. - | | ev_out_mnem(self, outctx) -> int - | @param outctx (C++: outctx_t *) - | @retval: 1 - if appended the mnemonics - | @retval: 0 - not implemented + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) - | Generate text representation of an instruction operand 'outctx_t' - | provides functions to output the generated text. All these actions - | should be performed only by emu_insn() function. - | | ev_out_operand(self, outctx, op) -> bool - | @param outctx (C++: outctx_t *) - | @param op (C++: const op_t *) - | @retval: 1 - ok - | @retval: -1 - operand is hidden + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, ctx, s) + | ev_out_segend(self, outctx, seg) -> int | Function to produce end of segment | - | ev_out_segend(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, ctx, s) + | ev_out_segstart(self, outctx, seg) -> int | Function to produce start of segment | - | ev_out_segstart(self, outctx, seg) -> int - | @param outctx (C++: outctx_t *) - | @param seg (C++: segment_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) - | Generate text representation of an item in a special segment i.e. - | absolute symbols, externs, communal definitions etc - | | ev_out_special_item(self, outctx, segtype) -> int - | @param outctx (C++: outctx_t *) - | @param segtype (C++: uchar) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - overflow + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow | | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int | The kernel is going to rename a byte. | - | ev_rename(self, ea, new_name) -> int - | @param ea (C++: ea_t) - | @param new_name (C++: const char *) - | @retval: <0 - if the kernel should not rename it. - | @retval: 2 - to inhibit the notification. I.e., the kernel should not - | rename, but ' set_name() ' should return 'true'. also see - | \idpcode{renamed} the return value is ignored when kernel - | is going to delete name + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) - | Set IDP-specific configuration option Also see set_options_t in - | 'config.hpp' - | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | @param keyword (C++: const char *) - | @param value_type (C++: int) - | @param value (C++: const void *) - | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been - | generated (C++: bool) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - error (and message in errbuf) + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) - | Called if the user specified an option string in the command line: - | -p<processor name>:<options>. Can be used for setting a processor - | subtype. Also called if option string is passed to - | 'set_processor_type()' and IDC's SetProcessorType(). - | | ev_set_proc_options(self, options, confidence) -> int - | @param options (C++: const char *) - | @param confidence: 0: loader's suggestion 1: user's decision (C++: - | int) - | @retval: <0 - if bad option string + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_str2reg(self, *args) - | Convert a register name to a register number. The register number is - | the register index in the \ph{reg_names} array Most processor modules - | do not need to implement this callback It is useful only if - | \ph{reg_names}[reg] does not provide the correct register names - | | ev_str2reg(self, regname) -> int - | @param regname (C++: const char *) - | @retval: register - number + 1 - | @retval: 0 - not implemented or could not be decoded + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int | An item hinders creation of another item. | - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | @param hindering_item_ea (C++: ea_t) - | @param new_item_flags: (0 for code) (C++: flags_t) - | @param new_item_ea (C++: ea_t) - | @param new_item_length (C++: asize_t) - | @retval: 0 - no reaction - | @retval: !=0 - the kernel may delete the hindering item + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int | An item in the database (insn or data) is being deleted. | - | ev_undefine(self, ea) -> int - | @param ea (C++: ea_t) - | @retval: 1 - do not delete srranges at the item end - | @retval: 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_validate_flirt_func(self, *args) - | Flirt has recognized a library function. This callback can be used by - | a plugin or proc module to intercept it and validate such a function. - | | ev_validate_flirt_func(self, start_ea, funcname) -> int - | @param start_ea (C++: ea_t) - | @param funcname (C++: const char *) - | @retval: -1 - do not create a function, - | @retval: 0 - function is validated + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, pfn) + | ev_verify_noreturn(self, pfn) -> int | The kernel wants to set 'noreturn' flags for a function. | - | ev_verify_noreturn(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok. any other value: do not set 'noreturn' flag + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) - | All function instructions have been analyzed. Now the processor module - | can analyze the stack pointer for the whole function - | | ev_verify_sp(self, pfn) -> int - | @param pfn (C++: func_t *) - | @retval: 0 - ok - | @retval: <0 - bad stack pointer + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | func_added(self, pfn) | @@ -51665,706 +51472,700 @@ class processor_t(IDP_Hooks) | delete_IDP_Hooks(self) | | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int | A code reference is being created. | - | ev_add_cref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: cref_t) - | @retval: <0 - cancel cref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int | A data reference is being created. | - | ev_add_dref(self, _from, to, type) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param type (C++: dref_t) - | @retval: <0 - cancel dref creation - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int | Adjust argloc according to its type/size and platform endianess | - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | @param argloc: , inout (C++: argloc_t *) - | optional_type: tinfo_t const * - | @param size: 'size' makes no sense if type != NULL (type->get_size() - | should be used instead) (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' - | Called when a signature module has been matched against bytes in the - | database. This is used to compute the offset at which a particular - | module's libfunc should be applied.'ea' initially contains the ea_t of - | the start of the pattern match - | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | @param sig (C++: const idasgn_t *) - | @param libfun (C++: const libfunc_t *) - | @param ea (C++: ea_t *) - | @retval: 1 - the ea_t pointed to by the third argument was modified. - | @retval: <=0 - not modified. use default algorithm. + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' - | Called from apply_fixup before converting operand to reference. Can be - | used for changing the reference info. (e.g. the PPC module adds - | REFINFO_NOBASE for some references) - | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | @param ri (C++: refinfo_t *) - | @param ea: instruction address (C++: ea_t) - | @param n: operand number (C++: int) - | @param fd (C++: const fixup_data_t *) - | @retval: <0 - do not create an offset - | @retval: 0 - not implemented or refinfo adjusted + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' - | Analyzes function prolog, epilog, and updates purge, and function - | attributes - | | ev_analyze_prolog(self, ea) -> int - | @param ea: start of function (C++: ea_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented | | ev_arch_changed(self, *args) -> 'int' - | The loader is done parsing arch-related information, which the - | processor module might want to use to finish its initialization. + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int | Argument address info is ready. | - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | @param caller (C++: ea_t) - | @param n: number of formal arguments (C++: int) - | @param tif: call prototype (C++: tinfo_t *) - | @param addrs: argument intilization addresses (C++: ea_t *) - | @retval: <0 - do not save into idb; other values mean "ok to save" + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" | | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int | After setting a new assembler | - | ev_asm_installed(self, asmnum) -> int - | @param asmnum: See also ev_newasm (C++: int) + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) -> 'int' - | Calculate function argument locations. This callback should fill - | retloc, all arglocs, and stkargs. This callback is never called for - | 'CM_CC_SPECIAL' functions. - | | ev_calc_arglocs(self, fti) -> int - | @param fti: points to the func type info (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int | Calculate number of purged bytes after call. | - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @return: number of purged bytes (usually add sp, N) + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' - | Calculate list of addresses the instruction in 'insn' may pass control - | to. This callback is required for source level debugging. - | | ev_calc_next_eas(self, res, insn, over) -> int - | @param res: , out: array for the results. (C++: eavec_t *) - | @param insn: the instruction (C++: const insn_t*) - | @param over: calculate for step over (ignore call targets) (C++: - | bool) - | @retval: <0 - incalculable (indirect jumps, for example) - | @retval: >=0 - number of addresses of called functions in the array. - | They must be put at the beginning of the array (0 if - | over=true) + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int | Calculate number of purged bytes by the given function type. | - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | @param p_purged_bytes: ptr to output (C++: int *) - | @param fti: func type details (C++: const func_type_data_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int | Calculate return value location. | - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | @param retloc (C++: argloc_t *) - | @param rettype (C++: const tinfo_t *) - | @param cc (C++: cm_t) - | @retval: 0 - not implemented - | @retval: 1 - ok, - | @retval: -1 - error + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' - | Calculate amount of change to sp for the given insn. This event is - | required to decompile code snippets. - | | ev_calc_spdelta(self, spdelta, insn) -> int - | @param spdelta (C++: sval_t *) - | @param insn (C++: const insn_t *) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int | Calculate case values and targets for a custom jump table. | - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | @param casevec: vector of case values (may be NULL) (C++: casevec_t - | *) - | @param targets: corresponding target addresses (my be NULL) (C++: - | eavec_t *) - | @param insn_ea: address of the 'indirect jump' instruction (C++: - | ea_t) - | @param si: switch information (C++: switch_info_t *) - | @retval: 1 - ok - | @retval: <=0 - failed + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int | Calculate locations of the arguments that correspond to '...'. | - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | @param ftd: , inout: info about all arguments (including varargs) - | (C++: func_type_data_t *) - | @param aux_regs: buffer for hidden register arguments, may be NULL - | (C++: regobjs_t *) - | @param aux_stkargs: buffer for hidden stack arguments, may be NULL - | (C++: relobj_t *) - | @param nfixed: number of fixed arguments (C++: int) - | @retval: 0 - not implemented - | @retval: 1 - ok - | @retval: -1 - error On some platforms variadic calls require passing - | additional information: for example, number of floating - | variadic arguments must be passed in rax on gcc-x64. The - | locations and values that constitute this additional - | information are returned in the buffers pointed by - | aux_regs and aux_stkargs + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int | Reserved. | | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int | Clear the TF bit after an insn like pushf stored it in memory. | - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | @param ea: instruction address (C++: ea_t) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: 0 - failed + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int | Create special segment representing the flat group. | - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | @param image_base (C++: ea_t) - | @param bitness (C++: int) - | @param dataseg_sel: return value is ignored (C++: sel_t) + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int | Create merge handlers, if needed | - | ev_create_merge_handlers(self, md) -> int - | @param md: This event is generated immediately after opening idbs. - | (C++: merge_data_t *) - | @return: must be 0 + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * | Decorate/undecorate a C symbol name. | - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | @param name: name of symbol (C++: const char *) - | @param mangle: true-mangle, false-unmangle (C++: bool) - | @param cc: calling convention (C++: cm_t) - | optional_type: tinfo_t const * - | @retval: 1 - if success - | @retval: 0 - not implemented or failed + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int | A code reference is being deleted. | - | ev_del_cref(self, _from, to, expand) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @param expand (C++: bool) - | @retval: <0 - cancel cref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int | A data reference is being deleted. | - | ev_del_dref(self, _from, to) -> int - | @param _from (C++: ea_t) - | @param to (C++: ea_t) - | @retval: <0 - cancel dref deletion - | @retval: 0 - not implemented or continue + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' - | Get delay slot instructionInput EA may point to the instruction with a - | delay slot or to the delay slot instruction itself. - | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | @param ea: in: instruction address in question, out: (if the answer is - | positive) if the delay slot contains valid insn: the - | address of the delay slot insn else: BADADDR (invalid insn, - | e.g. a branch) (C++: ea_t *) - | @param bexec: execute slot if jumping, initially set to 'true' (C++: - | bool *) - | @param fexec: execute slot if not jumping, initally set to 'true' - | (C++: bool *) - | @retval: 1 - positive answer - | @retval: <=0 - ordinary insn + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' - | Demangle a C++ (or another language) name into a user-readable string. - | This event is called by 'demangle_name()' if you call - | 'demangle_name()' from the handler, protect against recursion! - | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | @param name: mangled name (C++: const char *) - | @param disable_mask: flags to inhibit parts of output or compiler - | info/other (see MNG_) (C++: uint32) - | @param demreq: operation to perform (C++: demreq_type_t) - | @retval: 1 - if success - | @retval: 0 - not implemented + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int | Ended undoing/redoing an action | - | ev_ending_undo(self, action_name, is_undo) -> int - | @param action_name: action that we finished undoing/redoing. is not - | NULL. (C++: const char *) - | @param is_undo: true if performing undo, false if performing redo - | (C++: bool) + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' - | Are 2 register arglocs the same?. We need this callback for the pc - | module. - | | ev_equal_reglocs(self, a1, a2) -> int - | @param a1 (C++: argloc_t *) - | @param a2 (C++: argloc_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int | Extract address from a string. | - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | @param out_ea: , out (C++: ea_t *) - | @param screen_ea (C++: ea_t) - | @param string (C++: const char *) - | @param position (C++: size_t) - | @retval: 1 - ok - | @retval: 0 - kernel should use the standard algorithm - | @retval: -1 - error + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' - | Find operand value via a register tracker. The returned value in 'out' - | is valid before executing the instruction. - | | ev_find_op_value(self, pinsn, opn) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param opn: operand index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' - | Find register value via a register tracker. The returned value in - | 'out' is valid before executing the instruction. - | | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | @param pinsn: instruction (C++: const insn_t *) - | @param reg: register index (C++: int) - | @retval: 1 - if implemented, and value was found - | @retval: 0 - not implemented, -1 decoding failed, or no value found + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_gen_asm_or_lst(self, *args) -> 'int' - | Callback: generating asm or lst file. The kernel calls this callback - | twice, at the beginning and at the end of listing generation. The - | processor module can intercept this event and adjust its output - | | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int - | @param starting: beginning listing generation (C++: bool) - | @param fp: output file (C++: FILE *) - | @param is_asm: true:assembler, false:listing (C++: bool) - | @param flags: flags passed to gen_file() (C++: int) - | @param outline: ptr to ptr to outline callback. if this callback is - | defined for this code, it will be used by the kernel - | to output the generated lines (C++: html_line_cb_t - | **) - | @retval: void - + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) -> 'int' - | Generate stack variable definition line Default line is varname = type - | ptr value, where 'type' is one of byte,word,dword,qword,tbyte - | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | @param outctx (C++: outctx_t *) - | @param mptr (C++: const member_t *) - | @param v (C++: sval_t) - | @retval: 1 - ok - | @retval: 0 - not implemented + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' - | Get all possible ABI names and optional extensions for given compiler - | abiname/option is a string entirely consisting of letters, digits and - | underscore - | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | @param abi_names: - all possible ABis each in form - | abiname-opt1-opt2-... (C++: qstrvec_t *) - | @param abi_opts: - array of all possible options in form - | "opt:description" or opt:hint-line#description (C++: - | qstrvec_t *) - | @param comp: - compiler ID (C++: comp_t) - | @retval: 0 - not implemented - | @retval: 1 - ok + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) -> 'int' - | Get item background color. Plugins can hook this callback to color - | disassembly lines dynamically + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically | - | ev_get_bg_color(self, ea) -> int or None - | @param color: , out (C++: bgcolor_t *) - | @param ea (C++: ea_t) - | @retval: 0 - not implemented - | @retval: 1 - color set + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int | Get register allocation convention for given calling convention | - | ev_get_cc_regs(self, regs, cc) -> int - | @param regs: , out (C++: callregs_t *) - | @param cc (C++: cm_t) - | @retval: 1 - - | @retval: 0 - not implemented + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int | Get ISA 16-bit mode | - | ev_get_code16_mode(self, ea) -> int - | @param ea: address to get the ISA mode (C++: ea_t) - | @retval: 1 - 16-bit mode - | @retval: 0 - not implemented or 32-bit mode + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' - | Get the number of the operand to be displayed in the debugger - | reference view (text mode). - | | ev_get_dbr_opnum(self, opnum, insn) -> int - | @param opnum: operand number (out, -1 means no such operand) (C++: - | int *) - | @param insn: the instruction (C++: const insn_t*) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | Get default enum size. Not generated anymore. inf_get_cc_size_e() is - | used instead + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) -> 'int' - | Calculate the start of a macro instruction. This notification is - | called if IP points to the middle of an instruction - | | ev_get_macro_insn_head(self, head, ip) -> int - | @param head: , out: answer, BADADDR means normal instruction (C++: - | ea_t *) - | @param ip: instruction address (C++: ea_t) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_procmod(self, *args) -> 'int' - | Get pointer to the processor module object. All processor modules must - | implement this. The pointer is returned as size_t. + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. | | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int | Get info about the registers that are used/changed by an instruction. | - | ev_get_reg_accesses(self, accvec, insn, flags) -> int - | @param accvec: out: info about accessed registers (C++: - | reg_accesses_t*) - | @param insn: instruction in question (C++: const insn_t *) - | @param flags: reserved, must be 0 (C++: int) - | @retval: -1 - if accvec is nullptr - | @retval: 1 - found the requested access (and filled accvec) - | @retval: 0 - not implemented + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' - | Get register information by its name. example: "ah" - | returns:main_regname="eax" 'bitrange_t' = { offset==8, nbits==8 }This - | callback may be unimplemented if the register names are all present in - | \ph{reg_names} and they all have the same size - | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | @param main_regname: , out (C++: const char **) - | @param bitrange: , out: position and size of the value within - | 'main_regname' (empty bitrange == whole register) - | (C++: bitrange_t *) - | @param regname (C++: const char *) - | @retval: 1 - ok - | @retval: -1 - failed (not found) - | @retval: 0 - unimplemented + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' - | Generate text representation of a register. Most processor modules do - | not need to implement this callback. It is useful only if - | \ph{reg_names}[reg] does not provide the correct register name. - | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | @param reg: internal register number as defined in the processor - | module (C++: int) - | @param width: register width in bytes (C++: size_t) - | @param reghi: if not -1 then this function will return the register - | pair (C++: int) - | @retval: -1 - if error - | @retval: strlen(buf) - if success + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' - | Get SIMD-related types according to given attributes ant/or argument - | location - | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | @param out (C++: simd_info_vec_t *) - | @param simd_attrs: , may be NULL (C++: const simd_info_t *) - | @param argloc: , may be NULL (C++: const argloc_t *) - | @param create_tifs: return valid tinfo_t objects, create if neccessary - | (C++: bool) - | @retval: number - of found types - | @retval: -1 - error If name==NULL, initialize all SIMD types + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | Get offset from SP to the first stack argument. For example: pc: 0, - | hppa: -0x34, ppc: 0x38 + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' - | Should stack variable references be multiplied by a coefficient before - | being used in the stack frame?. Currently used by TMS320C55 because - | the references into the stack should be multiplied by 2 - | 'PR_SCALE_STKVARS' should be set to use this callback + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' - | IBM PC only internal request, should never be used for other purpose - | Get register value by internal index - | | ev_getreg(self, regval, regnum) -> int - | @param regval: , out (C++: uval_t *) - | @param regnum (C++: int) - | @retval: 1 - ok - | @retval: 0 - not implemented - | @retval: -1 - failed (undefined value or bad regnum) + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int | The IDP module is just loaded. | - | ev_init(self, idp_modname) -> int - | @param idp_modname: processor module name (C++: const char *) - | @retval: <0 - on failure + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int | Check if insn will read the TF bit. | - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | @param insn: the instruction (C++: const insn_t*) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 2 - yes, will generate 'step' exception - | @retval: 1 - yes, will store the TF bit in memory - | @retval: 0 - no + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int | Is conditional instruction? | - | ev_is_cond_insn(self, insn) -> int - | @param insn: instruction address (C++: const insn_t *) - | @retval: 1 - yes - | @retval: -1 - no - | @retval: 0 - not implemented or not instruction + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction | | ev_is_control_flow_guard(self, *args) -> 'int' - | Detect if an instruction is a "thunk call" to a flow guard function - | (equivalent to call reg/return/nop) - | | ev_is_control_flow_guard(self, p_reg, insn) -> int - | @param p_reg: indirect register number, may be -1 (C++: int *) - | @param insn: call/jump instruction (C++: const insn_t *) - | @retval: -1 - no thunk detected - | @retval: 1 - indirect call - | @retval: 2 - security check routine call (NOP) - | @retval: 3 - return thunk - | @retval: 0 - not implemented + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int | Is the function a trivial "jump" function?. | - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | @param pfn (C++: func_t *) - | @param jump_target (C++: ea_t *) - | @param func_pointer (C++: ea_t *) - | @retval: <0 - no - | @retval: 0 - don't know - | @retval: 1 - yes, see 'jump_target' and 'func_pointer' + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' - | This code and higher ones are reserved for the loaders. The arguments - | and the return values are defined by the loaders + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' - | Get function arguments which should be converted to pointers when - | lowering function prototype. The processor module can also modify - | 'fti' in order to make non-standard conversion of some arguments. - | | ev_lower_func_type(self, argnums, fti) -> int - | @param argnums: , out - numbers of arguments to be converted to - | pointers in acsending order (C++: intvec_t *) - | @param fti: , inout func type details (special values -1/-2 for return - | value - position of hidden 'retstr' argument: -1 - at the - | beginning, -2 - at the end) (C++: func_type_data_t *) - | @retval: 0 - not implemented - | @retval: 1 - argnums was filled - | @retval: 2 - argnums was filled and made substantial changes to fti + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int | Before setting a new assembler. | - | ev_newasm(self, asmnum) -> int - | @param asmnum: See also ev_asm_installed (C++: int) + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) -> 'int' - | Get next address to be executed This function must return the next - | address to be executed. If the instruction following the current one - | is executed, then it must return 'BADADDR' Usually the instructions to - | consider are: jumps, branches, calls, returns. This function is - | essential if the 'single step' is not supported in hardware. - | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | @param target: , out: pointer to the answer (C++: ea_t *) - | @param ea: instruction address (C++: ea_t) - | @param tid: current therad id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 0 - unimplemented - | @retval: 1 - implemented + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int | Floating point -> IEEE conversion | - | ev_realcvt(self, m, e, swt) -> int - | @param m: ptr to processor-specific floating point value (C++: void - | *) - | @param e: IDA representation of a floating point value (C++: - | fpvalue_t *) - | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) - | @retval: 0 - not implemented - | @retval: 1 - ok + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int | Replaying an undo/redo buffer | - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | @param action_name: action that we perform undo/redo for. may be NULL - | for intermediary buffers. (C++: const char *) - | @param vec (C++: const undo_records_t *) - | @param is_undo: true if performing undo, false if performing redo This - | event may be generated multiple times per undo/redo - | (C++: bool) + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' - | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, - | MIPS16 Set ISA 16-bit mode - | | ev_set_code16_mode(self, ea, code16) -> int - | @param ea: address to set new ISA mode (C++: ea_t) - | @param code16: true for 16-bit mode, false for 32-bit mode (C++: - | bool) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_setup_til(self, *args) -> 'int' - | Setup default type libraries. (called after loading a new file into - | the database). The processor module may load tils, setup memory model - | and perform other actions required to set up the type system. This is - | an optional callback. - | - | ev_shadow_args_size(self, *args) -> 'int' - | Get size of shadow args in bytes. - | - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | @param shadow_args_size (C++: int *) - | @param pfn: (may be NULL) (C++: func_t *) - | @retval: 1 - if filled *shadow_args_size - | @retval: 0 - not implemented + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) -> 'int' + | ev_term(self) -> int | The IDP module is being unloaded. | | ev_update_call_stack(self, *args) -> 'int' - | Calculate the call stack trace for the given thread. This callback is - | invoked when the process is suspended and should fill the 'trace' - | object with the information about the current call stack. Note that - | this callback is NOT invoked if the current debugger backend - | implements stack tracing via - | debugger_t::event_t::ev_update_call_stack. The debugger-specific - | algorithm takes priority. Implementing this callback in the processor - | module is useful when multiple debugging platforms follow similar - | patterns, and thus the same processor-specific algorithm can be used - | for different platforms. - | | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int - | @param stack: result (C++: call_stack_t *) - | @param tid: thread id (C++: int) - | @param getreg: function to get register values (C++: - | processor_t::regval_getter_t *) - | @param regvalues: register values array (C++: const regval_t *) - | @retval: 1 - ok - | @retval: -1 - failed - | @retval: 0 - unimplemented + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int | Use information about callee arguments. | - | ev_use_arg_types(self, ea, fti, rargs) -> int - | @param ea: address of the call instruction (C++: ea_t) - | @param fti: info about function type (C++: func_type_data_t *) - | @param rargs: array of register arguments (C++: funcargvec_t *) - | @retval: 1 - (and removes handled arguments from fti and rargs) - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * | Use information about register argument. | - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | @param ea: address of the instruction (C++: ea_t) - | @param rargs: vector of register arguments (including regs extracted - | from scattered arguments) (C++: const funcargvec_t *) - | @retval: 1 - - | @retval: 0 - not implemented + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int | Use information about a stack argument. | - | ev_use_stkarg_type(self, ea, arg) -> int - | @param ea: address of the push instruction which pushes the function - | argument into the stack (C++: ea_t) - | @param arg: argument info (C++: const funcarg_t *) - | @retval: 1 - ok - | @retval: <=0 - failed, the kernel will create a comment with the - | argument name or type for the instruction + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -52393,14 +52194,16 @@ class reg_access_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __init__(self, *args) | __init__(self) -> reg_access_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: reg_access_t const & + | + | @param r: reg_access_t const & | | __repr__ = _swig_repr(self) | @@ -52409,7 +52212,8 @@ class reg_access_t(builtins.object) | | have_common_bits(self, *args) -> 'bool' | have_common_bits(self, r) -> bool - | @param r (C++: const reg_access_t &) + | + | @param r: reg_access_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52421,16 +52225,16 @@ class reg_access_t(builtins.object) | list of weak references to the object (if defined) | | access_type - | reg_access_t_access_type_get(self) -> access_type_t + | access_type | | opnum - | reg_access_t_opnum_get(self) -> uchar + | opnum | | range - | reg_access_t_range_get(self) -> bitrange_t + | range | | regnum - | reg_access_t_regnum_get(self) -> int + | regnum | | thisown | The membership flag @@ -52449,15 +52253,19 @@ class reg_access_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) -> 'reg_access_t const &' | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reg_access_vec_t - | x: qvector< reg_access_t > const & + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52467,36 +52275,42 @@ class reg_access_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | __swig_destroy__ = delete_reg_access_vec_t(...) | delete_reg_access_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) -> 'reg_access_t const &' | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52509,78 +52323,85 @@ class reg_access_vec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) -> 'qvector< reg_access_t >::iterator' | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) -> 'reg_access_t *' | extract(self) -> reg_access_t | | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_access_t >::iterator' | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_access_t &' | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52633,11 +52454,13 @@ class reg_accesses_t(reg_access_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __getitem__(self, *args) -> 'reg_access_t const &' | __getitem__(self, i) -> reg_access_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52647,31 +52470,37 @@ class reg_accesses_t(reg_access_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_access_t > const & + | + | @param r: qvector< reg_access_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_access_t const & + | + | @param i: size_t + | @param v: reg_access_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_access_t const & + | + | Parameters + | ---------- + | x: reg_access_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | at(self, *args) -> 'reg_access_t const &' | at(self, _idx) -> reg_access_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' | begin(self) -> reg_access_t - | begin(self) -> reg_access_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52684,78 +52513,85 @@ class reg_accesses_t(reg_access_vec_t) | | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' | end(self) -> reg_access_t - | end(self) -> reg_access_t | | erase(self, *args) -> 'qvector< reg_access_t >::iterator' | erase(self, it) -> reg_access_t - | it: qvector< reg_access_t >::iterator | + | @param it: qvector< reg_access_t >::iterator | | erase(self, first, last) -> reg_access_t - | first: qvector< reg_access_t >::iterator - | last: qvector< reg_access_t >::iterator + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator | | extract(self, *args) -> 'reg_access_t *' | extract(self) -> reg_access_t | | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' | find(self, x) -> reg_access_t - | x: reg_access_t const & | - | - | find(self, x) -> reg_access_t - | x: reg_access_t const & + | @param x: reg_access_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_access_t()) - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_access_t const & + | + | @param x: reg_access_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_access_t * - | len: size_t + | + | @param s: reg_access_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_access_t >::iterator' | insert(self, it, x) -> reg_access_t - | it: qvector< reg_access_t >::iterator - | x: reg_access_t const & + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_access_t &' | push_back(self, x) - | x: reg_access_t const & + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_access_t const & | + | @param _newsize: size_t + | @param x: reg_access_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_access_t > & + | + | @param r: qvector< reg_access_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52783,30 +52619,36 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -52815,7 +52657,8 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: reg_info_t const & + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52827,10 +52670,10 @@ class reg_info_t(builtins.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -52844,49 +52687,48 @@ Help on function register_cfgopts in module ida_idp: register_cfgopts(*args) -> 'bool' register_cfgopts(opts, nopts, cb=None, obj=None) -> bool - opts: cfgopt_t const [] - nopts: size_t - cb: config_changed_cb_t * - obj: void * + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * Help on function set_module_data in module ida_idp: set_module_data(*args) -> 'void *' - Starting from IDA v7.5 all modules should use the following 3 - functions to handle idb specific static data because now the kernel - supports opening and working with multiple idbs files simultaneously. - See the source code of the processor modules in the SDK for the usage - examples. Register pointer to database specific module data. - set_module_data(data_id, data_ptr) -> void * - @param data_id: initially the pointed-to value must be 0, the kernel - will fill it with a unique id. once assigned, the - data_id does not change. (C++: int *) - @param data_ptr: pointer to the data to register (C++: void *) - @return: data_ptr. The registered pointer can later be retrieved using - get_module_data() + Starting from IDA v7.5 all modules should use the following 3 functions to + handle idb specific static data because now the kernel supports opening and + working with multiple idbs files simultaneously. See the source code of the + processor modules in the SDK for the usage examples. Register pointer to + database specific module data. + + @param data_id: (C++: int *) initially the pointed-to value must be 0, the kernel will fill + it with a unique id. once assigned, the data_id does not change. + @param data_ptr: (C++: void *) pointer to the data to register + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function sizeof_ldbl in module ida_idp: @@ -52896,1013 +52738,21 @@ sizeof_ldbl(*args) -> 'size_t' Help on function str2reg in module ida_idp: str2reg(*args) -> 'int' + str2reg(p) -> int Get any reg number (-1 on error) - str2reg(p) -> int - @param p (C++: const char *) + @param p: (C++: const char *) char const * -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -One symbol per processor byte Meaningful only for wide byte processors -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -Invert meaning of \\inf{wide_high_byte_first} for text strings (For -processors with bytes bigger than 8 bits) -""" - -ida_idp.AS2_TERSESTR -""" -'terse' structure initialization form NAME<fld,fld,...> is supported -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -.align directive expects an exponent rather than a power of 2 (.align -5 means to align at 32byte boundary) -""" - -ida_idp.AS_ASCIIC -""" -ascii directive accepts C-like escape sequences (\\n,\\x01 and similar) -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_CHG7 -""" -The instruction modifies the 7th operand. -""" - -ida_idp.CF_CHG8 -""" -The instruction modifies the 8th operand. -""" - -ida_idp.CF_HLL -""" -Instruction may be present in a high level language function. -""" - -ida_idp.CF_JUMP -""" -The instruction passes execution using indirect jump or call (thus -needs additional analysis) -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -Instruction doesn't pass execution to the next instruction -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CF_USE7 -""" -The instruction uses value of the 7th operand. -""" - -ida_idp.CF_USE8 -""" -The instruction uses value of the 8th operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.HKCB_GLOBAL -""" -is global event listener? if true, the listener will survive database -closing and opening. it will stay in the memory until explicitly -unhooked. otherwise the kernel will delete it as soon as the owner is -unloaded. should be used only with PLUGIN_FIX plugins. -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_RISCV -""" -RISC-V. -""" - -ida_idp.PLFM_RL78 -""" -Renesas RL78. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. +Module "ida_ieee"s docstring: """ +IEEE floating point functions.""" -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_XTENSA -""" -Tensilica Xtensa. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PR2_CODE16_BIT -""" -low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 -""" - -ida_idp.PR2_IDP_OPTS -""" -the module has processor-specific configuration options -""" - -ida_idp.PR2_MACRO -""" -processor supports macro instructions -""" - -ida_idp.PR2_MAPPINGS -""" -the processor module uses memory mapping -""" - -ida_idp.PR2_REALCVT -""" -the module has a custom 'ev_realcvt' implementation (otherwise -IEEE-754 format is assumed) -""" - -ida_idp.PR2_REL_BITS -""" -(Lumina) calcrel info has bits granularity, not bytes - construction -flag only -""" - -ida_idp.PR2_USE_CALCREL -""" -(Lumina) the module supports calcrel info -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -The user can't change segments and code/data attributes (display only) -""" - -ida_idp.PR_NO_SEGMOVE -""" -the processor module doesn't support 'move_segm()' (i.e. the user -can't move segments) -""" - -ida_idp.PR_OUTER -""" -has outer operands (currently only mc68k) -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -the processor module supports type information callbacks ALL OF THEM -SHOULD BE IMPLEMENTED! -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" -'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on function ecleaz in module ida_ieee: ecleaz(*args) -> 'void' ecleaz(x) - @param x (C++: eNI) + + @param x: unsigned short [(6+3)] Help on class fpvalue_shorts_array_t in module ida_ieee: @@ -53913,11 +52763,13 @@ class fpvalue_shorts_array_t(builtins.object) | | __getitem__(self, *args) -> 'unsigned short const &' | __getitem__(self, i) -> unsigned short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> fpvalue_shorts_array_t - | data: unsigned short (&)[FPVAL_NWORDS] + | + | @param data: unsigned short (&)[FPVAL_NWORDS] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53929,8 +52781,9 @@ class fpvalue_shorts_array_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned short const & + | + | @param i: size_t + | @param v: unsigned short const & | | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) | delete_fpvalue_shorts_array_t(self) @@ -53940,7 +52793,10 @@ class fpvalue_shorts_array_t(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53955,7 +52811,7 @@ class fpvalue_shorts_array_t(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | fpvalue_shorts_array_t_data_get(self) -> unsigned short (&)[FPVAL_NWORDS] + | data | | thisown | The membership flag @@ -53969,43 +52825,53 @@ class fpvalue_t(builtins.object) | | __add__(self, *args) -> 'fpvalue_t' | __add__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __getitem__(self, i) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __init__(self, *args) | __init__(self) -> fpvalue_t - | in: bytevec12_t const & + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __mul__(self, *args) -> 'fpvalue_t' | __mul__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | __repr__ = _swig_repr(self) | @@ -54016,14 +52882,16 @@ class fpvalue_t(builtins.object) | | __sub__(self, *args) -> 'fpvalue_t' | __sub__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | __swig_destroy__ = delete_fpvalue_t(...) | delete_fpvalue_t(self) | | __truediv__(self, *args) -> 'fpvalue_t' | __truediv__(self, o) -> fpvalue_t - | o: fpvalue_t const & + | + | @param o: fpvalue_t const & | | _get_10bytes(self, *args) -> 'void' | _get_10bytes(self) @@ -54039,124 +52907,149 @@ class fpvalue_t(builtins.object) | | _set_10bytes(self, *args) -> 'void' | _set_10bytes(self, _in) - | in: bytevec10_t const & + | + | Parameters + | ---------- + | in: bytevec10_t const & | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, _in) - | in: bytevec12_t const & + | + | Parameters + | ---------- + | in: bytevec12_t const & | | _set_float(self, *args) -> 'void' | _set_float(self, v) - | v: double + | + | Parameters + | ---------- + | v: double | | assign(self, *args) -> 'void' | assign(self, r) - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: fpvalue_t const & + | + | @param r: fpvalue_t const & | | eabs(self, *args) -> 'void' + | eabs(self) | Calculate absolute value. | | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t | Arithmetic operations. | - | fadd(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | @param y: (C++: const fpvalue_t &) fpvalue_t const & | | fdiv(self, *args) -> 'fpvalue_error_t' | fdiv(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | fmul(self, *args) -> 'fpvalue_error_t' | fmul(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t | Conversions for 10-byte floating point values. | - | from_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t | Conversions for 12-byte floating point values. | - | from_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: const void *) + | @param fpval: (C++: const void *) void const * | | from_int64(self, *args) -> 'void' | from_int64(self, x) - | @param x (C++: int64) + | + | @param x: int64 | | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t | Convert string to IEEE. | - | from_str(self, p) -> fpvalue_error_t - | p: char const * + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. | | from_sval(self, *args) -> 'void' + | from_sval(self, x) | Convert integer to IEEE. | - | from_sval(self, x) - | @param x (C++: sval_t) + | @param x: (C++: sval_t) | | from_uint64(self, *args) -> 'void' | from_uint64(self, x) - | @param x (C++: uint64) + | + | @param x: uint64 | | fsub(self, *args) -> 'fpvalue_error_t' | fsub(self, y) -> fpvalue_error_t - | @param y (C++: const fpvalue_t &) + | + | @param y: fpvalue_t const & | | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t | Get value kind. | | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool | Is negative value? | | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t | Multiply by a power of 2. | - | mul_pow2(self, power_of_2) -> fpvalue_error_t - | @param power_of_2 (C++: int32) + | @param power_of_2: (C++: int32) | | negate(self, *args) -> 'void' + | negate(self) | Negate. | | to_10bytes(self, *args) -> 'fpvalue_error_t' | to_10bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_12bytes(self, *args) -> 'fpvalue_error_t' | to_12bytes(self, fpval) -> fpvalue_error_t - | @param fpval (C++: void *) + | + | @param fpval: void * | | to_int64(self, *args) -> 'fpvalue_error_t' | to_int64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | to_str(self, *args) -> 'void' + | to_str(self, mode) | Convert IEEE to string. | - | to_str(self, mode) - | @param mode: broken down into: low byte: number of digits after '.' - | second byte: FPNUM_LENGTH third byte: FPNUM_DIGITS - | (C++: uint) + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS | | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t | Convert IEEE to integer (+-0.5 if round) | - | to_sval(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | @param round: (C++: bool) | | to_uint64(self, *args) -> 'fpvalue_error_t' | to_uint64(self, round=False) -> fpvalue_error_t - | @param round (C++: bool) + | + | @param round: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54189,24 +53082,25 @@ class fpvalue_t(builtins.object) | uint64 | | w - | fpvalue_t_w_get(self) -> uint16 [6] + | w | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_ieee EPYDOC INJECTIONS === -ida_ieee.E_SPECIAL_EXP -""" -Exponent in 'fpvalue_t' for NaN and Inf. +Module "ida_kernwin"s docstring: """ +Defines the interface between the kernel and the UI. + +It contains: +* the UI dispatcher notification codes (ui_notification_t) +* convenience functions for UI services +* structures which hold information about the lines (disassembly, structures, +enums) generated by the kernel +* functions to interact with the user (dialog boxes) +* some string and conversion functions.""" -ida_ieee.IEEE_EXONE -""" -The exponent of 1.0. -""" -=== ida_ieee EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(builtins.object) @@ -54269,7 +53163,7 @@ class Choose(builtins.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -54279,7 +53173,7 @@ class Choose(builtins.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -54501,7 +53395,8 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -54510,81 +53405,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -54608,10 +53503,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -54647,7 +53542,7 @@ class Form(builtins.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param close_normally | 1: form is closed normally as if the user pressed Enter | 0: form is closed abnormally as if the user pressed Esc | @return: None @@ -54695,8 +53590,7 @@ class Form(builtins.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @return: - color button, radio controls: integer | - file/dir input, string input and string label: string | - embedded chooser control (0-based indices of selected items): integer list | - for multilinetext control: textctrl_info_t @@ -54722,7 +53616,7 @@ class Form(builtins.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param value | - embedded chooser: a 0-base indices list to select embedded chooser items | - multilinetext: a textctrl_info_t | - dropdown list: an integer designating the selection index if readonly @@ -54957,7 +53851,8 @@ class IDAViewWrapper(CustomIDAMemo) | | __init__(self, title) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -55055,81 +53950,81 @@ class IDAViewWrapper(CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, view, ve) + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, view, *args) + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -55153,10 +54048,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -55209,6 +54104,7 @@ class PluginForm(builtins.object) | @param options: One of PluginForm.WOPN_ constants | | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. | | ---------------------------------------------------------------------- | Static methods defined here: @@ -55306,7 +54202,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * - ptrval: size_t + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -55319,13 +54216,14 @@ class UI_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __real_database_closed = database_closed(self, *args) -> 'void' - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | __repr__ = _swig_repr(self) | @@ -55333,260 +54231,275 @@ class UI_Hooks(builtins.object) | delete_UI_Hooks(self) | | create_desktop_widget(self, *args) -> 'PyObject *' - | create a widget, to be placed in the widget tree (at desktop- - | creation time.) - | | create_desktop_widget(self, title, cfg) -> PyObject * - | @param title (C++: const char *) - | @param cfg (C++: const jobj_t *) + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) -> 'void' + | current_widget_changed(self, widget, prev_widget) | The currently-active TWidget changed. | - | current_widget_changed(self, widget, prev_widget) - | @param widget (C++: TWidget *) - | @param prev_widget (C++: TWidget *) + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) | | database_closed = __wrapper(self, *args) - | The database has been closed. See also processor_t::closebase, it - | occurs earlier. See also ui_initing_database. This is not the same as - | IDA exiting. If you need to perform cleanup at the exiting time, use - | 'qatexit()' . + | database_closed(self) + | The database has been closed. See also processor_t::closebase, it occurs + | earlier. See also ui_initing_database. This is not the same as IDA exiting. If + | you need to perform cleanup at the exiting time, use qatexit(). | | database_inited(self, *args) -> 'void' - | database initialization has completed. the kernel is about to run - | idc scripts - | | database_inited(self, is_new_database, idc_script) - | @param is_new_database (C++: int) - | @param idc_script: - may be NULL (C++: const char *) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param idc_script: (const char *) - may be nullptr + | @return: void See also ui_initing_database. This event is called for both new + | and old databases. | | debugger_menu_change(self, *args) -> 'void' + | debugger_menu_change(self, enable) | debugger menu modification detected | - | debugger_menu_change(self, enable) - | @param enable: true: debugger menu has been added, or a different - | debugger has been selected false: debugger menu will be - | removed (user switched to "No debugger") (C++: bool) + | @param enable: (bool) true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be removed + | (user switched to "No debugger") | | desktop_applied(self, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) | a desktop has been applied | - | desktop_applied(self, name, from_idb, type) - | @param name: the desktop name (C++: const char *) - | @param from_idb: the desktop was stored in the IDB (false if it comes - | from the registry) (C++: bool) - | @param type: the desktop type (1-disassembly, 2-debugger, 3-merge) - | (C++: int) + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) | | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) | The plugin object is about to be destroyed | - | destroying_plugmod(self, plugmod, entry) - | @param plugmod (C++: const plugmod_t *) - | @param entry (C++: const plugin_t *) + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) | | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) | The processor module is about to be destroyed | - | destroying_procmod(self, procmod) - | @param procmod (C++: const procmod_t *) + | @param procmod: (const procmod_t *) | | finish_populating_widget_popup(self, *args) -> 'void' - | IDA is about to be done populating the context menu for a widget. - | This is your chance to 'attach_action_to_popup()' . - | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is about to be done populating the context menu for a widget. This is + | your chance to attach_action_to_popup(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> 'void' - | get item-specific attributes for a chooser. This callback is - | generated only after enable_chooser_attrs() - | | get_chooser_item_attrs(self, chooser, n, attrs) - | @param chooser (C++: const chooser_base_t *) - | @param n (C++: size_t) - | @param attrs (C++: chooser_item_attrs_t *) + | get item-specific attributes for a chooser. This callback is generated only + | after enable_chooser_attrs() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> 'PyObject *' + | get_custom_viewer_hint(self, viewer, place) -> PyObject * | ui wants to display a hint for a viewer (idaview or custom). Every | subscriber is supposed to append the hint lines to HINT and increment - | IMPORTANT_LINES accordingly. Completely overwriting the existing lines - | in HINT is possible but not recommended. If the REG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER - | sequence is found in the returned hints string, it will be replaced - | with the contents of the source-level debugger-generated hints. The - | following keywords might appear at the beginning of the returned - | hints: HIGHLIGHT textwhere text will be highlighted CAPTION - | captioncaption for the hint widget + | IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT + | is possible but not recommended. If the REG_HINTS_MARKER sequence is found in + | the returned hints string, it will be replaced with the contents of the + | "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned + | hints string, it will be replaced with the contents of the source-level + | debugger-generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT text + | where text will be highlighted CAPTION caption + | caption for the hint widget | - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | @param viewer: viewer (C++: TWidget*) - | @param place: current position in the viewer (C++: place_t *) - | @retval: 0 - continue collecting hints with other subscribers - | @retval: 1 - stop collecting hints + | @param viewer: (TWidget*) viewer + | @param place: (place_t *) current position in the viewer + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | get_ea_hint(self, *args) -> 'PyObject *' - | ui wants to display a simple hint for an address. Use this event - | to generate a custom hint See also more generic 'ui_get_item_hint' - | | get_ea_hint(self, ea) -> PyObject * - | @param ea (C++: ea_t) + | ui wants to display a simple hint for an address. Use this event to generate + | a custom hint See also more generic ui_get_item_hint + | + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) -> 'PyObject *' - | ui wants to display multiline hint for an item. See also more - | generic 'ui_get_custom_viewer_hint' - | | get_item_hint(self, ea, max_lines) -> PyObject * - | @param ea: or item id like a structure or enum member (C++: ea_t) - | @param max_lines: maximal number of lines (C++: int) + | ui wants to display multiline hint for an item. See also more generic + | ui_get_custom_viewer_hint + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint | | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) | get lines rendering information | - | get_lines_rendering_info(self, out, widget, info) - | @param out (C++: lines_rendering_output_t *) - | @param widget (C++: const TWidget *) - | @param info (C++: const lines_rendering_input_t *) + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) -> 'PyObject *' + | get_widget_config(self, widget, cfg) -> PyObject * | retrieve the widget configuration (it will be passed back at | ui_create_desktop_widget-, and ui_set_widget_config-time) | - | get_widget_config(self, widget, cfg) -> PyObject * - | @param widget (C++: const TWidget *) - | @param cfg (C++: jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idcstart(self, *args) -> 'void' + | idcstart(self) | Start of IDC engine work. | | idcstop(self, *args) -> 'void' + | idcstop(self) | Stop of IDC engine work. | | initing_database(self, *args) -> 'void' + | initing_database(self) | database initialization has started. + | + | @return: void See also ui_database_inited. This event is called for both new and + | old databases. | | plugin_loaded(self, *args) -> 'void' + | plugin_loaded(self, plugin_info) | The plugin was loaded in memory. | - | plugin_loaded(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' + | plugin_unloading(self, plugin_info) | The plugin is about to be unloaded | - | plugin_unloading(self, plugin_info) - | @param plugin_info (C++: const plugin_info_t *) + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) -> 'void' - | IDA is populating the context menu for a widget. This is your - | chance to 'attach_action_to_popup()' .Have a look at - | ui_finish_populating_widget_popup, if you want to augment the context - | menu with your own actions after the menu has had a chance to be - | properly populated by the owning component or plugin (which typically - | does it on ui_populating_widget_popup.) - | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | @param widget (C++: TWidget *) - | @param popup_handle (C++: TPopupMenu *) - | @param ctx (C++: const action_activation_ctx_t *) + | IDA is populating the context menu for a widget. This is your chance to + | attach_action_to_popup(). + | + | Have a look at ui_finish_populating_widget_popup, if you want to augment the + | context menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically does it on + | ui_populating_widget_popup.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) -> 'void' + | postprocess_action(self) | an ida ui action has been handled | | preprocess_action(self, *args) -> 'int' + | preprocess_action(self, name) -> int | ida ui is about to handle a user action. | - | preprocess_action(self, name) -> int - | @param name: ui action name. these names can be looked up in - | ida[tg]ui.cfg (C++: const char *) - | @retval: 0 - ok - | @retval: nonzero - a plugin has handled the command + | @param name: (const char *) ui action name. these names can be looked up in + | ida[tg]ui.cfg + | @retval 0: ok + | @retval nonzero: a plugin has handled the command | | range(self, *args) -> 'void' - | The disassembly range has been changed (\inf{min_ea} ... - | \inf{max_ea}). UI should redraw the scrollbars. See also: - | 'ui_lock_range_refresh' + | range(self) + | The disassembly range has been changed ( idainfo::min_ea ... + | idainfo::max_ea). UI should redraw the scrollbars. See also: + | ui_lock_range_refresh | | ready_to_run(self, *args) -> 'void' - | all UI elements have been initialized. Automatic plugins may hook - | to this event to perform their tasks. + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) -> 'void' - | Resume the suspended graphical interface. Only the text version. - | Interface should respond to it + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) -> 'void' - | The kernel has saved the database. This callback just informs the - | interface. Note that at the time this notification is sent, the - | internal paths are not updated yet, and calling - | get_path(PATH_TYPE_IDB) will return the previous path. - | | saved(self, path) - | @param path: the database path (C++: const char *) + | The kernel has saved the database. This callback just informs the interface. + | Note that at the time this notification is sent, the internal paths are not + | updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path. + | + | @param path: (const char *) the database path | | saving(self, *args) -> 'void' - | The kernel is flushing its buffers to the disk. The user interface - | should save its state. Parameters: none Returns: none + | saving(self) + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) -> 'void' + | screen_ea_changed(self, ea, prev_ea) | The "current address" changed | - | screen_ea_changed(self, ea, prev_ea) - | @param ea (C++: ea_t) - | @param prev_ea (C++: ea_t) + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) -> 'void' + | set_widget_config(self, widget, cfg) | set the widget configuration | - | set_widget_config(self, widget, cfg) - | @param widget (C++: const TWidget *) - | @param cfg (C++: const jobj_t *) + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) -> 'void' - | Suspend graphical interface. Only the text version. Interface - | should respond to it. + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updated_actions(self, *args) -> 'void' + | updated_actions(self) | IDA is done updating actions. | | updating_actions(self, *args) -> 'void' - | IDA is about to update all actions. If your plugin needs to - | perform expensive operations more than once (e.g., once per action it - | registers), you should do them only once, right away. - | | updating_actions(self, ctx) - | @param ctx (C++: action_update_ctx_t *) + | IDA is about to update all actions. If your plugin needs to perform + | expensive operations more than once (e.g., once per action it registers), you + | should do them only once, right away. + | + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) -> 'void' - | TWidget is about to close. This event precedes ui_widget_invisible. - | Use this to perform some possible actions relevant to the lifecycle of - | this widget - | | widget_closing(self, widget) - | @param widget (C++: TWidget *) + | TWidget is about to close. This event precedes ui_widget_invisible. Use this to + | perform some possible actions relevant to the lifecycle of this widget + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) -> 'void' + | widget_invisible(self, widget) | TWidget is being closed. Use this event to destroy the window controls | - | widget_invisible(self, widget) - | @param widget (C++: TWidget *) + | @param widget: (TWidget *) | | widget_visible(self, *args) -> 'void' - | TWidget is displayed on the screen. Use this event to populate the - | window with controls - | | widget_visible(self, widget) - | @param widget (C++: TWidget *) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55611,7 +54524,8 @@ class View_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks - | _flags: uint32 + | + | @param _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -55625,87 +54539,87 @@ class View_Hooks(builtins.object) | unhook(self) -> bool | | view_activated(self, *args) -> 'void' + | view_activated(self, view) | A view is activated | - | view_activated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_click(self, *args) -> 'void' + | view_click(self, view, event) | Click event | - | view_click(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) -> 'void' + | view_close(self, view) | View closed | - | view_close(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_created(self, *args) -> 'void' + | view_created(self, view) | A view is being created. | - | view_created(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_curpos(self, *args) -> 'void' + | view_curpos(self, view) | Cursor position changed | - | view_curpos(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_dblclick(self, *args) -> 'void' + | view_dblclick(self, view, event) | Double click event | - | view_dblclick(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' + | view_deactivated(self, view) | A view is deactivated | - | view_deactivated(self, view) - | @param view (C++: TWidget *) + | @param view: (TWidget *) | | view_keydown(self, *args) -> 'void' + | view_keydown(self, view, key, state) | Key down event | - | view_keydown(self, view, key, state) - | @param view (C++: TWidget *) - | @param key (C++: int) - | @param state (C++: view_event_state_t) + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) -> 'void' - | The location for the view has changed (can be either the 'place_t' , - | the 'renderer_info_t' , or both.) - | | view_loc_changed(self, view, now, was) - | @param view (C++: TWidget *) - | @param now (C++: const lochist_entry_t *) - | @param was (C++: const lochist_entry_t *) + | The location for the view has changed (can be either the place_t, the + | renderer_info_t, or both.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' + | view_mouse_moved(self, view, event) | The mouse moved on the view | - | view_mouse_moved(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) -> 'void' - | The user moved the mouse over (or out of) a node or an edge. This is - | only relevant in a graph view. - | | view_mouse_over(self, view, event) - | @param view (C++: TWidget *) - | @param event (C++: const view_mouse_event_t *) + | The user moved the mouse over (or out of) a node or an edge. This is only + | relevant in a graph view. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' + | view_switched(self, view, rt) | A view's renderer has changed. | - | view_switched(self, view, rt) - | @param view (C++: TWidget *) - | @param rt (C++: tcc_renderer_type_t) + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55754,34 +54668,49 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool - addr: ea_t * - format: char const * + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) -> 'sval_t *' _ask_long(value, format) -> bool - value: sval_t * - format: char const * + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) -> 'sel_t *' _ask_seg(sel, format) -> bool - sel: sel_t * - format: char const * + + Parameters + ---------- + sel: sel_t * + format: char const * Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: _kludge_force_declare_dirspec_t(*args) -> 'void' _kludge_force_declare_dirspec_t(arg1) - arg1: dirspec_t const * + + Parameters + ---------- + arg1: dirspec_t const * Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: _kludge_force_declare_dirtree_t(*args) -> 'void' _kludge_force_declare_dirtree_t(arg1) - arg1: dirtree_t const * + + Parameters + ---------- + arg1: dirtree_t const * Help on class action_ctx_base_cur_sel_t in module ida_kernwin: @@ -55811,13 +54740,13 @@ class action_ctx_base_cur_sel_t(builtins.object) | list of weak references to the object (if defined) | | _from - | action_ctx_base_cur_sel_t__from_get(self) -> twinpos_t + | _from | | thisown | The membership flag | | to - | action_ctx_base_cur_sel_t_to_get(self) -> twinpos_t + | to Help on class action_ctx_base_source_t in module ida_kernwin: @@ -55847,7 +54776,7 @@ class action_ctx_base_source_t(builtins.object) | list of weak references to the object (if defined) | | chooser - | action_ctx_base_source_t_chooser_get(self) -> chooser_base_t + | chooser | | thisown | The membership flag @@ -55867,22 +54796,14 @@ class action_ctx_base_t(builtins.object) | __swig_destroy__ = delete_action_ctx_base_t(...) | delete_action_ctx_base_t(self) | - | _get_form(self, *args) -> 'TWidget *' - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) -> 'qstring' - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) -> 'twidget_type_t' - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) -> 'bool' + | has_flag(self, flag) -> bool | Check if the given flag is set. | - | has_flag(self, flag) -> bool - | @param flag (C++: uint32) + | @param flag: (C++: uint32) | | reset(self, *args) -> 'void' + | reset(self) | Invalidate all context info. | | ---------------------------------------------------------------------- @@ -55895,82 +54816,79 @@ class action_ctx_base_t(builtins.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum | | cur_enum_member - | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg | | cur_sel - | action_ctx_base_t_cur_sel_get(self) -> action_ctx_base_cur_sel_t + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | dirtree_selection - | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname | | source - | action_ctx_base_t_source_get(self) -> action_ctx_base_source_t + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type Help on class action_desc_t in module ida_kernwin: @@ -55981,13 +54899,14 @@ class action_desc_t(builtins.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | name: char const * - | label: char const * - | handler: PyObject * - | shortcut: char const * - | tooltip: char const * - | icon: int - | flags: int + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -56004,31 +54923,31 @@ class action_desc_t(builtins.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> void const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip Help on class action_handler_t in module ida_kernwin: @@ -56041,8 +54960,22 @@ class action_handler_t(builtins.object) | Initialize self. See help(type(self)) for accurate signature. | | activate(self, ctx) + | Activate an action. This function implements the core behavior of an action. It + | is called when the action is triggered, from a menu, from a popup menu, from the + | toolbar, or programmatically. + | + | @return: non-zero: all IDA windows will be refreshed | | update(self, ctx) + | Update an action. This is called when the context of the UI changed, and we need + | to let the action update some of its properties if needed (label, icon, ...) + | + | In addition, this lets IDA know whether the action is enabled, and when it + | should be queried for availability again. + | + | Note: This callback is not meant to change anything in the application's state, + | except by calling one (or many) of the "update_action_*()" functions on this + | very action. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56056,16 +54989,16 @@ class action_handler_t(builtins.object) Help on function activate_widget in module ida_kernwin: activate_widget(*args) -> 'void' - Activate widget (only gui version) ( 'ui_activate_widget' ). - activate_widget(widget, take_focus) - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) -> 'PyObject *' - add_hotkey(hotkey, pyfunc) -> PyObject * + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -56077,28 +55010,28 @@ add_hotkey(*args) -> 'PyObject *' Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) -> 'PyObject *' - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. + add_spaces(s, len) -> str + Add space characters to the colored string so that its length will be at least + 'len' characters. Don't trim the string if it is longer than 'len'. - add_spaces(s, len) -> PyObject * - s: char const * - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) -> 'int' + addon_count() -> int Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -56126,115 +55059,146 @@ class addon_info_t(builtins.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) -> 'void' - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: ask_addr(defval, format) - # ---------------------------------------------------------------------- + Output a formatted string to the output window (msg) preprended with "**DATABASE + IS CORRUPTED: " Display a dialog box and wait for the user to input an address + (ui_ask_addr). + + @retval 0: the user pressed Esc. + @retval 1: ok, the user entered an address Help on function ask_buttons in module ida_kernwin: ask_buttons(*args) -> 'int' - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - ask_buttons(Yes, No, Cancel, deflt, format) -> int - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + Display a dialog box and get choice from maximum three possibilities + (ui_ask_buttons). + @note: for all buttons: + * use "" or nullptr to take the default name for the button. + * use 'format' to hide the cancel button + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) printf-style format string for question. It may have some + prefixes, see below. + @return: one of Button IDs specifying the selected button (Esc key returns + Cancel/3rd button value) Help on function ask_file in module ida_kernwin: ask_file(*args) -> 'char *' ask_file(for_saving, defval, format) -> char * - @param for_saving (C++: bool) - @param defval (C++: const char *) - @param format (C++: const char *) + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: ask_for_feedback(*args) -> 'void' - Show a message box asking to send the input file tosupport@hex- - rays.com. - ask_for_feedback(format) - @param format: the reason why the input file is bad (C++: const char - *) + Show a message box asking to send the input file to \link{mailto:support@hex- + rays.com,support@hex-rays.com}. + + @param format: (C++: const char *) the reason why the input file is bad Help on function ask_form in module ida_kernwin: ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" keyword, then the return values are the same as in the ask_yn() + function (Button IDs) + + @retval 0: the user pressed Esc, no memory to display or form syntax error a + dialog box (a warning is displayed in this case). all variables + retain their original values. + @retval 1: ok, all input fields are filled and validated. + @retval -1: the form had BUTTON CANCEL and the user cancelled the dialog Help on function ask_ident in module ida_kernwin: ask_ident(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an identifier. If the user + enters a non-valid identifier, this function displays a warning and allows the + user to correct it. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: ask_long(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an number (ui_ask_long). The + number is represented in C-style. This function allows to enter any IDC + expression and properly calculates it. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered a valid number. Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' - ask_str(defval, hist, prompt) -> PyObject * + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' - ask_text(max_size, defval, prompt) -> PyObject * + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -56245,106 +55209,97 @@ ask_text(*args) -> 'PyObject *' Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) -> 'bool' - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). + attach_action_to_menu(menupath, name, flags=0) -> bool + Attach a previously-registered action to the menu (ui_attach_action_to_menu). + @note: You should not change top level menu, or the Edit,Plugins submenus If you + want to modify the debugger menu, do it at the ui_debugger_menu_change + event (ida might destroy your menu item if you do it elsewhere). - attach_action_to_menu(menupath, name, flags) -> bool - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success + @param menupath: (C++: const char *) path to the menu item after or before which the insertion will + take place. + * Example: Debug/StartProcess + * Whitespace, punctuation are ignored. + * It is allowed to specify only the prefix of the menu item. + * Comparison is case insensitive. + * menupath may start with the following prefixes: + * [S] - modify the main menu of the structure window + * [E] - modify the main menu of the enum window + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) -> 'bool' - Insert a previously-registered action into the widget's popup menu ( - 'ui_attach_action_to_popup' ). This function has two "modes": 'single- - shot', and 'permanent'. - attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success + Insert a previously-registered action into the widget's popup menu + (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and + 'permanent'. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup menu + * if non-nullptr, the action is added to this popup menu invocation (i.e., + 'single-shot') + * if nullptr, the action is added to a list of actions that should always be + present in context menus for this widget (i.e., 'permanent'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) -> 'bool' - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - attach_action_to_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) -> 'bool' - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success + Create & insert an action into the widget's popup menu + (ui_attach_dynamic_action_to_popup). + @note: action_desc_t::handler for 'desc' must be instantiated using 'new', as it + will be 'delete'd when the action is unregistered. + + @param widget: (C++: TWidget *) target widget + @param popup_handle: (C++: TPopupMenu *) target popup + @param desc: (C++: const action_desc_t &) created with DYNACTION_DESC_LITERAL + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ constants (see Set menu flags) + @return: success Help on function banner in module ida_kernwin: banner(*args) -> 'bool' - Show a banner dialog box ( 'ui_banner' ). - banner(wait) -> bool - @param wait: time to wait before closing (C++: int) - @retval: 1 - ok - @retval: 0 - esc was pressed + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) -> 'void' - Issue a beeping sound ( 'ui_beep' ). - beep(beep_type=beep_default) - @param beep_type: beep_t (C++: beep_t) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: @@ -56352,108 +55307,114 @@ call_nav_colorizer(*args) -> 'uint32' call_nav_colorizer(dict, ea, nbytes) -> uint32 To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) -> 'bool' - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - cancel_exec_request(req_id) -> bool - @param req_id: request id (C++: int) - @retval: true - successfully canceled - @retval: false - request has already been processed. + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. Help on function cancel_thread_exec_requests in module ida_kernwin: cancel_thread_exec_requests(*args) -> 'int' - Try to cancel asynchronous exec requests created by the specified - thread. - cancel_thread_exec_requests(tid) -> int - @param tid: thread id (C++: qthread_t) - @return: number of the canceled requests. + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) -> 'PyObject *' choose_create_embedded_chobj(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) -> 'ea_t' - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - choose_entry(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) -> 'enum_t' - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - choose_enum(title, default_id) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) -> 'uchar *' - Choose an enum, restricted by value & size ( 'ui_choose' , - 'chtype_enum_by_value_and_size' ). If the given value cannot be found - initially, this function will ask if the user would like to import a - standard enum. - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uint64) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) -> 'PyObject *' - choose_find(title) -> PyObject * - title: char const * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) -> 'func_t *' - Choose a function ( 'ui_choose' , 'chtype_func' ). - choose_func(title, default_ea) -> func_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) -> 'TWidget *' choose_get_widget(_self) -> TWidget * - self: PyObject * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: @@ -56466,71 +55427,75 @@ choose_idasgn(*args) -> 'PyObject *' Help on function choose_name in module ida_kernwin: choose_name(*args) -> 'ea_t' - Choose a name ( 'ui_choose' , 'chtype_name' ). - choose_name(title) -> ea_t - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) -> 'void' choose_refresh(_self) - self: PyObject * + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) -> 'segment_t *' - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - choose_segm(title, default_ea) -> segment_t * - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) -> 'sreg_range_t *' - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - choose_srcp(title) -> sreg_range_t * - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) -> 'ea_t' - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - choose_stkvar_xref(pfn, mptr) -> ea_t - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) -> 'struc_t *' - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - choose_struc(title) -> struc_t * - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) -> 'qstring *' - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). + + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) -> 'ea_t' - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - choose_xref(to) -> ea_t - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected Help on class chooser_base_t in module ida_kernwin: @@ -56545,6 +55510,7 @@ class chooser_base_t(builtins.object) | __repr__ = _swig_repr(self) | | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool | should chooser generate ui_get_chooser_item_attrs events? | | can_del(self, *args) -> 'bool' @@ -56557,6 +55523,7 @@ class chooser_base_t(builtins.object) | can_filter(self) -> bool | | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool | is an operation allowed? | | can_refresh(self, *args) -> 'bool' @@ -56566,27 +55533,29 @@ class chooser_base_t(builtins.object) | can_sort(self) -> bool | | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint | get number of the built-in chooser | | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t | get the number of elements in the chooser | | get_ea(self, *args) -> 'ea_t' - | get an address of an element. Used to set breakpoint in any chooser - | which implements this callback. - | | get_ea(self, arg2) -> ea_t - | arg2: size_t - | @return: the effective address, BADADDR if the element has no address + | get an address of an element. Used to set breakpoint in any chooser which + | implements this callback. + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address | | get_quick_filter_initial_mode(self, *args) -> 'int' | get_quick_filter_initial_mode(self) -> int | | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) | get a description of an element. | - | get_row(self, n) -> PyObject * - | @param n: element number (0.. get_count() -1) (C++: size_t) + | @param n: (C++: size_t) element number (0..get_count()-1) | | has_diff_capability(self, *args) -> 'bool' | has_diff_capability(self) -> bool @@ -56594,35 +55563,42 @@ class chooser_base_t(builtins.object) | has_dirtree(self, *args) -> 'bool' | has_dirtree(self) -> bool | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool | should selection of the already opened non-modal chooser be changed? | | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool | is choose modal? | | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool | is multi-selection allowed? | | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool | can use the chooser before opening the database? | | is_quick_filter_visible_initially(self, *args) -> 'bool' | is_quick_filter_visible_initially(self) -> bool | | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool | do the current and the given objects hold the same data? | - | is_same(self, other) -> bool - | @param other (C++: const chooser_base_t *) + | @param other: (C++: const chooser_base_t *) chooser_base_t const * | | is_status_bar_hidden(self, *args) -> 'bool' | is_status_bar_hidden(self) -> bool | | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, i) -> bool | is a popup action allowed? | - | popup_allowed(self, i) -> bool - | @param i (C++: int) + | @param i: (C++: int) | | should_rename_trigger_edit(self, *args) -> 'bool' | should_rename_trigger_edit(self) -> bool @@ -56640,46 +55616,46 @@ class chooser_base_t(builtins.object) | list of weak references to the object (if defined) | | columns - | chooser_base_t_columns_get(self) -> int + | columns | | deflt_col - | chooser_base_t_deflt_col_get(self) -> int + | deflt_col | | header - | chooser_base_t_header_get(self) -> char const *const * + | header | | height - | chooser_base_t_height_get(self) -> int + | height | | icon - | chooser_base_t_icon_get(self) -> int + | icon | | popup_names - | chooser_base_t_popup_names_get(self) -> qstring [chooser_base_t::NSTDPOPUPS] + | popup_names | | thisown | The membership flag | | title - | chooser_base_t_title_get(self) -> char const * + | title | | width - | chooser_base_t_width_get(self) -> int + | width | | widths - | chooser_base_t_widths_get(self) -> int const * + | widths | | x0 - | chooser_base_t_x0_get(self) -> int + | x0 | | x1 - | chooser_base_t_x1_get(self) -> int + | x1 | | y0 - | chooser_base_t_y0_get(self) -> int + | y0 | | y1 - | chooser_base_t_y1_get(self) -> int + | y1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -56722,10 +55698,10 @@ class chooser_item_attrs_t(builtins.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag @@ -56734,7 +55710,8 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) - @param mask (C++: uint64) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -56768,7 +55745,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | This callback is mandatory. | | @param line: typed line(s) - | @return Boolean: True-executed line, False-ask for more lines + | @return: Boolean: True-executed line, False-ask for more lines | | OnKeydown(self, line, x, sellen, vkey, shift) | A keyboard key has been pressed @@ -56782,8 +55759,7 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param vkey: virtual key code. if the key has been handled, it should be returned as zero | @param shift: shift state | - | @return: - | None - Nothing was changed + | @return: None - Nothing was changed | tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. | It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line) | @@ -56798,9 +55774,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -56822,105 +55798,97 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) Help on function close_chooser in module ida_kernwin: close_chooser(*args) -> 'bool' - Close a non-modal chooser ( 'ui_close_chooser' ). - close_chooser(title) -> bool - @param title: window title of chooser to close (C++: const char *) - @return: success + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) -> 'void' - Close widget ( 'ui_close_widget' , only gui version). - close_widget(widget, options) - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) -> 'void' - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) -> 'TWidget *' - Create a code viewer ( 'ui_create_code_viewer' ). A code viewer - contains on the left side a widget representing the line numbers, and - on the right side, the child widget passed as parameter. It will - inherit its title from the child widget. - create_code_viewer(custview, flags=0, parent=None) -> TWidget * - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + Create a code viewer (ui_create_code_viewer). A code viewer contains on the left + side a widget representing the line numbers, and on the right side, the child + widget passed as parameter. It will inherit its title from the child widget. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) -> 'TWidget *' + create_empty_widget(title, icon=-1) -> TWidget * Create an empty widget, serving as a container for custom user widgets - create_empty_widget(title, icon=-1) -> TWidget * - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) -> 'bool' - Create a menu with the given name, label and optional position, either - in the menubar, or as a submenu. If 'menupath' is non-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + create_menu(name, label, menupath=None) -> bool + Create a menu with the given name, label and optional position, either in the + menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information + about where the menu should be positioned. First, IDA will try and resolve the + corresponding menu by its name. If such an existing menu is found and is present + in the menubar, then the new menu will be inserted in the menubar before it. + Otherwise, IDA will try to resolve 'menupath' as it would for + attach_action_to_menu() and, if found, add the new menu like so: // The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment..." command create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - or - // The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(...)", "My menu", "Edit/Comments/"); - If the above fails, the new menu will be appended to the menubar. - create_menu(name, label, menupath=None) -> bool - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) -> 'bool' + create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position - create_toolbar(name, label, before=None, flags=0) -> bool - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) -> 'bool' - Append 'loc' to the viewer's history, and cause the viewer to display - it. - custom_viewer_jump(v, loc, flags=0) -> bool - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success Help on function del_hotkey in module ida_kernwin: @@ -56936,58 +55904,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) -> 'bool' + delete_menu(name) -> bool Delete an existing menu - delete_menu(name) -> bool - @param name: name of menu (C++: const char *) - @return: success + @param name: (C++: const char *) name of menu + @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) -> 'bool' + delete_toolbar(name) -> bool Delete an existing toolbar - delete_toolbar(name) -> bool - @param name: name of toolbar (C++: const char *) - @return: success + @param name: (C++: const char *) name of toolbar + @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) -> 'bool' - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - detach_action_from_menu(menupath, name) -> bool - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) -> 'bool' - Remove a previously-registered action, from the list of 'permanent' - context menu actions for this widget ( 'ui_detach_action_from_popup' - ). This only makes sense if the action has been added to 'widget's - list of permanent popup actions by calling attach_action_to_popup in - 'permanent' mode. - detach_action_from_popup(widget, name) -> bool - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + Remove a previously-registered action, from the list of 'permanent' context menu + actions for this widget (ui_detach_action_from_popup). This only makes sense if + the action has been added to 'widget's list of permanent popup actions by + calling attach_action_to_popup in 'permanent' mode. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) -> 'bool' - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - detach_action_from_toolbar(toolbar_name, name) -> bool - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success Help on class disabled_script_timeout_t in module ida_kernwin: @@ -57016,7 +55984,9 @@ class disasm_line_t(builtins.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | other: disasm_line_t const & + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -57033,19 +56003,19 @@ class disasm_line_t(builtins.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -57059,11 +56029,14 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | x: qvector< disasm_line_t > const & + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57075,22 +56048,23 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: disasm_line_t const & + | + | @param i: size_t + | @param v: disasm_line_t const & | | __swig_destroy__ = delete_disasm_text_t(...) | delete_disasm_text_t(self) | | at(self, *args) -> 'disasm_line_t const &' | at(self, _idx) -> disasm_line_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -57103,16 +56077,16 @@ class disasm_text_t(builtins.object) | | end(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator | + | @param it: qvector< disasm_line_t >::iterator | | erase(self, first, last) -> disasm_line_t - | first: qvector< disasm_line_t >::iterator - | last: qvector< disasm_line_t >::iterator + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -57122,47 +56096,56 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: disasm_line_t * - | len: size_t + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t - | it: qvector< disasm_line_t >::iterator - | x: disasm_line_t const & + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) - | x: disasm_line_t const & + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: disasm_line_t const & | + | @param _newsize: size_t + | @param x: disasm_line_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< disasm_line_t > & + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57182,57 +56165,60 @@ class disasm_text_t(builtins.object) Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) -> 'bool' - Display copyright warning ( 'ui_copywarn' ). + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no Help on function display_widget in module ida_kernwin: display_widget(*args) -> 'void' + display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before - display_widget(widget, options, dest_ctrl=None) - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param dest_ctrl: (C++: const char *) where to dock: if nullptr or invalid then use the active + docker if there is not create a new tab relative to current + active tab Help on function ea2str in module ida_kernwin: ea2str(*args) -> 'size_t' + ea2str(ea) -> str Convert linear address to UTF-8 string. - ea2str(ea) -> str - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) -> 'bool' - Push current location in the history and jump to the given location ( - 'ui_ea_viewer_history_push_and_jump' ). This will jump in the given ea - viewer and also in other synchronized views. - ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + Push current location in the history and jump to the given location + (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and + also in other synchronized views. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) -> 'bool' - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - enable_chooser_item_attrs(chooser_caption, enable) -> bool - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success + Enable item-specific attributes for chooser items + (ui_enable_chooser_item_attrs). For example: color list items differently + depending on a criterium. + If enabled, the chooser will generate ui_get_chooser_item_attrs + events that can be intercepted by a plugin to modify the item attributes. + This event is generated only in the GUI version of IDA. + Specifying CH_ATTRS bit at the chooser creation time has the same effect. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -57258,202 +56244,207 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -57465,7 +56456,7 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: @@ -57483,7 +56474,7 @@ execute_sync(*args) -> 'int' If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -57502,334 +56493,371 @@ execute_ui_requests(*args) -> 'bool' Help on function find_widget in module ida_kernwin: find_widget(*args) -> 'TWidget *' - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - find_widget(caption) -> TWidget * - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + Find widget with the specified caption (only gui version) (ui_find_widget). NB: + this callback works only with the tabbed widgets! + + @param caption: (C++: const char *) title of tab, or window title if widget is not tabbed + @return: pointer to the TWidget, nullptr if none is found Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) -> 'void' formchgcbfa_close(p_fa, close_normally) - p_fa: size_t - close_normally: int + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) -> 'bool' formchgcbfa_enable_field(p_fa, fid, enable) -> bool - p_fa: size_t - fid: int - enable: bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) -> 'PyObject *' formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - p_fa: size_t - fid: int - ft: int - sz: size_t + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) -> 'int' formchgcbfa_get_focused_field(p_fa) -> int - p_fa: size_t + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) -> 'bool' formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - p_fa: size_t - fid: int - x: int - y: int - w: int - h: int + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) -> 'bool' formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - p_fa: size_t - fid: int - ft: int - py_val: PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) -> 'bool' formchgcbfa_set_focused_field(p_fa, fid) -> bool - p_fa: size_t - fid: int + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) -> 'bool' formchgcbfa_show_field(p_fa, fid, show) -> bool - p_fa: size_t - fid: int - show: bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) -> 'void' free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) -> 'void' + gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range. - gen_disasm_text(text, ea1, ea2, truncate_lines) - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) -> 'bool *' - Get an action's checkability ( 'ui_get_action_attr' ). - get_action_checkable(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) -> 'bool *' - Get an action's checked state ( 'ui_get_action_attr' ). - get_action_checked(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) -> 'int *' - Get an action's icon ( 'ui_get_action_attr' ). - get_action_icon(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) -> 'qstring *' - Get an action's label ( 'ui_get_action_attr' ). - get_action_label(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) -> 'qstring *' - Get an action's shortcut ( 'ui_get_action_attr' ). - get_action_shortcut(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) -> 'action_state_t *' - Get an action's state ( 'ui_get_action_attr' ). - get_action_state(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) -> 'qstring *' - Get an action's tooltip ( 'ui_get_action_attr' ). - get_action_tooltip(name) -> str - @param name: the action name (C++: const char *) - @return: success + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) -> 'bool *' - Get an action's visibility ( 'ui_get_action_attr' ). - get_action_visibility(name) -> bool - @param name: the action name (C++: const char *) - @return: success + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) -> 'TWidget *' - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. + get_active_modal_widget() -> TWidget * + Get the current, active modal TWidget instance. Note that in this context, the + "wait dialog" is not considered: this function will return nullptr even if it is + currently shown. + + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) -> 'bool' - Get info about a registered addon with a given product code. info->cb - must be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info(id, info) -> bool - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found + Get info about a registered addon with a given product code. info->cb must be + valid! NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) -> 'bool' - Get info about a registered addon with specific index. info->cb must - be valid! NB: all pointers are invalidated by next call to - register_addon or get_addon_info - get_addon_info_idx(index, info) -> bool - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range + Get info about a registered addon with specific index. info->cb must be valid! + NB: all pointers are invalidated by next call to register_addon or + get_addon_info + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) -> 'PyObject *' - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. + get_chooser_data(chooser_caption, n) -> [str, ...] + Get the text corresponding to the index N in the chooser data. Use -1 to get the + header. - get_chooser_data(chooser_caption, n) -> PyObject * - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) -> 'void *' - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This attemps to find the choser by its title - and, if found, returns the result of calling its - 'chooser_base_t::get_chooser_obj()' method.This is object is chooser- - specific. - get_chooser_obj(chooser_caption) -> void * - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + Get the underlying object of the specified chooser (ui_get_chooser_obj). + + This attemps to find the choser by its title and, if found, returns the result + of calling its chooser_base_t::get_chooser_obj() method. + + @note: This is object is chooser-specific. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) -> 'char const *' - Get current line from the disassemble window ( 'ui_get_curline' ). + get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). + + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) -> 'TWidget *' - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) -> 'TWidget *' - Get a pointer to the current widget ( 'ui_get_current_widget' ). + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) -> 'int *, int *' - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based + + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) -> 'char const *' - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - get_custom_viewer_curline(custom_viewer, mouse) -> char const * - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + Get current line of custom viewer (ui_get_custom_viewer_curline). The returned + line contains color codes + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: get_custom_viewer_location(*args) -> 'bool' - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + Get the current location in a custom viewer (ui_get_custom_viewer_location). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) -> 'int *, int *' - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' - get_custom_viewer_place(custom_viewer, mouse) -> place_t - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + Get current place in a custom viewer (ui_get_curplace). + + See also the more complete get_custom_viewer_location() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param pitem: (C++: const place_t *) a place corresponding to the item + @return: -1 if 'pitem' is not included in the line + -2 if 'pitem' points at the entire line + >= 0 for the X coordinate within the pline, where pitem points Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) -> 'bool' - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - get_ea_viewer_history_info(nback, nfwd, v) -> bool - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - @retval: false - if the given ea viewer does not exist - @retval: true - otherwise + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) -> 'ea_t' + get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view. - get_hexdump_ea(hexdump_num) -> ea_t - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' - get_highlight(v) -> PyObject * + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error. Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) -> 'size_t' + get_kernel_version() -> str Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) -> 'ushort' - Get keyboard key code by its name ( 'ui_get_key_code' ) - get_key_code(keyname) -> ushort - @param keyname (C++: const char *) + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) -> 'ea_t' + get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address. - get_navband_ea(pixel) -> ea_t - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: @@ -57843,150 +56871,170 @@ get_navband_pixel(*args) -> 'bool *' Help on function get_opnum in module ida_kernwin: get_opnum(*args) -> 'int' - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) -> 'qstring *' - Get current line of output window ( 'ui_get_output_curline' ). - get_output_curline(mouse) -> str - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) -> 'int *, int *' - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + get_output_cursor() -> bool + Get coordinates of the output window's cursor (ui_get_output_cursor). + @note: coordinates are 0-based + @note: this function will succeed even if the output window is not visible + + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) -> 'qstring *' - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection Help on function get_place_class in module ida_kernwin: get_place_class(*args) -> 'place_t const *' - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - get_place_class(out_flags, out_sdk_version, id) -> place_t - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + Get information about a previously-registered place_t class. See also + register_place_class(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) -> 'int' - Get the place class ID for the place that has been registered as - 'name'. - get_place_class_id(name) -> int - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) -> 'place_t const *' - See 'get_place_class()' - get_place_class_template(id) -> place_t - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_synced_group in module ida_kernwin: get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with - get_synced_group(w) -> synced_group_t - @param w: the widget (C++: const TWidget *) - @return: the group of widgets/registers, or NULL + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) -> 'int' - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - get_tab_size(path) -> int - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> 'bool' + get_user_input_event(out) -> bool + Get the current user input event (mouse button press, key press, ...) It is + sometimes desirable to be able to tell when a certain situation happens (e.g., + 'view_curpos' gets triggered); this function exists to provide that context (GUI + version only) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) -> 'void' get_user_strlist_options(out) - @param out (C++: strwinsetup_t *) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) -> 'tcc_renderer_type_t' - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - get_view_renderer_type(v) -> tcc_renderer_type_t - @param v (C++: TWidget *) + Get the type of renderer currently in use in the given view + (ui_get_renderer_type) + + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) -> 'tcc_place_type_t' - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - get_viewer_place_type(viewer) -> tcc_place_type_t - @param viewer (C++: TWidget *) + Get the type of place_t instances a viewer uses & creates + (ui_get_viewer_place_type). + + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) -> 'void *' - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - get_viewer_user_data(viewer) -> void * - @param viewer (C++: TWidget *) + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) -> 'qstring *' - Get the TWidget's title ( 'ui_get_widget_title' ). - get_widget_title(widget) -> str - @param widget (C++: TWidget *) + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) -> 'twidget_type_t' - Get the type of the TWidget * ( 'ui_get_widget_type' ). - get_widget_type(widget) -> twidget_type_t - @param widget (C++: TWidget *) + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) -> 'void *' + get_window_id(name=None) -> void * Get the system-specific window ID (GUI version only) - get_window_id(name=None) -> void * - @param name (C++: const char *) - @return: the low-level window ID + @param the: name of the window (nullptr means the main IDA window) + @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) -> 'void' + hide_wait_box() Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -58013,7 +57061,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -58022,184 +57070,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -58211,46 +57264,208 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) - @param format (C++: const char *) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) -> 'int' - Install command line interpreter ( 'ui_install_cli' ) - install_command_interpreter(py_obj) -> int - py_obj: PyObject * + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) -> 'int' internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - @param tmplate (C++: const place_t *) - @param flags (C++: int) - @param owner (C++: const plugin_t *) - @param sdk_version (C++: int) + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) -> 'bool' + is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*. - is_action_enabled(s) -> bool - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) -> 'bool' + is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget? - is_chooser_widget(t) -> bool - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: @@ -58261,32 +57476,33 @@ is_idaq(*args) -> 'bool' Help on function is_idaview in module ida_kernwin: is_idaview(*args) -> 'bool' - Is the given custom view an idaview? ( 'ui_is_idaview' ) - is_idaview(v) -> bool - @param v (C++: TWidget *) + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) -> 'bool' + is_msg_inited() -> bool Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) -> 'bool' - See 'get_place_class()' - is_place_class_ea_capable(id) -> bool - @param id (C++: int) + See get_place_class() + + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) -> 'bool' + is_refresh_requested(mask) -> bool Get a refresh request state - is_refresh_requested(mask) -> bool - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -58301,7 +57517,7 @@ class jobj_wrapper_t(builtins.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) -> 'PyObject *' - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58318,29 +57534,28 @@ class jobj_wrapper_t(builtins.object) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function l_compare2 in module ida_kernwin: l_compare2(*args) -> 'int' l_compare2(t1, t2, ud) -> int - @param t1 (C++: const place_t *) - @param t2 (C++: const place_t *) - @param ud (C++: void *) + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * Help on class line_rendering_output_entries_refs_t in module ida_kernwin: @@ -58351,15 +57566,19 @@ class line_rendering_output_entries_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' | __getitem__(self, i) -> line_rendering_output_entry_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> line_rendering_output_entries_refs_t - | x: qvector< line_rendering_output_entry_t * > const & + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58369,33 +57588,43 @@ class line_rendering_output_entries_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< line_rendering_output_entry_t * > const & + | + | @param r: qvector< line_rendering_output_entry_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: line_rendering_output_entry_t *const & + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & | | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) | delete_line_rendering_output_entries_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & | | _internal_push_back(self, *args) -> 'void' | _internal_push_back(self, e) - | e: line_rendering_output_entry_t * + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | at(self, *args) -> 'line_rendering_output_entry_t *const &' | at(self, _idx) -> line_rendering_output_entry_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58419,40 +57648,45 @@ class line_rendering_output_entries_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator | + | @param it: qvector< line_rendering_output_entry_t * >::iterator | | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator - | first: qvector< line_rendering_output_entry_t * >::iterator - | last: qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator | | extract(self, *args) -> 'line_rendering_output_entry_t **' | extract(self) -> line_rendering_output_entry_t ** | | find(self, *args) -> 'qvector< line_rendering_output_entry_t * >::const_iterator' | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & | + | @param x: line_rendering_output_entry_t *const & | | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: line_rendering_output_entry_t *const & + | + | @param x: line_rendering_output_entry_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: line_rendering_output_entry_t ** - | len: size_t + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator - | it: qvector< line_rendering_output_entry_t * >::iterator - | x: line_rendering_output_entry_t *const & + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -58464,23 +57698,26 @@ class line_rendering_output_entries_refs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: line_rendering_output_entry_t *const & | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< line_rendering_output_entry_t * > & + | + | @param r: qvector< line_rendering_output_entry_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58511,25 +57748,28 @@ class line_rendering_output_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __init__(self, *args) | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _flags: uint32 - | _bg_color: bgcolor_t | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t - | _line: twinline_t const * - | _cpx: int - | _nchars: int - | _flags: uint32 - | _bg_color: bgcolor_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: line_rendering_output_entry_t const & + | + | @param r: line_rendering_output_entry_t const & | | __repr__ = _swig_repr(self) | @@ -58555,19 +57795,19 @@ class line_rendering_output_entry_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | bg_color | | cpx - | line_rendering_output_entry_t_cpx_get(self) -> int + | cpx | | flags - | line_rendering_output_entry_t_flags_get(self) -> uint32 + | flags | | line - | line_rendering_output_entry_t_line_get(self) -> twinline_t + | line | | nchars - | line_rendering_output_entry_t_nchars_get(self) -> int + | nchars | | thisown | The membership flag @@ -58586,7 +57826,8 @@ class linearray_t(builtins.object) | | __init__(self, *args) | __init__(self, _ud) -> linearray_t - | _ud: void * + | + | @param _ud: void * | | __repr__ = _swig_repr(self) | @@ -58594,58 +57835,69 @@ class linearray_t(builtins.object) | delete_linearray_t(self) | | beginning(self, *args) -> 'bool' + | beginning(self) -> bool | Are we at the beginning? | | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * | Get a line from down direction. place is ok BEFORE | | ending(self, *args) -> 'bool' | ending(self) -> bool | | get_bg_color(self, *args) -> 'bgcolor_t' - | Get current background color. (the same behavior as with 'get_place()' - | : good before 'down()' and after 'up()' ) + | get_bg_color(self) -> bgcolor_t + | Get current background color. (the same behavior as with get_place(): good + | before down() and after up()) | | get_dlnnum(self, *args) -> 'int' - | Get default line number. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_dlnnum(self) -> int + | Get default line number. (the same behavior as with get_place(): good before + | down() and after up()) | | get_linecnt(self, *args) -> 'int' + | get_linecnt(self) -> int | Get number of lines for the current place. (the same behavior as with - | 'get_place()' : good before 'down()' and after 'up()' ) + | get_place(): good before down() and after up()) | | get_pfx_color(self, *args) -> 'bgcolor_t' - | Get current prefix color. (the same behavior as with 'get_place()' : - | good before 'down()' and after 'up()' ) + | get_pfx_color(self) -> bgcolor_t + | Get current prefix color. (the same behavior as with get_place(): good before + | down() and after up()) | | get_place(self, *args) -> 'place_t *' - | Get the current place. If called before 'down()' , then returns place - | of line which will be returned by 'down()' . If called after 'up()' , - | then returns place if line returned by 'up()' . + | get_place(self) -> place_t + | Get the current place. If called before down(), then returns place of line which + | will be returned by down(). If called after up(), then returns place if line + | returned by up(). | | set_place(self, *args) -> 'int' - | Position the array. This function must be called before calling any - | other member functions. 'linearray_t' doesn't own 'place_t' - | structures. The caller must take care of 'place_t' objects. - | | set_place(self, new_at) -> int - | @param new_at: new position of the array (C++: const place_t *) - | @return: the delta of lines that the linearray_t had to adjust the - | place by. For example, if the place_t has a lnnum of 5, - | but it turns out, upon generating lines, that the number of - | lines for that particular place is only 2, then 3 will be - | returned. + | Position the array. This function must be called before calling any other member + | functions. + | + | linearray_t doesn't own place_t structures. The caller must take care of place_t + | objects. + | + | @param new_at: (C++: const place_t *) new position of the array + | @return: the delta of lines that the linearray_t had to adjust the place by. + | For example, if the place_t has a lnnum of 5, but it turns out, upon generating + | lines, + | that the number of lines for that particular place is only 2, then 3 will be + | returned. | | set_userdata(self, *args) -> 'void' + | set_userdata(self, userd) | Change the user data. | - | set_userdata(self, userd) - | @param userd (C++: void *) + | @param userd: (C++: void *) | | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * | Get a line from up direction. place is ok AFTER | | userdata(self, *args) -> 'void *' + | userdata(self) -> void * | Get pointer to user data. | | ---------------------------------------------------------------------- @@ -58685,13 +57937,13 @@ class lines_rendering_input_t(builtins.object) | list of weak references to the object (if defined) | | cb - | lines_rendering_input_t_cb_get(self) -> int + | cb | | sections_lines - | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | sections_lines | | sync_group - | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | sync_group | | thisown | The membership flag @@ -58705,14 +57957,16 @@ class lines_rendering_output_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __init__(self, *args) | __init__(self) -> lines_rendering_output_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: lines_rendering_output_t const & + | + | @param r: lines_rendering_output_t const & | | __repr__ = _swig_repr(self) | @@ -58724,7 +57978,8 @@ class lines_rendering_output_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: lines_rendering_output_t &) + | + | @param r: lines_rendering_output_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58736,10 +57991,10 @@ class lines_rendering_output_t(builtins.object) | list of weak references to the object (if defined) | | entries - | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | entries | | flags - | lines_rendering_output_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag @@ -58756,38 +58011,35 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format + Load an icon and return its id (ui_load_custom_icon). - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it + @return: icon id Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) -> 'bool' + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file. - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) -> 'ushort' - Get shortcut code previously created by 'ui_get_key_code' . - lookup_key_code(key, shift, is_qt) -> ushort - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -58800,270 +58052,296 @@ msg(*args) -> 'PyObject *' Help on function msg_clear in module ida_kernwin: msg_clear(*args) -> 'void' + msg_clear() Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) -> 'PyObject *' - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - msg_get_lines(count=-1) -> PyObject * - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) -> 'bool' + msg_save(path) -> bool Save the "Output" window contents into a file - msg_save(path) -> bool - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success + @param path: (C++: qstring &) The path of the file to save the contents into. An empty path means + that the user will be prompted for the destination and, if the file + already exists, the user will be asked to confirm before overriding + its contents. Upon return, 'path' will contain the path that the + user chose. + @return: success Help on function nomem in module ida_kernwin: nomem(*args) -> 'void' nomem(format) - @param format (C++: const char *) + + @param format: char const * Help on function open_bookmarks_window in module ida_kernwin: open_bookmarks_window(*args) -> 'TWidget *' - Open the bookmarks window ( 'ui_open_builtin' ). - open_bookmarks_window(w) -> TWidget * - @param w (C++: TWidget *) - @return: pointer to resulting window + Open the bookmarks window (ui_open_builtin). + + @param ea: index of entry to select by default + @return: pointer to resulting window Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) -> 'TWidget *' - Open the breakpoints window ( 'ui_open_builtin' ). - open_bpts_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) -> 'TWidget *' - Open the function calls window ( 'ui_open_builtin' ). - open_calls_window(ea) -> TWidget * - @param ea (C++: ea_t) - @return: pointer to resulting window + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) -> 'TWidget *' - Open a disassembly view ( 'ui_open_builtin' ). - open_disasm_window(window_title, ranges=None) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) -> 'TWidget *' - Open the enums window ( 'ui_open_builtin' ). - open_enums_window(const_id=BADADDR) -> TWidget * - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) -> 'TWidget *' - Open the exports window ( 'ui_open_builtin' ). - open_exports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_form in module ida_kernwin: open_form(*args) + Display a dockable modeless dialog box and return a handle to it. + + @return: handle to the form or nullptr. the handle can be used with TWidget Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) -> 'TWidget *' - Open the frame window for the given function ( 'ui_open_builtin' ). - open_frame_window(pfn, offset) -> TWidget * - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window if 'pfn' is a valid function and the window + was displayed, + nullptr otherwise Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) -> 'TWidget *' - Open the 'Functions' window ( 'ui_open_builtin' ). - open_funcs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) -> 'TWidget *' - Open a hexdump view ( 'ui_open_builtin' ). - open_hexdump_window(window_title) -> TWidget * - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) -> 'TWidget *' - Open the exports window ( 'ui_open_builtin' ). - open_imports_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) -> 'TWidget *' - Open the local types window ( 'ui_open_builtin' ). - open_loctypes_window(ordinal) -> TWidget * - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) -> 'TWidget *' - Open the modules window ( 'ui_open_builtin' ). + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_names_window in module ida_kernwin: open_names_window(*args) -> 'TWidget *' - Open the names window ( 'ui_open_builtin' ). - open_names_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) -> 'TWidget *' - Open the navigation band window ( 'ui_open_builtin' ). - open_navband_window(ea, zoom) -> TWidget * - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) -> 'TWidget *' - Open the notepad window ( 'ui_open_builtin' ). + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) -> 'TWidget *' - Open the problems window ( 'ui_open_builtin' ). - open_problems_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) -> 'TWidget *' - Open the segments window ( 'ui_open_builtin' ). - open_segments_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) -> 'TWidget *' - Open the segment registers window ( 'ui_open_builtin' ). - open_segregs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) -> 'TWidget *' - Open the selectors window ( 'ui_open_builtin' ). + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) -> 'TWidget *' - Open the signatures window ( 'ui_open_builtin' ). + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) -> 'TWidget *' - Open the call stack window ( 'ui_open_builtin' ). + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) -> 'TWidget *' - Open the 'Strings' window ( 'ui_open_builtin' ). - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) -> 'TWidget *' - Open the structs window ( 'ui_open_builtin' ). - open_structs_window(id=BADADDR, offset=0) -> TWidget * - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) -> 'TWidget *' - Open the threads window ( 'ui_open_builtin' ). + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) -> 'TWidget *' - Open the type libraries window ( 'ui_open_builtin' ). + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) -> 'TWidget *' - Open the tracing window ( 'ui_open_builtin' ). + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window Help on function open_url in module ida_kernwin: open_url(*args) -> 'void' - Open the given url ( 'ui_open_url' ) - open_url(url) - @param url (C++: const char *) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) -> 'TWidget *' - Open the cross references window ( 'ui_open_builtin' ). - open_xrefs_window(ea) -> TWidget * - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -59081,184 +58359,189 @@ class place_t(builtins.object) | delete_place_t(self) | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59270,7 +58553,7 @@ class place_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -59279,38 +58562,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) -> 'enumplace_t *' place_t_as_enumplace_t(p) -> enumplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) -> 'idaplace_t *' place_t_as_idaplace_t(p) -> idaplace_t - p: place_t * + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' place_t_as_simpleline_place_t(p) -> simpleline_place_t - p: place_t * + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) -> 'structplace_t *' place_t_as_structplace_t(p) -> structplace_t - p: place_t * + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) - py_link: PyObject * - options: int + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * - py_link: PyObject * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -59321,10 +58610,11 @@ Help on function plgform_show in module ida_kernwin: plgform_show(*args) -> 'bool' plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool - py_link: PyObject * - py_obj: PyObject * - caption: char const * - options: int + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: @@ -59332,15 +58622,17 @@ process_ui_action(*args) -> 'bool' process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean Help on function py_chooser_base_t_get_row in module ida_kernwin: py_chooser_base_t_get_row(*args) -> 'PyObject *' py_chooser_base_t_get_row(chobj, n) -> PyObject * - chobj: chooser_base_t const * - n: size_t + + @param chobj: chooser_base_t const * + @param n: size_t Help on function py_get_ask_form in module ida_kernwin: @@ -59356,192 +58648,217 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) -> 'int' py_load_custom_icon_data(data, format) -> int - data: PyObject * - format: char const * + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) -> 'int' py_load_custom_icon_fn(filename) -> int - filename: char const * + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) -> 'void' py_register_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) -> 'void' py_ss_restore_callback(err_msg, userdata) - err_msg: char const * - userdata: void * + + @param err_msg: char const * + @param userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) - py_form: PyObject * + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool - self: PyObject * + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) -> 'bool' pyscv_add_line(py_this, py_sl) -> bool - py_this: PyObject * - py_sl: PyObject * + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) -> 'bool' pyscv_del_line(py_this, nline) -> bool - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) -> 'bool' pyscv_edit_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) -> 'PyObject *' pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - py_this: PyObject * - mouse: bool - notags: bool + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) -> 'PyObject *' pyscv_get_current_word(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * - py_this: PyObject * - nline: size_t + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) -> 'PyObject *' pyscv_get_pos(py_this, mouse) -> PyObject * - py_this: PyObject * - mouse: bool + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * - py_link: PyObject * - title: char const * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) -> 'bool' pyscv_insert_line(py_this, nline, py_sl) -> bool - py_this: PyObject * - nline: size_t - py_sl: PyObject * + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool - py_this: PyObject * - ln: size_t - x: int - y: int + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) -> 'bool' pyscv_patch_line(py_this, nline, offs, value) -> bool - py_this: PyObject * - nline: size_t - offs: size_t - value: int + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool - py_this: PyObject * + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) -> 'qstring *' + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str Performs some cleanup operations to a line. - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line + @param cmt_char: (C++: char) character that denotes the start of a comment: + * the entire text is removed if the line begins with this character (ignoring + leading spaces) + * all text after (and including) this character is removed if flag CLNL_FINDCMT + is set + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -59578,14 +58895,13 @@ class quick_widget_commands_t(builtins.object) Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) -> 'ea_t *, ea_t *' - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - read_range_selection(v) -> bool - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - @retval: 0 - no range is selected - @retval: 1 - ok, start ea and end ea are filled + Get the address range for the selected range boundaries, this is the convenient + function for read_selection() + + @param v: (C++: TWidget *) view, nullptr means the last active window containing addresses + @retval 0: no range is selected + @retval 1: ok, start ea and end ea are filled Help on function read_selection in module ida_kernwin: @@ -59617,19 +58933,18 @@ read_selection(*args) -> 'bool' disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) -> 'bool' - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - refresh_chooser(title) -> bool - @param title: title of chooser (C++: const char *) - @return: success + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -59639,82 +58954,87 @@ refresh_choosers(*args) -> 'void' Help on function refresh_custom_viewer in module ida_kernwin: refresh_custom_viewer(*args) -> 'void' - Refresh custom ida viewer ( 'ui_refresh_custom_viewer' ) - refresh_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) -> 'void' - Refresh marked windows ( 'ui_refreshmarked' ) + refresh_idaview() + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) -> 'void' - Refresh navigation band if changed ( 'ui_refresh_navband' ). - refresh_navband(force) - @param force: refresh regardless (C++: bool) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) -> 'bool' - Create a new action ( 'ui_register_action' ). After an action has been - created, it is possible to attach it to menu items ( - 'attach_action_to_menu()' ), or to popup menus ( - 'attach_action_to_popup()' ).Because the actions will need to call the - handler's activate() and update() methods at any time, you shouldn't - build your action handler on the stack.Please see the SDK's "ht_view" - plugin for an example how to register actions. - register_action(desc) -> bool - @param desc: action to register (C++: const action_desc_t &) - @return: success + Create a new action (ui_register_action). After an action has been created, it + is possible to attach it to menu items (attach_action_to_menu()), or to popup + menus (attach_action_to_popup()). + + Because the actions will need to call the handler's activate() and update() + methods at any time, you shouldn't build your action handler on the stack. + + Please see the SDK's "ht_view" plugin for an example how to register actions. + + @param desc: (C++: const action_desc_t &) action to register + @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) -> 'int' - Register an add-on. Show its info in the About box. For plugins, - should be called from init() function (repeated calls with the same - product code overwrite previous entries) returns: index of the add-on - in the list, or -1 on error - register_addon(info) -> int - @param info (C++: const addon_info_t *) + Register an add-on. Show its info in the About box. For plugins, should be + called from init() function (repeated calls with the same product code overwrite + previous entries) returns: index of the add-on in the list, or -1 on error + + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) -> 'bool' - Helper.You are not encouraged to use this, as it mixes flags for both - 'register_action()' , and 'attach_action_to_menu()' .The only reason - for its existence is to make it simpler to port existing plugins to - the new actions API. - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: void *) - @param action_desc_t_flags (C++: int) + Helper. + + You are not encouraged to use this, as it mixes flags for both + register_action(), and attach_action_to_menu(). + + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) -> 'PyObject *' - register_timer(interval, py_callback) -> PyObject * + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param py_callback: A Python callable that takes no parameters and returns an integer. The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval @@ -59723,10 +59043,10 @@ register_timer(*args) -> 'PyObject *' Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) -> 'void' - Remove command line interpreter ( 'ui_install_cli' ) - remove_command_interpreter(cli_idx) - cli_idx: int + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -59737,14 +59057,16 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_pos_info_t const & + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -59761,16 +59083,16 @@ class renderer_pos_info_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -59783,42 +59105,42 @@ class renderer_pos_info_t(builtins.object) Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) -> 'void' - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - repaint_custom_viewer(custom_viewer) - @param custom_viewer (C++: TWidget *) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) -> 'void' + replace_wait_box(format) Replace the label of "Please wait dialog box". - replace_wait_box(format) - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) -> 'void' + request_refresh(mask, cnd=True) Request a refresh of a builtin window. - request_refresh(mask, cnd=True) - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) -> 'PyObject *' - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool + Restore a database snapshot. Note: This call is asynchronous. When it is + completed, the callback will be triggered. - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - pyfunc_or_none: PyObject * - pytuple_or_none: PyObject * - @return: false if restoration could not be started (snapshot file was - not found). If the returned value is True then check if - the operation succeeded from the callback. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was not + found). + If the returned value is True then check if the operation succeeded from the + callback. Help on class section_lines_refs_t in module ida_kernwin: @@ -59829,15 +59151,19 @@ class section_lines_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __getitem__(self, *args) -> 'twinline_t const *const &' | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> section_lines_refs_t - | x: qvector< twinline_t const * > const & + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59847,29 +59173,36 @@ class section_lines_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< twinline_t const * > const & + | + | @param r: qvector< twinline_t const * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const *const & + | + | @param i: size_t + | @param v: twinline_t const *const & | | __swig_destroy__ = delete_section_lines_refs_t(...) | delete_section_lines_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: twinline_t const *const & + | + | Parameters + | ---------- + | x: twinline_t const *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | at(self, *args) -> 'twinline_t const *const &' | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59893,70 +59226,81 @@ class section_lines_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< twinline_t const * >::iterator' | erase(self, it) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator | + | @param it: qvector< twinline_t const * >::iterator | | erase(self, first, last) -> qvector< twinline_t const * >::iterator - | first: qvector< twinline_t const * >::iterator - | last: qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator | | extract(self, *args) -> 'twinline_t const **' | extract(self) -> twinline_t const ** | | find(self, *args) -> 'qvector< twinline_t const * >::const_iterator' | find(self, x) -> qvector< twinline_t const * >::iterator - | x: twinline_t const *const & | + | @param x: twinline_t const *const & | | find(self, x) -> qvector< twinline_t const * >::const_iterator - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: twinline_t const ** - | len: size_t + | + | @param s: twinline_t const ** + | @param len: size_t | | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' | insert(self, it, x) -> qvector< twinline_t const * >::iterator - | it: qvector< twinline_t const * >::iterator - | x: twinline_t const *const & + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'twinline_t const *&' | push_back(self, x) - | x: twinline_t const *const & + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const *const & | + | @param _newsize: size_t + | @param x: twinline_t const *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< twinline_t const * > & + | + | @param r: qvector< twinline_t const * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59987,15 +59331,19 @@ class sections_lines_refs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __getitem__(self, *args) -> 'section_lines_refs_t const &' | __getitem__(self, i) -> section_lines_refs_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sections_lines_refs_t - | x: qvector< section_lines_refs_t > const & + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60005,29 +59353,36 @@ class sections_lines_refs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< section_lines_refs_t > const & + | + | @param r: qvector< section_lines_refs_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: section_lines_refs_t const & + | + | @param i: size_t + | @param v: section_lines_refs_t const & | | __swig_destroy__ = delete_sections_lines_refs_t(...) | delete_sections_lines_refs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: section_lines_refs_t const & + | + | Parameters + | ---------- + | x: section_lines_refs_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | at(self, *args) -> 'section_lines_refs_t const &' | at(self, _idx) -> section_lines_refs_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -60051,74 +59406,86 @@ class sections_lines_refs_t(builtins.object) | | erase(self, *args) -> 'qvector< section_lines_refs_t >::iterator' | erase(self, it) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator | + | @param it: qvector< section_lines_refs_t >::iterator | | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator - | first: qvector< section_lines_refs_t >::iterator - | last: qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator | | extract(self, *args) -> 'section_lines_refs_t *' | extract(self) -> section_lines_refs_t | | find(self, *args) -> 'qvector< section_lines_refs_t >::const_iterator' | find(self, x) -> qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & | + | @param x: section_lines_refs_t const & | | find(self, x) -> qvector< section_lines_refs_t >::const_iterator - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=section_lines_refs_t()) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: section_lines_refs_t * - | len: size_t + | + | @param s: section_lines_refs_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator - | it: qvector< section_lines_refs_t >::iterator - | x: section_lines_refs_t const & + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'section_lines_refs_t &' | push_back(self, x) - | x: section_lines_refs_t const & + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: section_lines_refs_t const & | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< section_lines_refs_t > & + | + | @param r: qvector< section_lines_refs_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -60143,93 +59510,87 @@ class sections_lines_refs_t(builtins.object) Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) -> 'void' - Set "Cancelled" flag ( 'ui_set_cancelled' ) + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) -> 'void *' - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data + Set a handler for a code viewer event (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param handler_or_data: (C++: void *) can be a handler or data. see examples in Functions: + custom viewer handlers + @return: old value of the handler or data Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) -> 'bool' - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_is_source(code_viewer) -> bool - @param code_viewer (C++: TWidget *) + Specify that the given code viewer is used to display source code + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) -> 'void' - Set handlers for code viewer line events. Any of these handlers may be - NULL - set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + Set handlers for code viewer line events. Any of these handlers may be nullptr + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) -> 'bool' - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_alignment(code_viewer, align) -> bool - @param code_viewer (C++: TWidget *) - @param align (C++: int) + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) -> 'bool' - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + Set space allowed for icons in the margin of a code viewer + (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) -> 'bool' - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - set_code_viewer_lines_radix(code_viewer, radix) -> bool - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) -> 'bool' - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - set_code_viewer_user_data(code_viewer, ud) -> bool - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) -> 'bool' - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - set_custom_viewer_qt_aware(custom_viewer) -> bool - @param custom_viewer (C++: TWidget *) + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: @@ -60237,32 +59598,36 @@ set_dock_pos(*args) -> 'bool' set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) -> 'bool' - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - set_highlight(viewer, str, flags) -> bool - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) -> 'PyObject *' - set_nav_colorizer(new_py_colorizer) -> PyObject * + set_nav_colorizer(new_py_colorizer) -> dict or None Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -60288,37 +59653,41 @@ set_nav_colorizer(*args) -> 'PyObject *' return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) -> 'void' - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - set_view_renderer_type(v, rt) - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) -> 'void' - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - show_wait_box(message) - message: char const * + Display a dialog box with "Please wait...". If the text message starts with + "HIDECANCEL\n", the cancel button + won't be added to the dialog box and user_cancelled() will always + return false (but can be caled to refresh UI). + Plugins must call hide_wait_box() to close the dialog box, otherwise + the user interface will remain disabled. + Note that, if the wait dialog is already visible, show_wait_box() will + 1) push the currently-displayed text on a stack + 2) display the new text + Then, when hide_wait_box() is called, if that stack isn't empty its top + label will be popped and restored in the wait dialog. + This implies that a plugin should call hide_wait_box() exactly as many + times as it called show_wait_box(), or the wait dialog might remain + visible and block the UI. + Also, in case the plugin knows the wait dialog is currently displayed, + alternatively it can call replace_wait_box(), to replace the text of the + dialog without pushing the currently-displayed text on the stack. + + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -60372,8 +59741,7 @@ class simplecustviewer_t(builtins.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @return: Returns a tuple (colored_line, fgcolor, bgcolor) or None | | GetLineNo(self, mouse=0) | Calls GetPos() and returns the current line number or -1 on failure @@ -60385,8 +59753,7 @@ class simplecustviewer_t(builtins.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -60466,7 +59833,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -60475,184 +59842,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60664,7 +60036,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -60675,12 +60047,14 @@ class simpleline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | c: color_t - | str: char const * + | __init__(self, c, str) -> simpleline_t | + | @param c: color_t + | @param str: char const * | | __init__(self, str) -> simpleline_t - | str: char const * + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -60697,13 +60071,13 @@ class simpleline_t(builtins.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -60714,28 +60088,30 @@ str2ea(*args) -> 'ea_t' str2ea(str, screenEA=BADADDR) -> ea_t Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) -> 'char const *' - Find a line with the specified code in the 'strarray_t' array. If the - last element of the array has code==0 then it is considered as the - default entry.If no default entry exists and the code is not found, - 'strarray()' returns "". - strarray(array, array_size, code) -> char const * - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + Find a line with the specified code in the strarray_t array. If the last element + of the array has code==0 then it is considered as the default entry. + If no default entry exists and the code is not found, strarray() returns "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -60762,10 +60138,10 @@ class strarray_t(builtins.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -60794,10 +60170,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -60806,184 +60182,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) - | out_buf: qstring * - | ud: void * + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> 'void' - | Adjust the current location to point to a displayable object. This - | function validates the location and makes sure that it points to an - | existing object. For example, if the location points to the middle of - | an instruction, it will be adjusted to point to the beginning of the - | instruction. - | | adjust(self, ud) - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Adjust the current location to point to a displayable object. This function + | validates the location and makes sure that it points to an existing object. For + | example, if the location points to the middle of an instruction, it will be + | adjusted to point to the beginning of the instruction. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool | Are we at the first displayable object?. | - | beginning(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the first displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the first displayable object | | clone(self, *args) -> 'place_t *' + | clone(self) -> place_t | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' + | compare(self, t2) -> int | Deprecated. Please consider compare2(const place_t *, void *) instead. | - | compare(self, t2) -> int - | @param t2 (C++: const place_t *) + | @param t2: (C++: const place_t *) place_t const * | | compare2(self, *args) -> 'int' - | Compare two locations except line numbers (lnnum). This function is - | used to organize loops. For example, if the user has selected an - | range, its boundaries are remembered as location objects. Any - | operation within the selection will have the following look: for ( - | loc=starting_location; loc < ending_location; loc.next() ) In this - | loop, the comparison function is used. - | | compare2(self, t2, arg3) -> int - | @param t2: the place to compare this one to. (C++: const place_t *) - | arg3: void * - | @retval: -1 - if the current location is less than 't2' - | @retval: 0 - if the current location is equal to than 't2' - | @retval: 1 - if the current location is greater than 't2' + | Compare two locations except line numbers (lnnum). This function is used to + | organize loops. For example, if the user has selected an range, its boundaries + | are remembered as location objects. Any operation within the selection will have + | the following look: for ( loc=starting_location; loc < ending_location; + | loc.next() ) In this loop, the comparison function is used. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) | Copy the specified location object to the current object. | - | copyfrom(self, _from) - | @param _from (C++: const place_t *) + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' - | De-serialize into this instance. 'pptr' should be incremented by as - | many bytes as de-serialization consumed. - | | deserialize(self, _in) -> bool - | in: bytevec_t const & - | @return: whether de-serialization was successful + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool | Are we at the last displayable object?. | - | ending(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: true if the current location points to the last displayable - | object + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: true if the current location points to the last displayable object | | enter(self, *args) -> 'place_t *' - | Visit this place, possibly 'unhiding' a section of text. If entering - | that place required some expanding, a 'place_t' should be returned - | that represents that section, plus some flags for later use by ' - | 'leave()' '. - | | enter(self, arg2) -> place_t - | arg2: uint32 * - | @return: a place_t corresponding to the beginning of the section of - | text that had to be expanded. That place_t 's leave() will - | be called with the flags contained in 'out_flags' when the - | user navigates away from it. + | Visit this place, possibly 'unhiding' a section of text. If entering that place + | required some expanding, a place_t should be returned that represents that + | section, plus some flags for later use by 'leave()'. + | + | @param out_flags: flags to be used together with the place_t that is returned, + | in order to restore the section to its original state when + | leave() is called. + | @return: a place_t corresponding to the beginning of the section of text that + | had to be expanded. That place_t's leave() will be called with the + | flags contained in 'out_flags' when the user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) | Generate text lines for the current location. | - | generate(self, ud, maxsize) -> PyObject * - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param maxsize: the maximum number of lines to generate (C++: int) - | @return: number of generated lines + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' - | Get the place's ID (i.e., the value returned by - | 'register_place_class()' ) + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' - | Leave this place, possibly 'hiding' a section of text that was - | previously expanded (at 'enter()' -time.) - | | leave(self, arg2) - | arg2: uint32 + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> 'place_t *' - | Map a number to a location. When the user clicks on the scrollbar and - | drags it, we need to determine the location corresponding to the new - | scrollbar position. This function is used to determine it. It builds a - | location object for the specified 'x' and returns a pointer to it. - | | makeplace(self, ud, x, lnnum) -> place_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @param x: number to map (C++: uval_t) - | @param lnnum: line number to initialize 'lnnum' (C++: int) - | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | Map a number to a location. When the user clicks on the scrollbar and drags it, + | we need to determine the location corresponding to the new scrollbar position. + | This function is used to determine it. It builds a location object for the + | specified 'x' and returns a pointer to it. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> 'char const *' - | Get this place type name. All instances of a given class must return - | the same string. + | name(self) -> char const * + | Get this place type name. All instances of a given class must return the same + | string. + | + | @return: the place type name. Please try and pick something that is not too + | generic, as it might clash w/ other plugins. A good practice is to + | prefix the class name with the name of your plugin. E.g., + | "myplugin:srcplace_t". | | next(self, *args) -> 'bool' + | next(self, ud) -> bool | Move to the next displayable location. | - | next(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool | Move to the previous displayable location. | - | prev(self, ud) -> bool - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) - | @return: success + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool | Rebase the place instance | - | rebase(self, arg2) -> bool - | arg2: segm_move_infos_t const & - | @return: true if place was rebased, false otherwise + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> 'void' - | Serialize this instance. It is fundamental that all instances of a - | particular subclass of of 'place_t' occupy the same number of bytes - | when serialized. + | serialize(self) + | Serialize this instance. It is fundamental that all instances of a particular + | subclass of of place_t occupy the same number of bytes when serialized. | | toea(self, *args) -> 'ea_t' + | toea(self) -> ea_t | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' - | Map the location to a number. This mapping is used to draw the - | vertical scrollbar. - | | touval(self, ud) -> uval_t - | @param ud: pointer to user-defined context data. Is supplied by - | linearray_t (C++: void *) + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t - | p: place_t * + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t - | p: place_t * + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t - | p: place_t * + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t - | p: place_t * + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -60995,7 +60376,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -61006,19 +60387,22 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t - | _view: TWidget const * | + | @param _view: TWidget const * | | __init__(self, _regname) -> sync_source_t - | _regname: char const * + | + | @param _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool - | _o: sync_source_t const & + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -61063,15 +60447,19 @@ class sync_source_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) -> 'sync_source_t const &' | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sync_source_vec_t - | x: qvector< sync_source_t > const & + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61081,36 +60469,42 @@ class sync_source_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | __swig_destroy__ = delete_sync_source_vec_t(...) | delete_sync_source_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) -> 'sync_source_t const &' | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61123,65 +60517,68 @@ class sync_source_vec_t(builtins.object) | | end(self, *args) -> 'qvector< sync_source_t >::const_iterator' | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) -> 'qvector< sync_source_t >::iterator' | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) -> 'sync_source_t *' | extract(self) -> sync_source_t | | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< sync_source_t >::iterator' | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'void' | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61206,13 +60603,13 @@ class sync_source_vec_t(builtins.object) Help on function sync_sources in module ida_kernwin: sync_sources(*args) -> 'bool' + sync_sources(what, _with, sync) -> bool [Un]synchronize sources - sync_sources(what, _with, sync) -> bool - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success Help on class synced_group_t in module ida_kernwin: @@ -61236,15 +60633,18 @@ class synced_group_t(sync_source_vec_t) | | has(self, *args) -> 'bool' | has(self, ss) -> bool - | @param ss (C++: const sync_source_t &) + | + | @param ss: sync_source_t const & | | has_register(self, *args) -> 'bool' | has_register(self, r) -> bool - | @param r (C++: const char *) + | + | @param r: char const * | | has_widget(self, *args) -> 'bool' | has_widget(self, v) -> bool - | @param v (C++: const TWidget *) + | + | @param v: TWidget const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61257,11 +60657,13 @@ class synced_group_t(sync_source_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __getitem__(self, *args) -> 'sync_source_t const &' | __getitem__(self, i) -> sync_source_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61271,31 +60673,37 @@ class synced_group_t(sync_source_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< sync_source_t > const & + | + | @param r: qvector< sync_source_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: sync_source_t const & + | + | @param i: size_t + | @param v: sync_source_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: sync_source_t const & + | + | Parameters + | ---------- + | x: sync_source_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | at(self, *args) -> 'sync_source_t const &' | at(self, _idx) -> sync_source_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' | begin(self) -> sync_source_t - | begin(self) -> sync_source_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61308,61 +60716,63 @@ class synced_group_t(sync_source_vec_t) | | end(self, *args) -> 'qvector< sync_source_t >::const_iterator' | end(self) -> sync_source_t - | end(self) -> sync_source_t | | erase(self, *args) -> 'qvector< sync_source_t >::iterator' | erase(self, it) -> sync_source_t - | it: qvector< sync_source_t >::iterator | + | @param it: qvector< sync_source_t >::iterator | | erase(self, first, last) -> sync_source_t - | first: qvector< sync_source_t >::iterator - | last: qvector< sync_source_t >::iterator + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator | | extract(self, *args) -> 'sync_source_t *' | extract(self) -> sync_source_t | | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' | find(self, x) -> sync_source_t - | x: sync_source_t const & | - | - | find(self, x) -> sync_source_t - | x: sync_source_t const & + | @param x: sync_source_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: sync_source_t * - | len: size_t + | + | @param s: sync_source_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< sync_source_t >::iterator' | insert(self, it, x) -> sync_source_t - | it: qvector< sync_source_t >::iterator - | x: sync_source_t const & + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'void' | push_back(self, x) - | x: sync_source_t const & + | + | @param x: sync_source_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< sync_source_t > & + | + | @param r: qvector< sync_source_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61384,12 +60794,13 @@ class synced_group_t(sync_source_vec_t) Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) -> 'PyObject *' - Take a database snapshot ( 'ui_take_database_snapshot' ). + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - take_database_snapshot(ss) -> PyObject * - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success Help on class text_t in module ida_kernwin: @@ -61400,11 +60811,14 @@ class text_t(builtins.object) | | __getitem__(self, *args) -> 'twinline_t const &' | __getitem__(self, i) -> twinline_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> text_t - | x: qvector< twinline_t > const & + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61416,22 +60830,23 @@ class text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: twinline_t const & + | + | @param i: size_t + | @param v: twinline_t const & | | __swig_destroy__ = delete_text_t(...) | delete_text_t(self) | | at(self, *args) -> 'twinline_t const &' | at(self, _idx) -> twinline_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' | begin(self) -> twinline_t - | begin(self) -> twinline_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -61444,16 +60859,16 @@ class text_t(builtins.object) | | end(self, *args) -> 'qvector< twinline_t >::const_iterator' | end(self) -> twinline_t - | end(self) -> twinline_t | | erase(self, *args) -> 'qvector< twinline_t >::iterator' | erase(self, it) -> twinline_t - | it: qvector< twinline_t >::iterator | + | @param it: qvector< twinline_t >::iterator | | erase(self, first, last) -> twinline_t - | first: qvector< twinline_t >::iterator - | last: qvector< twinline_t >::iterator + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator | | extract(self, *args) -> 'twinline_t *' | extract(self) -> twinline_t @@ -61463,47 +60878,56 @@ class text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=twinline_t()) - | x: twinline_t const & + | + | @param x: twinline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: twinline_t * - | len: size_t + | + | @param s: twinline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< twinline_t >::iterator' | insert(self, it, x) -> twinline_t - | it: qvector< twinline_t >::iterator - | x: twinline_t const & + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'twinline_t &' | push_back(self, x) - | x: twinline_t const & + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: twinline_t const & | + | @param _newsize: size_t + | @param x: twinline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< twinline_t > & + | + | @param r: qvector< twinline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61637,8 +61061,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -61649,58 +61074,67 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' textctrl_info_t_get_clink(_self) -> textctrl_info_t * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' textctrl_info_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) -> 'unsigned int' textctrl_info_t_get_flags(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) -> 'unsigned int' textctrl_info_t_get_tabsize(_self) -> unsigned int - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) -> 'char const *' textctrl_info_t_get_text(_self) -> char const * - self: PyObject * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) -> 'bool' textctrl_info_t_set_flags(_self, flags) -> bool - self: PyObject * - flags: unsigned int + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) -> 'bool' textctrl_info_t_set_tabsize(_self, tabsize) -> bool - self: PyObject * - tabsize: unsigned int + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) -> 'bool' textctrl_info_t_set_text(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on class twinline_t in module ida_kernwin: @@ -61711,9 +61145,11 @@ class twinline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> twinline_t - | t: place_t * - | pc: color_t - | bc: bgcolor_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t | | __repr__ = _swig_repr(self) | @@ -61730,19 +61166,19 @@ class twinline_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinline_t_at_get(self) -> place_t + | at | | bg_color - | twinline_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | twinline_t_is_default_get(self) -> bool + | is_default | | line - | twinline_t_line_get(self) -> qstring * + | line | | prefix_color - | twinline_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -61756,12 +61192,14 @@ class twinpos_t(builtins.object) | | __init__(self, *args) | __init__(self) -> twinpos_t - | t: place_t * + | __init__(self, t) -> twinpos_t | + | @param t: place_t * | | __init__(self, t, x0) -> twinpos_t - | t: place_t * - | x0: int + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -61788,32 +61226,28 @@ class twinpos_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int + | x Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) -> 'bool' - Display a load file dialog and load file ( 'ui_load_file' ). - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - @retval: true - file was successfully loaded - @retval: false - otherwise + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param ploaders: (C++: load_info_t **) list of loaders which accept file, may be changed for loaders + of temp_file + @retval true: file was successfully loaded + @retval false: otherwise Help on class ui_requests_t in module ida_kernwin: @@ -61845,29 +61279,29 @@ class ui_requests_t(builtins.object) Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) -> 'bool' - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) -> 'void' - Unmark selection ( 'ui_unmarksel' ) + unmark_selection() + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) -> 'bool' - Delete a previously-registered action ( 'ui_unregister_action' ). - unregister_action(name) -> bool - @param name: name of action (C++: const char *) - @return: success + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success Help on function unregister_timer in module ida_kernwin: @@ -61882,87 +61316,91 @@ unregister_timer(*args) -> 'bool' Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) -> 'bool' - Update an action's checkability ( 'ui_update_action_attr' ). - update_action_checkable(name, checkable) -> bool - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) -> 'bool' - Update an action's checked state ( 'ui_update_action_attr' ). - update_action_checked(name, checked) -> bool - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) -> 'bool' - Update an action's icon ( 'ui_update_action_attr' ). - update_action_icon(name, icon) -> bool - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) -> 'bool' - Update an action's label ( 'ui_update_action_attr' ). - update_action_label(name, label) -> bool - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) -> 'bool' - Update an action's shortcut ( 'ui_update_action_attr' ). - update_action_shortcut(name, shortcut) -> bool - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) -> 'bool' - Update an action's state ( 'ui_update_action_attr' ). - update_action_state(name, state) -> bool - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) -> 'bool' - Update an action's tooltip ( 'ui_update_action_attr' ). - update_action_tooltip(name, tooltip) -> bool - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) -> 'bool' - Update an action's visibility ( 'ui_update_action_attr' ). - update_action_visibility(name, visible) -> bool - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) -> 'bool' - Test the ctrl-break flag ( 'ui_test_cancelled' ). + user_cancelled() -> bool + Test the ctrl-break flag (ui_test_cancelled). + @retval 1: Ctrl-Break is detected, a message is displayed + @retval 2: Ctrl-Break is detected again, a message is not displayed + @retval 0: Ctrl-Break is not detected Help on class view_mouse_event_location_t in module ida_kernwin: @@ -61989,10 +61427,10 @@ class view_mouse_event_location_t(builtins.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -62022,28 +61460,28 @@ class view_mouse_event_t(builtins.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y Help on function warning in module ida_kernwin: @@ -62057,1426 +61495,16 @@ warning(*args) -> 'void' The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION -""" -'cur_enum_member' and 'dirtree_selection' fields are present -""" - -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_HAS_SOURCE -""" -'source' field is present -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_GLOBAL -""" -Register the action globally, so that it's available even if no IDB is -present -""" - -ida_kernwin.ADF_NO_HIGHLIGHT -""" -After activating, do not update the highlight according to what's -under the cursor (listings only.) -""" - -ida_kernwin.ADF_NO_UNDO -""" -the action does not create an undo point. useful for actions that do -not modify the database. -""" - -ida_kernwin.ADF_OT_MASK -""" -Owner type mask. -""" - -ida_kernwin.ADF_OT_PLUGIN -""" -Owner is a 'plugin_t' . -""" - -ida_kernwin.ADF_OT_PLUGMOD -""" -Owner is a 'plugmod_t' . -""" - -ida_kernwin.ADF_OT_PROCMOD -""" -Owner is a 'procmod_t' . -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BOOKMARKS -""" -a persistent 'Bookmarks' widget -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -tracing view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CDVF_LINEICONS -""" -icons can be drawn over the line control -""" - -ida_kernwin.CDVF_NOLINES -""" -don't show line numbers -""" - -ida_kernwin.CDVF_STATUSBAR -""" -keep the status bar in the custom viewer -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_DRAGHINT -""" -the column number that will be used to build hints for the dragging -undo label. This should be provided for at most one column for any -given chooser. -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_INODENAME -""" -if CH_HAS_DIRTREE has been specified, this instructs the chooser that -this column shows the inode name. This should be provided for at most -one column for any given chooser. -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_HAS_DIFF -""" -The chooser can be used in a diffing/merging workflow. -""" - -ida_kernwin.CH_HAS_DIRTREE -""" -The chooser can provide a 'dirtree_t' , meaning a tree-like structure -can be provided to the user (instead of a flat table) -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_FILTER -""" -The chooser will not have filtering abilities. -""" - -ida_kernwin.CH_NO_SORT -""" -The chooser will not have sorting abilities. -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RENAME_IS_EDIT -""" -triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call -the edit() callback for the corresponding row. -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CH_TM_FOLDERS_ONLY -""" -chooser will show in folders-only mode -""" - -ida_kernwin.CH_TM_FULL_TREE -""" -chooser will show in no-tree mode -""" - -ida_kernwin.CH_TM_NO_TREE -""" -chooser will show up in no-tree mode -""" - -ida_kernwin.CK_EXTRA1 -""" -extra background overlay #1 -""" - -ida_kernwin.CK_EXTRA10 -""" -extra background overlay #10 -""" - -ida_kernwin.CK_EXTRA11 -""" -extra background overlay #11 -""" - -ida_kernwin.CK_EXTRA12 -""" -extra background overlay #12 -""" - -ida_kernwin.CK_EXTRA13 -""" -extra background overlay #13 -""" - -ida_kernwin.CK_EXTRA14 -""" -extra background overlay #14 -""" - -ida_kernwin.CK_EXTRA15 -""" -extra background overlay #15 -""" - -ida_kernwin.CK_EXTRA16 -""" -extra background overlay #16 -""" - -ida_kernwin.CK_EXTRA2 -""" -extra background overlay #2 -""" - -ida_kernwin.CK_EXTRA3 -""" -extra background overlay #3 -""" - -ida_kernwin.CK_EXTRA4 -""" -extra background overlay #4 -""" - -ida_kernwin.CK_EXTRA5 -""" -extra background overlay #5 -""" - -ida_kernwin.CK_EXTRA6 -""" -extra background overlay #6 -""" - -ida_kernwin.CK_EXTRA7 -""" -extra background overlay #7 -""" - -ida_kernwin.CK_EXTRA8 -""" -extra background overlay #8 -""" - -ida_kernwin.CK_EXTRA9 -""" -extra background overlay #9 -""" - -ida_kernwin.CK_TRACE -""" -traced address -""" - -ida_kernwin.CK_TRACE_OVL -""" -overlay trace address -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.CVNF_ACT -""" -activate (i.e., switch to) the viewer. Activation is performed before -the new 'lochist_entry_t' instance is actually copied to the viewer's -'lochist_t' (otherwise, if the viewer was invisible its -on_location_changed() handler wouldn't be called.) -""" - -ida_kernwin.CVNF_JUMP -""" -push the current position in this viewer's 'lochist_t' before going to -the new location -""" - -ida_kernwin.CVNF_LAZY -""" -try and move the cursor to a line displaying the 'place_t' if -possible. This might disregard the Y position in case of success -""" - -ida_kernwin.DP_BEFORE -""" -place src_form before dst_form in the tab bar instead of after used -with 'DP_INSIDE' . -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_SZHINT -""" -When floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IDCHK_ARG -""" -bad argument(s) -""" - -ida_kernwin.IDCHK_KEY -""" -bad hotkey name -""" - -ida_kernwin.IDCHK_MAX -""" -too many IDC hotkeys -""" - -ida_kernwin.IDCHK_OK -""" -ok -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BOOKMARKS -""" -bookmarks list (59) -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -tracing view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.LROEF_CPS_RANGE -""" -background for range of chars -""" - -ida_kernwin.LROEF_FULL_LINE -""" -full line background -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. the request must be created using -the 'new' operator to use it with this flag. it can be used in -'cancel_exec_request()' . This flag can be used to delay the code -execution until the next UI loop run even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.PCF_EA_CAPABLE -""" -toea() implementation returns meaningful data -""" - -ida_kernwin.PCF_MAKEPLACE_ALLOCATES -""" -makeplace() returns a freshly allocated (i.e., non-static) instance. -All new code should pass that flag to 'register_place_class()' , and -the corresponding makeplace() class implementation should return new -instances. -""" - -ida_kernwin.RENADDR_HR -""" -dialog for "Pseudocode" additional flags: 0x01 Library function 0x02 -Mark as decompiled -""" - -ida_kernwin.RENADDR_IDA -""" -dialog for "IDA View" -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.SVF_COPY_LINES -""" -keep a local copy of '*lines' -""" - -ida_kernwin.SVF_LINES_BYPTR -""" -remember the 'lines' ptr. do not make a copy of '*lines' -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -do not remember the current address in the navigation history -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" - -ida_kernwin.WCLS_DELETE_LATER -""" -assign the deletion of the widget to the UI loop ///< -""" - -ida_kernwin.WCLS_DONT_SAVE_SIZE -""" -don't save size of the window -""" - -ida_kernwin.WCLS_NO_CONTEXT -""" -don't change the current context (useful for toolbars) -""" - -ida_kernwin.WCLS_SAVE -""" -save state in desktop config -""" - -ida_kernwin.WOPN_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will close -""" - -ida_kernwin.WOPN_DP_BEFORE -""" -place widget before dst_form in the tab bar instead of after used with -'WOPN_DP_INSIDE' and 'WOPN_DP_TAB' -""" - -ida_kernwin.WOPN_DP_BOTTOM -""" -Dock widget below dest_ctrl. -""" - -ida_kernwin.WOPN_DP_FLOATING -""" -Make widget floating. -""" - -ida_kernwin.WOPN_DP_INSIDE -""" -Create a new tab bar with both widget and dest_ctrl. -""" - -ida_kernwin.WOPN_DP_LEFT -""" -Dock widget to the left of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_RIGHT -""" -Dock widget to the right of dest_ctrl. -""" - -ida_kernwin.WOPN_DP_SZHINT -""" -when floating or in a splitter (i.e., not tabbed), use the widget's -size hint to determine the best geometry (Qt only) -""" - -ida_kernwin.WOPN_DP_TAB -""" -Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab -bar (otherwise the same as 'WOPN_DP_INSIDE' ) -""" - -ida_kernwin.WOPN_DP_TOP -""" -Dock widget above dest_ctrl. +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.WOPN_NOT_CLOSED_BY_ESC -""" -override idagui.cfg:CLOSED_BY_ESC: esc will not close -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.WOPN_PERSIST -""" -widget will remain available when starting or stopping debugger -sessions -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.WOPN_RESTORE -""" -if the widget was the only widget in a floating area the last time it -was closed, it will be restored as floating, with the same -position+size as before -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -63487,246 +61515,247 @@ COLSTR(str, tag) Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) -> 'bool' + add_extra_cmt(ea, isprev, format) -> bool Add anterior/posterior comment line(s). - add_extra_cmt(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) -> 'bool' + add_extra_line(ea, isprev, format) -> bool Add anterior/posterior non-comment line(s). - add_extra_line(ea, isprev, format) -> bool - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) -> 'bool' + add_pgm_cmt(format) -> bool Add anterior comment line(s) at the start of program. - add_pgm_cmt(format) -> bool - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function calc_bg_color in module ida_lines: calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t Get background color for line at 'ea' - calc_bg_color(ea) -> bgcolor_t - @param ea (C++: ea_t) - @return: RGB color + @param ea: (C++: ea_t) + @return: RGB color Help on function calc_prefix_color in module ida_lines: calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t Get prefix color for line at 'ea' - calc_prefix_color(ea) -> color_t - @param ea (C++: ea_t) - @return: Line prefix colors + @param ea: (C++: ea_t) + @return: Line prefix colors Help on function create_encoding_helper in module ida_lines: create_encoding_helper(*args) -> 'encoder_t *' create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - encidx: int - nr: enum encoder_t::notify_recerr_t + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function delete_extra_cmts in module ida_lines: delete_extra_cmts(*args) -> 'void' delete_extra_cmts(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) -> 'qstring *' generate_disasm_line(ea, flags=0) -> str - ea: ea_t - flags: int + + @param ea: ea_t + @param flags: int Help on function generate_disassembly in module ida_lines: generate_disassembly(*args) -> 'PyObject *' - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) Generate disassembly lines (many lines) and put them into a buffer @param ea: address to generate disassembly for @param max_lines: how many lines max to generate @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_first_free_extra_cmtidx in module ida_lines: get_first_free_extra_cmtidx(*args) -> 'int' get_first_free_extra_cmtidx(ea, start) -> int - ea: ea_t - start: int + + @param ea: ea_t + @param start: int Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function install_user_defined_prefix in module ida_lines: install_user_defined_prefix(*args) -> 'bool' - User-defined line-prefixes are displayed just after the autogenerated - line prefixes in the disassembly listing. There is no need to call - this function explicitly. Use the 'user_defined_prefix_t' class. - install_user_defined_prefix(prefix_len, udp, owner) -> bool - @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: - size_t) - @param udp: object to generate user-defined prefix (C++: struct - user_defined_prefix_t *) - @param owner: pointer to the plugin_t that owns UDP if non-NULL, - then the object will be uninstalled and destroyed when - the plugin gets unloaded (C++: const void *) + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded Help on function requires_color_esc in module ida_lines: requires_color_esc(c) Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean + Is the given char a color escape character? Help on function set_user_defined_prefix in module ida_lines: set_user_defined_prefix(*args) -> 'PyObject *' - set_user_defined_prefix(width, pycb) -> PyObject * + set_user_defined_prefix(width, pycb) -> bool Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * Help on function tag_addr in module ida_lines: tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * Insert an address mark into a string. - tag_addr(ea) -> PyObject * - @param ea: address to include (C++: ea_t) + @param ea: (C++: ea_t) address to include Help on function tag_advance in module ida_lines: tag_advance(*args) -> 'int' - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - tag_advance(line, cnt) -> int - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer Help on function tag_remove in module ida_lines: tag_remove(*args) -> 'PyObject *' - Remove color escape sequences from a string. + tag_remove(nonnul_instr) -> str - tag_remove(nonnul_instr) -> PyObject * - nonnul_instr: char const * - @return: length of resulting string, -1 if error + @param nonnul_instr: char const * Help on function tag_skipcode in module ida_lines: tag_skipcode(*args) -> 'int' - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - tag_skipcode(line) -> int - @param line (C++: const char *) - @return: moved pointer + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer Help on function tag_skipcodes in module ida_lines: tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int Move the pointer past all color codes. - tag_skipcodes(line) -> int - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr Help on function tag_strlen in module ida_lines: tag_strlen(*args) -> 'ssize_t' - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - tag_strlen(line) -> ssize_t - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on class user_defined_prefix_t in module ida_lines: @@ -63739,8 +61768,9 @@ class user_defined_prefix_t(builtins.object) | | __init__(self, *args) | __init__(self, prefix_len, owner) -> user_defined_prefix_t - | prefix_len: size_t - | owner: void const * + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | @@ -63748,18 +61778,18 @@ class user_defined_prefix_t(builtins.object) | delete_user_defined_prefix_t(self) | | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) | This callback must be overridden by the derived class. | - | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) - | @param ea: the current address (C++: ea_t) - | @param insn: the current instruction. if the current item is not an - | instruction, then insn.itype is zero. - an - | ida_ua.insn_t, or an address (C++: const insn_t &) - | @param lnnum (C++: int) - | @param indent: see explanations for gen_printf() (C++: int) - | @param line: the line to be generated. the line usually contains color - | tags. this argument can be examined to decide whether to - | generate the prefix. (C++: const char *) + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63773,488 +61803,201 @@ class user_defined_prefix_t(builtins.object) | thisown | The membership flag -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.COLOR_CODE -""" -Single instruction. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.COLOR_CURITEM -""" -Current item. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.COLOR_CURLINE -""" -Current line. -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.COLOR_DATA -""" -Data bytes. -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Escape character (OFF). Followed by a color code ( 'color_t' ). -""" - -ida_lines.COLOR_ON -""" -Escape character (ON). Followed by a color code ( 'color_t' ). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) -> 'int' - Unload database to a binary file. This function works for wide byte - processors too. - base2file(fp, pos, ea1, ea2) -> int - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) -> 'bool' + build_snapshot_tree(root) -> bool Build the snapshot tree. - build_snapshot_tree(root) -> bool - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) -> 'void' clr_database_flag(dbfl) - @param dbfl (C++: uint32) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) -> 'PyObject *' - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - extract_module_from_archive(fname, is_remote=False) -> PyObject * - fname: char const * - @param is_remote: is the input file remote? (C++: bool) - @retval: true - ok - @retval: false - something bad happened (error message has been - displayed to the user) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) -> 'int' - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it - enabled).The storage type of the specified range will be changed to - STT_VA. - file2base(li, pos, ea1, ea2, patchable) -> int - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - @retval: 1 - ok - @retval: 0 - read error, a warning is displayed + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) -> 'plugin_t *' + find_plugin(name, load_if_needed=False) -> plugin_t * Find a user-defined plugin and optionally load it. - find_plugin(name, load_if_needed=False) -> plugin_t * - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) -> 'int' + flush_buffers() -> int Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) -> 'int' + gen_exe_file(fp) -> int Generate an exe file (unload the database in binary form). - gen_exe_file(fp) -> int - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - @retval: 1 - ok - @retval: 0 - failed + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) -> 'int' - Generate an output file. 'OFILE_EXE' : - gen_file(otype, fp, ea1, ea2, flags) -> int - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - @retval: 0 - can't generate exe file - @retval: 1 - ok + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) -> 'filetype_t' - Get the input file type. This function can recognize libraries and zip - files. - get_basic_file_type(li) -> filetype_t - @param li (C++: linput_t *) + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) -> 'char const *' + get_elf_debug_file_directory() -> char const * Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) -> 'size_t' + get_file_type_name() -> str Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. + + @return: size of answer, this function always succeeds Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) -> 'ea_t' - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - get_fileregion_ea(offset) -> ea_t - @param offset (C++: qoff64_t) + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) -> 'qoff64_t' - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - get_fileregion_offset(ea) -> qoff64_t - @param ea (C++: ea_t) + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) -> 'char const *' + get_path(pt) -> char const * Get the file path - get_path(pt) -> char const * - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) -> 'char const *' - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - get_plugin_options(plugin) -> char const * - @param plugin (C++: const char *) + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -64281,22 +62024,22 @@ class idp_desc_t(builtins.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -64326,13 +62069,13 @@ class idp_name_t(builtins.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -64340,71 +62083,69 @@ class idp_name_t(builtins.object) Help on function is_database_flag in module ida_loader: is_database_flag(*args) -> 'bool' + is_database_flag(dbfl) -> bool Get the current database flag - is_database_flag(dbfl) -> bool - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) -> 'bool' + is_trusted_idb() -> bool Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) -> 'bool' - Load a binary file into the database. This function usually is called - from ui. - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - @retval: true - ok - @retval: false - failed (couldn't open the file) + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) -> 'int' - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - load_ids_module(fname) -> int - @param fname: name of file to apply (C++: char *) - @retval: 1 - ok - @retval: 0 - some error (a message is displayed). if the ids file does - not exist, no message is displayed + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) -> 'PyObject *' - load_plugin(name) -> PyObject * + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -64432,25 +62173,25 @@ class loader_t(builtins.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version Help on function mem2base in module ida_loader: mem2base(*args) -> 'int' mem2base(py_mem, ea, fpos=-1) -> int Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -64478,37 +62219,37 @@ class plugin_info_t(builtins.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -64516,18 +62257,16 @@ class plugin_info_t(builtins.object) Help on function process_archive in module ida_loader: process_archive(*args) -> 'qstring *' - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter: + + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) pointer to load_info_t structure. Help on class qvector_snapshotvec_t in module ida_loader: @@ -64538,15 +62277,19 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | x: qvector< snapshot_t * > const & + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64556,29 +62299,36 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< snapshot_t * > const & + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: snapshot_t *const & + | + | @param i: size_t + | @param v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: snapshot_t *const & + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64602,70 +62352,81 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator | + | @param it: qvector< snapshot_t * >::iterator | | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | first: qvector< snapshot_t * >::iterator - | last: qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) -> 'snapshot_t **' | extract(self) -> snapshot_t ** | | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' | find(self, x) -> qvector< snapshot_t * >::iterator - | x: snapshot_t *const & | + | @param x: snapshot_t *const & | | find(self, x) -> qvector< snapshot_t * >::const_iterator - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: snapshot_t ** - | len: size_t + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | it: qvector< snapshot_t * >::iterator - | x: snapshot_t *const & + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) - | x: snapshot_t *const & + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: snapshot_t *const & | + | @param _newsize: size_t + | @param x: snapshot_t *const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< snapshot_t * > & + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64690,57 +62451,81 @@ class qvector_snapshotvec_t(builtins.object) Help on function reload_file in module ida_loader: reload_file(*args) -> 'bool' - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - reload_file(file, is_remote) -> bool - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) -> 'bool' run_plugin(plg, arg) -> bool Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) -> 'bool' - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - save_database(outfile, flags, root=None, attr=None) -> bool - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) -> 'void' + set_database_flag(dbfl, cnd=True) Set or clear database flag - set_database_flag(dbfl, cnd=True) - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) -> 'void' + set_path(pt, path) Set the file path - set_path(pt, path) - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -64751,30 +62536,36 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: snapshot_t const & + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -64794,19 +62585,19 @@ class snapshot_t(builtins.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -64816,206 +62607,10 @@ class snapshot_t(builtins.object) | | __hash__ = None -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_moves"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -the data is kept in some encoded form in the file. -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" -'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" -'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" -'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" -'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" -'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" -'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" -'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" -'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -for 'load_binary_file()' : load as a code segment -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -This is the first file loaded into the database. -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place:don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(builtins.object) @@ -65033,45 +62628,52 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool - | out_entry: lochist_entry_t * - | out_desc: qstring * - | index: uint32 * - | ud: void * + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool - | e: lochist_entry_t const & - | index: uint32 - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | get_dirtree_id(*args) -> 'dirtree_id_t' | get_dirtree_id(e, ud) -> dirtree_id_t - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 - | e: lochist_entry_t const & - | index: uint32 - | title: char const * - | desc: char const * - | ud: void * + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 - | e: lochist_entry_t const & - | ud: void * + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65089,57 +62691,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) -> 'uint32' bookmarks_t_find_index(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) -> 'bool' bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - out_entry: lochist_entry_t * - out_desc: qstring * - index: uint32 * - ud: void * + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) -> 'qstring *' bookmarks_t_get_desc(e, index, ud) -> str - e: lochist_entry_t const & - index: uint32 - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_get_dirtree_id in module ida_moves: bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) -> 'uint32' bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - e: lochist_entry_t const & - index: uint32 - title: char const * - desc: char const * - ud: void * + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 - e: lochist_entry_t const & - ud: void * + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -65150,14 +62759,16 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: graph_location_info_t const & + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -65174,16 +62785,16 @@ class graph_location_info_t(builtins.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -65199,12 +62810,14 @@ class lochist_entry_t(builtins.object) | | __init__(self, *args) | __init__(self) -> lochist_entry_t - | p: place_t const * - | r: renderer_info_t const & + | __init__(self, p, r) -> lochist_entry_t | + | @param p: place_t const * + | @param r: renderer_info_t const & | | __init__(self, other) -> lochist_entry_t - | other: lochist_entry_t const & + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -65213,22 +62826,22 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) - | @param in_p (C++: place_t *) + | + | @param in_p: place_t * | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool | | place(self, *args) -> 'place_t *' | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) -> 'renderer_info_t &' | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) -> 'void' | set_place(self, p) - | @param p (C++: const place_t *) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65240,10 +62853,10 @@ class lochist_entry_t(builtins.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag @@ -65265,8 +62878,9 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) -> 'void' | clear(self) @@ -65276,13 +62890,15 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool - | @param cnt (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) -> 'bool' | get(self, out, index) -> bool - | @param out (C++: lochist_entry_t *) - | @param index (C++: uint32) + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -65295,18 +62911,20 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool - | @param stream_name (C++: const char *) - | @param _defpos (C++: const place_t *) - | @param _ud (C++: void *) - | @param _flags (C++: uint32) + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) -> 'bool' | is_history_enabled(self) -> bool | | jump(self, *args) -> 'void' | jump(self, try_to_unhide, e) - | @param try_to_unhide (C++: bool) - | @param e (C++: const lochist_entry_t &) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -65316,17 +62934,20 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool - | @param index (C++: uint32) - | @param try_to_unhide (C++: bool) + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) -> 'void' | set(self, index, e) - | @param index (C++: uint32) - | @param e (C++: const lochist_entry_t &) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) -> 'void' | set_current(self, e) - | @param e (C++: const lochist_entry_t &) + | + | @param e: lochist_entry_t const & | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -65352,14 +62973,16 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_info_pos_t const & + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -65376,13 +62999,13 @@ class renderer_info_pos_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -65401,14 +63024,21 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: renderer_info_t const & + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -65425,13 +63055,13 @@ class renderer_info_t(builtins.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -65450,17 +63080,20 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | _from: ea_t - | _to: ea_t - | _sz: size_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: segm_move_info_t const & + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -65477,16 +63110,16 @@ class segm_move_info_t(builtins.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -65502,15 +63135,19 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | x: qvector< segm_move_info_t > const & + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65520,36 +63157,42 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | __swig_destroy__ = delete_segm_move_info_vec_t(...) | delete_segm_move_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65562,78 +63205,85 @@ class segm_move_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t | | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & | - | - | find(self, x) -> segm_move_info_t - | x: segm_move_info_t const & + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65677,7 +63327,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) -> 'segm_move_info_t const *' | find(self, ea) -> segm_move_info_t - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65690,11 +63341,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65704,31 +63357,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< segm_move_info_t > const & + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: segm_move_info_t const & + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: segm_move_info_t const & + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65741,16 +63400,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator | + | @param it: qvector< segm_move_info_t >::iterator | | erase(self, first, last) -> segm_move_info_t - | first: qvector< segm_move_info_t >::iterator - | last: qvector< segm_move_info_t >::iterator + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -65760,51 +63419,61 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: segm_move_info_t * - | len: size_t + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t - | it: qvector< segm_move_info_t >::iterator - | x: segm_move_info_t const & + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) - | x: segm_move_info_t const & + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: segm_move_info_t const & | + | @param _newsize: size_t + | @param x: segm_move_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< segm_move_info_t > & + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65823,22 +63492,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __hash__ = None +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) -> 'ssize_t' get_switch_info(out, ea) -> ssize_t - @param out (C++: switch_info_t *) - @param ea (C++: ea_t) + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - Add a new encoding (e.g. "UTF-8"). + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - add_encoding(encoding) -> int - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -65865,13 +63552,13 @@ class array_parameters_t(builtins.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -65880,154 +63567,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) -> 'void' + clr_notcode(ea) Clear not-code mark. - clr_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -66038,11 +63749,13 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array - | data: short (&)[8] + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66054,8 +63767,9 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: short const & + | + | @param i: size_t + | @param v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) @@ -66065,7 +63779,10 @@ class custom_data_type_ids_fids_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66080,7 +63797,7 @@ class custom_data_type_ids_fids_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -66103,9 +63820,13 @@ class custom_data_type_ids_t(builtins.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | | set(self, *args) -> 'void' | set(self, tid) - | @param tid (C++: tid_t) + | + | @param tid: tid_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66117,7 +63838,7 @@ class custom_data_type_ids_t(builtins.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -66128,122 +63849,142 @@ class custom_data_type_ids_t(builtins.object) Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) -> 'size_t' - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) -> 'void' del_absbase(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) -> 'void' del_custom_data_type_ids(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' - Delete an encoding (1-based) - del_encoding(idx) -> bool - @param idx (C++: int) + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) -> 'void' + delete_imports() Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) -> 'nodeidx_t' + ea2node(ea) -> nodeidx_t Get netnode for the specified address. - ea2node(ea) -> nodeidx_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) -> 'char const *' - Get encoding name for this strtype. - encoding_from_strtype(strtype) -> char const * - @param strtype (C++: int32) + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -66270,13 +64011,13 @@ class enum_const_t(builtins.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid Help on function enum_import_names in module ida_nalt: @@ -66292,10 +64033,10 @@ enum_import_names(*args) -> 'int' Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) -> 'int' + find_custom_refinfo(name) -> int Get id of a custom refinfo type. - find_custom_refinfo(name) -> int - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: @@ -66305,90 +64046,108 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_aflags in module ida_nalt: get_aflags(*args) -> 'aflags_t' get_aflags(ea) -> aflags_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) -> 'qstring *' + get_archive_path() -> str Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) -> 'ssize_t' get_array_parameters(out, ea) -> ssize_t - @param out (C++: array_parameters_t *) - @param ea (C++: ea_t) + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) -> 'qstring *' + get_asm_inc_file() -> str Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) -> 'int' get_custom_data_type_ids(cdis, ea) -> int - @param cdis (C++: custom_data_type_ids_t *) - @param ea (C++: ea_t) + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * Get definition of a registered custom refinfo type. - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) -> 'int' + get_default_encoding_idx(bpu) -> int Get default encoding index for a specific string type. - get_default_encoding_idx(bpu) -> int - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument Help on function get_elapsed_secs in module ida_nalt: get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) -> 'int' - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - get_encoding_bpu(idx) -> int - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) -> 'char const *' + get_encoding_name(idx) -> char const * Get encoding name for specific index (1-based). - get_encoding_name(idx) -> char const * - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) -> 'int' + get_encoding_qty() -> int Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -66398,182 +64157,202 @@ get_gotea(*args) -> 'ea_t' Help on function get_ida_notepad_text in module ida_nalt: -get_ida_notepad_text(*args) -> 'ssize_t' - Get notead text. - - get_ida_notepad_text(text) -> ssize_t - @param text (C++: qstring *) +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. Help on function get_idb_ctime in module ida_nalt: get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t Get database creation timestamp. Help on function get_idb_nopens in module ida_nalt: get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t Get number of times the database is opened. Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) -> 'netnode' + get_ids_modnode() -> netnode Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) -> 'ea_t' + get_imagebase() -> ea_t Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) -> 'PyObject *' - get_import_module_name(mod_index) -> PyObject * + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) -> 'uint' + get_import_module_qty() -> uint Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) -> 'ea_t' get_ind_purged(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_initial_ida_version in module ida_nalt: -get_initial_ida_version(*args) -> 'ushort' - Get version of ida which created the database (string format like - "7.5") - - get_initial_ida_version(ver) -> ssize_t - @param ver (C++: qstring *) +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) -> 'bgcolor_t' get_item_color(ea) -> bgcolor_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_loader_format_name in module ida_nalt: get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) -> 'int' - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool - @param ri (C++: refinfo_t *) - @param ea (C++: ea_t) - @param n (C++: int) + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) -> 'reftype_t' - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - get_reftype_by_size(size) -> reftype_t - @param size (C++: size_t) + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' + get_root_filename() -> str Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_srcdbg_paths in module ida_nalt: -get_srcdbg_paths(*args) -> 'ssize_t' +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str Get source debug paths. - - get_srcdbg_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_srcdbg_undesired_paths in module ida_nalt: -get_srcdbg_undesired_paths(*args) -> 'ssize_t' +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str Get user-closed source files. - - get_srcdbg_undesired_paths(paths) -> ssize_t - @param paths (C++: qstring *) Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) -> 'uchar' + get_str_encoding_idx(strtype) -> uchar Get index of the string encoding for this string. - get_str_encoding_idx(strtype) -> uchar - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) -> 'char' get_str_term1(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) -> 'uchar' get_str_type_code(strtype) -> uchar - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_str_type_prefix_length in module ida_nalt: get_str_type_prefix_length(*args) -> 'size_t' get_str_type_prefix_length(strtype) -> size_t - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_strid in module ida_nalt: get_strid(*args) -> 'tid_t' get_strid(ea) -> tid_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int - @param strtype (C++: int32) + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -66583,454 +64362,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool - @param tif (C++: tinfo_t *) - @param ea (C++: ea_t) + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_aflag_linnum in module ida_nalt: has_aflag_linnum(*args) -> 'bool' has_aflag_linnum(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_lname in module ida_nalt: has_aflag_lname(*args) -> 'bool' has_aflag_lname(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti in module ida_nalt: has_aflag_ti(*args) -> 'bool' has_aflag_ti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti0 in module ida_nalt: has_aflag_ti0(*args) -> 'bool' has_aflag_ti0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_aflag_ti1 in module ida_nalt: has_aflag_ti1(*args) -> 'bool' has_aflag_ti1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_aflag__bnot0 in module ida_nalt: is_aflag__bnot0(*args) -> 'bool' is_aflag__bnot0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__bnot1 in module ida_nalt: is_aflag__bnot1(*args) -> 'bool' is_aflag__bnot1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign0 in module ida_nalt: is_aflag__invsign0(*args) -> 'bool' is_aflag__invsign0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag__invsign1 in module ida_nalt: is_aflag__invsign1(*args) -> 'bool' is_aflag__invsign1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_align_flow in module ida_nalt: is_aflag_align_flow(*args) -> 'bool' is_aflag_align_flow(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_colored_item in module ida_nalt: is_aflag_colored_item(*args) -> 'bool' is_aflag_colored_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: is_aflag_data_guessed_by_hexrays(*args) -> 'bool' is_aflag_data_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_fixed_spd in module ida_nalt: is_aflag_fixed_spd(*args) -> 'bool' is_aflag_fixed_spd(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: is_aflag_func_guessed_by_hexrays(*args) -> 'bool' is_aflag_func_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_border in module ida_nalt: is_aflag_hidden_border(*args) -> 'bool' is_aflag_hidden_border(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_hidden_item in module ida_nalt: is_aflag_hidden_item(*args) -> 'bool' is_aflag_hidden_item(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_libitem in module ida_nalt: is_aflag_libitem(*args) -> 'bool' is_aflag_libitem(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero0 in module ida_nalt: is_aflag_lzero0(*args) -> 'bool' is_aflag_lzero0(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_lzero1 in module ida_nalt: is_aflag_lzero1(*args) -> 'bool' is_aflag_lzero1(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_manual_insn in module ida_nalt: is_aflag_manual_insn(*args) -> 'bool' is_aflag_manual_insn(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_noret in module ida_nalt: is_aflag_noret(*args) -> 'bool' is_aflag_noret(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notcode in module ida_nalt: is_aflag_notcode(*args) -> 'bool' is_aflag_notcode(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_notproc in module ida_nalt: is_aflag_notproc(*args) -> 'bool' is_aflag_notproc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_public_name in module ida_nalt: is_aflag_public_name(*args) -> 'bool' is_aflag_public_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_retfp in module ida_nalt: is_aflag_retfp(*args) -> 'bool' is_aflag_retfp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_terse_struc in module ida_nalt: is_aflag_terse_struc(*args) -> 'bool' is_aflag_terse_struc(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_tilcmt in module ida_nalt: is_aflag_tilcmt(*args) -> 'bool' is_aflag_tilcmt(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: is_aflag_type_determined_by_hexrays(*args) -> 'bool' is_aflag_type_determined_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: is_aflag_type_guessed_by_hexrays(*args) -> 'bool' is_aflag_type_guessed_by_hexrays(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_type_guessed_by_ida in module ida_nalt: is_aflag_type_guessed_by_ida(*args) -> 'bool' is_aflag_type_guessed_by_ida(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_usersp in module ida_nalt: is_aflag_usersp(*args) -> 'bool' is_aflag_usersp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_userti in module ida_nalt: is_aflag_userti(*args) -> 'bool' is_aflag_userti(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_weak_name in module ida_nalt: is_aflag_weak_name(*args) -> 'bool' is_aflag_weak_name(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_aflag_zstroff in module ida_nalt: is_aflag_zstroff(*args) -> 'bool' is_aflag_zstroff(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_data_guessed_by_hexrays in module ida_nalt: is_data_guessed_by_hexrays(*args) -> 'bool' is_data_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) -> 'bool' + is_finally_visible_item(ea) -> bool Is instruction visible? - is_finally_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) -> 'bool' is_fixed_spd(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_func_guessed_by_hexrays in module ida_nalt: is_func_guessed_by_hexrays(*args) -> 'bool' is_func_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) -> 'bool' + is_notcode(ea) -> bool Is the address marked as not-code? - is_notcode(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool - @param strtype (C++: int32) + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) -> 'bool' + is_reftype_target_optional(type) -> bool Can the target be calculated using operand value? - is_reftype_target_optional(type) -> bool - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_determined_by_hexrays in module ida_nalt: is_type_determined_by_hexrays(*args) -> 'bool' is_type_determined_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_hexrays in module ida_nalt: is_type_guessed_by_hexrays(*args) -> 'bool' is_type_guessed_by_hexrays(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_type_guessed_by_ida in module ida_nalt: is_type_guessed_by_ida(*args) -> 'bool' is_type_guessed_by_ida(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) -> 'bool' + is_visible_item(ea) -> bool Test visibility of item at given ea. - is_visible_item(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t - @param ndx (C++: nodeidx_t) + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -67057,25 +64917,25 @@ class opinfo_t(builtins.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid Help on class printop_t in module ida_nalt: @@ -67103,11 +64963,13 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) - | @param v (C++: bool) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67119,25 +64981,25 @@ class printop_t(builtins.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> aflags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti Help on class refinfo_t in module ida_nalt: @@ -67156,14 +65018,21 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | @param reft_and_flags (C++: uint32) - | @param _base (C++: ea_t) - | @param _target (C++: ea_t) - | @param _tdelta (C++: adiff_t) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) -> 'bool' | is_pastend(self) -> bool | @@ -67177,14 +65046,16 @@ class refinfo_t(builtins.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) -> 'bool' - | < 'is_reftype_target_optional()' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) -> 'bool' | no_base_xref(self) -> bool | | set_type(self, *args) -> 'void' | set_type(self, rt) - | @param rt (C++: reftype_t) + | + | @param rt: reftype_t | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -67199,16 +65070,16 @@ class refinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -67216,420 +65087,477 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - Change name for an encoding (1-based) + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - rename_encoding(idx, encoding) -> bool - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) -> 'uint32' - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) -> 'uchar [ANY]' + retrieve_input_file_sha256() -> bytes Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) -> 'void' set__bnot0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) - @param ea (C++: ea_t) - @param bits (C++: aflags_t) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) - @param ea (C++: ea_t) - @param flags (C++: aflags_t) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) -> 'bool' + set_archive_path(file) -> bool Set archive file path from which input file was extracted. - set_archive_path(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) - @param ea (C++: ea_t) - in: array_parameters_t const * + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) -> 'bool' + set_asm_inc_file(file) -> bool Set name of the include file. - set_asm_inc_file(file) -> bool - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) -> 'void' set_custom_data_type_ids(ea, cdis) - @param ea (C++: ea_t) - @param cdis (C++: const custom_data_type_ids_t *) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * Help on function set_data_guessed_by_hexrays in module ida_nalt: set_data_guessed_by_hexrays(*args) -> 'void' set_data_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) -> 'bool' - set default encoding for a string type - set_default_encoding_idx(bpu, idx) -> bool - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) -> 'void' set_fixed_spd(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_func_guessed_by_hexrays in module ida_nalt: set_func_guessed_by_hexrays(*args) -> 'void' set_func_guessed_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) - @param gotea (C++: ea_t) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_ida_notepad_text in module ida_nalt: set_ida_notepad_text(*args) -> 'void' - Set notead text. - set_ida_notepad_text(text, size=0) - @param text (C++: const char *) - @param size (C++: size_t) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) -> 'void' + set_ids_modnode(id) Set ids modnode. - set_ids_modnode(id) - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) -> 'void' + set_imagebase(base) Set image base address. - set_imagebase(base) - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) -> 'void' set_item_color(ea, color) - @param ea (C++: ea_t) - @param color (C++: bgcolor_t) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_loader_format_name in module ida_nalt: set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) Set file format name for loader modules. - set_loader_format_name(name) - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) -> 'void' + set_notcode(ea) Mark address so that it cannot be converted to instruction. - set_notcode(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) -> 'bool' set_op_tinfo(ea, n, tif) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) -> 'bool' + set_outfile_encoding_idx(idx) -> bool set encoding to be used when producing files - set_outfile_encoding_idx(idx) -> bool - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) -> 'bool' set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t *) + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_srcdbg_paths in module ida_nalt: set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) Set source debug paths. - set_srcdbg_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * Help on function set_srcdbg_undesired_paths in module ida_nalt: set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) Set user-closed source files. - set_srcdbg_undesired_paths(paths) - @param paths (C++: const char *) + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) - @param ea (C++: ea_t) - @param x (C++: uint32) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) - @param ea (C++: ea_t) - in: switch_info_t const & + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) -> 'void' set_switch_parent(ea, x) - @param ea (C++: ea_t) - @param x (C++: ea_t) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool - @param ea (C++: ea_t) - @param tif (C++: const tinfo_t *) + + @param ea: ea_t + @param tif: tinfo_t const * Help on function set_type_determined_by_hexrays in module ida_nalt: set_type_determined_by_hexrays(*args) -> 'void' set_type_determined_by_hexrays(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_type_guessed_by_ida in module ida_nalt: set_type_guessed_by_ida(*args) -> 'void' set_type_guessed_by_ida(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) -> 'void' + set_visible_item(ea, visible) Change visibility of item at given ea. - set_visible_item(ea, visible) - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) -> 'void' set_zstroff(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -67640,11 +65568,13 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array - | data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67656,8 +65586,9 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) @@ -67667,7 +65598,10 @@ class strpath_ids_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67682,7 +65616,7 @@ class strpath_ids_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -67715,13 +65649,13 @@ class strpath_t(builtins.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -67746,21 +65680,25 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) - | values: ea_t + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) - | other: switch_info_t const & + | + | @param other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool | get separate parts of the switch | - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | @param jrange (C++: range_t *) - | @param vrange (C++: range_t *) + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -67772,7 +65710,8 @@ class switch_info_t(builtins.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) -> 'int' - | See 'SWI_SHIFT_MASK' . possible answers: 0..3. + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) -> 'int' | get_version(self) -> int @@ -67806,30 +65745,35 @@ class switch_info_t(builtins.object) | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) - | @param base (C++: ea_t) + | + | @param base: ea_t | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) - | @param r (C++: int) - | @param dt (C++: op_dtype_t) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) - | @param size (C++: int) + | + | @param size: int | | set_shift(self, *args) -> 'void' - | See 'SWI_SHIFT_MASK' . - | | set_shift(self, shift) - | @param shift (C++: int) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) - | @param size (C++: int) + | + | @param size: int | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -67844,46 +65788,46 @@ class switch_info_t(builtins.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -67900,951 +65844,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' switch_info_t__from_ptrval__(ptrval) -> switch_info_t - ptrval: size_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function upd_abits in module ida_nalt: upd_abits(*args) -> 'void' upd_abits(ea, clr_bits, set_bits) - @param ea (C++: ea_t) - @param clr_bits (C++: aflags_t) - @param set_bits (C++: aflags_t) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t Help on function uses_aflag_modsp in module ida_nalt: uses_aflag_modsp(*args) -> 'bool' uses_aflag_modsp(flags) -> bool - @param flags (C++: aflags_t) + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int - do_repair: bool + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -sp delta value is fixed by analysis. should not be modified by modules -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_HR_DETERMINED -""" -the type is definitely guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_DATA -""" -the data type is guessed by the decompiler -""" - -ida_nalt.AFL_HR_GUESSED_FUNC -""" -the function type is guessed by the decompiler -""" - -ida_nalt.AFL_IDA_GUESSED -""" -the type is guessed by IDA -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ); used only for addresses, not for -'member_t' -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_TYPE_GUESSED -""" -who guessed the type information? -""" - -ida_nalt.AFL_USEMODSP -""" -insn modifes SP and uses the modified value example: pop [rsp+N] -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -the type information is definitive. (comes from the user or type -library) if not set see 'AFL_TYPE_GUESSED' -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -alignment value if the item is 'FF_ALIGN' (should by equal to power of -2) -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference. see 'custom_refinfo_handler_t' . the id of the -custom refinfo is stored under the REFINFO_TYPE mask. -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM -set -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -elbase is present (otherwise the base of the switch segment will be -used) -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -value table elements are used as indexes into the jump table (for -sparse switches) -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -jumptable is inversed. (last entry is for first entry in values table) -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -sparse switch (value table present) otherwise lowcase present -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_USER -""" -user specified switch (starting from version 2) -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" - -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(builtins.object) @@ -68881,22 +65934,20 @@ class NearestName(builtins.object) Help on function append_struct_fields in module ida_name: append_struct_fields(*args) -> 'qstring *, adiff_t *' + append_struct_fields(disp, n, path, flags, delta, appzero) -> str Append names of struct fields to a name if the name is a struct name. - append_struct_fields(disp, n, path, flags, delta, appzero) -> str - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -68912,41 +65963,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: uint32) + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) -> 'qstring *' + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str Demangle a name. - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -68957,8 +66009,10 @@ class ea_name_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | _ea: ea_t - | _name: qstring const & + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -68975,10 +66029,10 @@ class ea_name_t(builtins.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -68992,11 +66046,14 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | x: qvector< ea_name_t > const & + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69008,22 +66065,23 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: ea_name_t const & + | + | @param i: size_t + | @param v: ea_name_t const & | | __swig_destroy__ = delete_ea_name_vec_t(...) | delete_ea_name_vec_t(self) | | at(self, *args) -> 'ea_name_t const &' | at(self, _idx) -> ea_name_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69036,16 +66094,16 @@ class ea_name_vec_t(builtins.object) | | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t - | it: qvector< ea_name_t >::iterator | + | @param it: qvector< ea_name_t >::iterator | | erase(self, first, last) -> ea_name_t - | first: qvector< ea_name_t >::iterator - | last: qvector< ea_name_t >::iterator + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -69055,47 +66113,56 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) - | x: ea_name_t const & + | + | @param x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: ea_name_t * - | len: size_t + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t - | it: qvector< ea_name_t >::iterator - | x: ea_name_t const & + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) - | x: ea_name_t const & + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: ea_name_t const & | + | @param _newsize: size_t + | @param x: ea_name_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< ea_name_t > & + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69115,758 +66182,582 @@ class ea_name_vec_t(builtins.object) Help on function extract_name in module ida_name: extract_name(*args) -> 'qstring *' + extract_name(line, x) -> str Extract a name or address from the specified string. - extract_name(line, x) -> str - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) -> 'bool' force_name(ea, name, flags=0) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) - @param flags (C++: int) + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) -> 'qstring' get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) -> 'qstring' get_colored_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) -> 'qstring' get_colored_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) -> 'bool' - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) -> 'qstring *' get_debug_name(ea_ptr, how) -> str - @param ea_ptr (C++: ea_t *) - @param how (C++: debug_name_how_t) + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) -> 'ea_t' get_debug_name_ea(name) -> ea_t - @param name (C++: const char *) + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) - @param names (C++: ea_name_vec_t *) - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - return_list: bool + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) -> 'qstring' get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param inhibitor (C++: int32) - @param demform (C++: int) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) -> 'qstring' + get_ea_name(ea, gtn_flags=0) -> qstring Get name at the specified address. - get_ea_name(ea, gtn_flags=0) -> qstring - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success Help on function get_long_name in module ida_name: get_long_name(*args) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_mangled_name_type in module ida_name: get_mangled_name_type(*args) -> 'mangled_name_type_t' get_mangled_name_type(name) -> mangled_name_type_t - name: char const * + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) -> 'ea_t' + get_name_base_ea(_from, to) -> ea_t Get address of the name used in the expression for the address - get_name_base_ea(_from, to) -> ea_t - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) -> 'color_t' - Calculate flags for 'get_ea_name()' function. + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. Get name color. - get_name_color(_from, ea) -> color_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) -> 'qstring *' - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) -> 'uval_t *' - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - get_name_value(_from, name) -> int - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) -> 'qstring *' - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - get_nice_colored_name(ea, flags=0) -> str - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) -> 'ea_t' + get_nlist_ea(idx) -> ea_t Get address from the list at 'idx'. - get_nlist_ea(idx) -> ea_t - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) -> 'size_t' - Get index of the name in the listreturns the closest match. may return - idx >= size. - get_nlist_idx(ea) -> size_t - @param ea (C++: ea_t) + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) -> 'char const *' + get_nlist_name(idx) -> char const * Get name using idx. - get_nlist_name(idx) -> char const * - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) -> 'size_t' + get_nlist_size() -> size_t Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) -> 'qstring' get_short_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) -> 'qstring' get_visible_name(ea, gtn_flags=0) -> qstring - @param ea (C++: ea_t) - @param gtn_flags (C++: int) + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) -> 'void' + hide_name(ea) Remove name from the list of names - hide_name(ea) - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) -> 'bool' + is_ident(name) -> bool Is a valid name? (including ::MangleChars) - is_ident(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) -> 'bool' - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - is_ident_cp(cp) -> bool - @param cp (C++: wchar32_t) + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) -> 'bool' + is_in_nlist(ea) -> bool Is the name included into the name list? - is_in_nlist(ea) -> bool - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) -> 'bool' + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool Is the name defined locally in the specified function? - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) -> 'bool' is_public_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) -> 'bool' - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - is_strlit_cp(cp, specific_ranges=None) -> bool - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) -> 'bool' + is_uname(name) -> bool Is valid user-specified name? (valid name & !dummy prefix). - is_uname(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) -> 'bool' + is_valid_cp(cp, kind, data=None) -> bool Is the given codepoint acceptable in the given context? - is_valid_cp(cp, kind, data=None) -> bool - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) -> 'bool' + is_valid_typename(name) -> bool Is valid type name? - is_valid_typename(name) -> bool - @param name: name to test. may be NULL. (C++: const char *) - @retval: 1 - yes - @retval: 0 - no + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) -> 'bool' + is_visible_cp(cp) -> bool Can a character be displayed in a name? (present in ::NameChars) - is_visible_cp(cp) -> bool - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) -> 'bool' is_weak_name(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) -> 'void' make_name_non_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) -> 'void' make_name_non_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' + rebuild_nlist() Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) -> 'void' + reorder_dummy_names() Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) -> 'void' - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) -> 'bool' set_debug_name(ea, name) -> bool - @param ea (C++: ea_t) - @param name (C++: const char *) + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) -> 'bool' - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - set_dummy_name(_from, ea) -> bool - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - @retval: 1 - ok, dummy name is generated or the byte already had a - name - @retval: 0 - failure, invalid address or tail byte + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) -> 'bool' - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - set_name(ea, name, flags=0) -> bool - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, - non-auto. (C++: int) - @retval: 1 - ok, name is changed - @retval: 0 - failure, a warning is displayed + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) -> 'void' + show_name(ea) Insert name to the list of names. - show_name(ea) - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) -> 'PyObject *' - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - validate_name(name, type, flags=0) -> PyObject * - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. -ida_name.GETN_APPZERO -""" -meaningful only if the name refers to a structure. append a struct -field name if the field offset is zero? -""" +(Namely, Btree). To learn more about Balanced Trees: +\link{http://www.bluerwhite.org/btree/} -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +We don't use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Usually there is a trivial mapping +of the linear addresses used in the program to netnodes. If we have additional +information about an address (a comment is attached to it, for example), this +information is stored in the corresponding netnode. See nalt.hpp to see how the +kernel uses netnodes. Also, some netnodes have no corresponding linear address +(however, they still have an id). They are used to store information not related +to a particular address. -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblog/getblob and other blob-related functions. -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +Advanced info: -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -if name cannot be set because of a tail byte, delete the hindering -item -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool - n: netnode const & + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -69877,29 +66768,32 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __eq__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __init__(self, *args) | __init__(self, num=nodeidx_t(-1)) -> netnode - | num: nodeidx_t | + | @param num: nodeidx_t | | __init__(self, _name, namlen=0, do_create=False) -> netnode - | _name: char const * - | namlen: size_t - | do_create: bool + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool - | n: netnode & | + | @param n: netnode & | | __ne__(self, x) -> bool - | x: nodeidx_t + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -69908,554 +66802,782 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool | | altdel_all(self, *args) -> 'bool' | altdel_all(self, tag=atag) -> bool - | tag: uchar + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t - | tag: uchar + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool - | alt: nodeidx_t - | value: nodeidx_t - | tag: uchar + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool - | ea: ea_t - | value: nodeidx_t - | tag: uchar + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: nodeidx_t - | tag: uchar + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t - | alt: nodeidx_t - | tag: uchar + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t - | _start: nodeidx_t - | tag: uchar + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t - | cur: uchar - | tag: uchar + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool - | alt: nodeidx_t - | val: uchar - | tag: uchar + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool - | ea: ea_t - | val: uchar - | tag: uchar + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool - | alt: uchar - | val: uchar - | tag: uchar + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar - | alt: nodeidx_t - | tag: uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) -> 'size_t' | copyto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool - | _name: char const * - | namlen: size_t + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int - | _start: nodeidx_t - | tag: uchar + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t - | idx: nodeidx_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t - | idx: uchar - | tag: uchar + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool - | ea: ea_t - | addr: ea_t - | tag: uchar + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool - | idx: nodeidx_t - | addr: ea_t - | tag: uchar + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool - | idx: uchar - | addr: ea_t - | tag: uchar + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) -> 'ssize_t' | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) -> 'PyObject *' - | getblob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * - | ea: ea_t - | tag: char + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) -> 'PyObject *' - | getclob(self, start, tag) -> PyObject * - | start: nodeidx_t - | tag: char + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool - | idx: char const * - | tag: uchar + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool - | tag: uchar + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t - | tag: uchar + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: void const * - | tag: uchar + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool - | idx: char const * - | py_str: PyObject * - | tag: char + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool - | idx: char const * - | value: nodeidx_t - | tag: uchar + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * - | idx: char const * - | tag: char + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t - | idx: char const * - | tag: uchar + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t | | kill(self, *args) -> 'void' | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) -> 'nodeidx_t' | long_value(self) -> nodeidx_t | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) -> 'size_t' | moveto(self, destnode, count=1) -> size_t - | destnode: netnode - | count: nodeidx_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) -> 'bool' | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool - | newname: char const * - | namlen: size_t + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) -> 'bool' | set(self, value) -> bool - | value: void const * + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool - | x: nodeidx_t + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool - | buf: void const * - | _start: nodeidx_t - | tag: uchar + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool - | buf: void const * - | ea: ea_t - | tag: uchar + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool - | alt: nodeidx_t - | tag: uchar + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool - | tag: uchar + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int - | idx1: nodeidx_t - | idx2: nodeidx_t - | tag: uchar + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int - | idx1: uchar - | idx2: uchar - | tag: uchar + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t - | tag: uchar + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t - | tag: uchar + | + | @param tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t - | cur: nodeidx_t - | tag: uchar + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: void const * - | tag: uchar + | Set value of supval array element. | - | - | supset(self, alt, value, tag=stag) -> bool - | alt: nodeidx_t - | value: char const * - | tag: uchar + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: void const * - | tag: uchar | - | - | supset_ea(self, ea, value, tag=stag) -> bool - | ea: ea_t - | value: char const * - | tag: uchar + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool - | alt: uchar - | value: void const * - | tag: uchar + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t - | from: nodeidx_t - | to: nodeidx_t - | size: nodeidx_t - | tag: uchar + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t - | alt: nodeidx_t - | tag: uchar + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t - | ea: ea_t - | tag: uchar + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t - | alt: uchar - | tag: uchar + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) -> 'ssize_t' | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) -> 'bool' | value_exists(self) -> bool @@ -70465,7 +67587,9 @@ class netnode(builtins.object) | | exist(*args) -> 'bool' | exist(_name) -> bool - | _name: char const * + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70488,224 +67612,254 @@ Help on function netnode_exist in module ida_netnode: netnode_exist(*args) -> 'bool' netnode_exist(_name) -> bool - _name: char const * + + @param _name: char const * -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) -> 'ea_t' - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - @param insn: the referencing instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) -> 'ea_t' + calc_basevalue(target, base) -> ea_t Calculate the value of the reference base. - calc_basevalue(target, base) -> ea_t - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) -> 'ea_t' - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - calc_offset_base(ea, n) -> ea_t - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) -> 'ea_t' - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - calc_probable_base_by_value(ea, off) -> ea_t - @param ea (C++: ea_t) - @param off (C++: uval_t) + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) -> 'bool' - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - calc_reference_data(target, base, _from, ri, opval) -> bool - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success Help on function calc_target in module ida_offset: calc_target(*args) -> 'ea_t' - Calculates the target, using the provided 'refinfo_t' . - calc_target(_from, opval, ri) -> ea_t - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + Retrieves refinfo_t structure and calculates the target. + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & calc_target(_from, ea, n, opval) -> ea_t - @param _from (C++: ea_t) - ea: ea_t - n: int - @param opval (C++: adiff_t) + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) -> 'ea_t' - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - can_be_off32(ea) -> ea_t - @param ea (C++: ea_t) + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) -> 'reftype_t' + get_default_reftype(ea) -> reftype_t Get default reference type depending on the segment. - get_default_reftype(ea) -> reftype_t - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) -> 'ea_t' + get_offbase(ea, n) -> ea_t Get offset base value - get_offbase(ea, n) -> ea_t - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) -> 'qstring *' - See 'get_offset_expression()' - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) -> 'qstring *' - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - @retval: 0 - can't convert to offset expression - @retval: 1 - ok, a simple offset expression - @retval: 2 - ok, a complex offset expression + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: op_offset(*args) -> 'bool' - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: op_offset_ex(*args) -> 'bool' - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - op_offset_ex(ea, n, ri) -> bool - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) -> 'bool' + op_plain_offset(ea, n, base) -> bool Convert operand to a reference with the default reference type. - op_plain_offset(ea, n, base) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -70903,15 +68057,19 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | x: qvector< bool > const & + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70920,25 +68078,31 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< bool > const & + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: bool const & + | + | @param i: size_t + | @param v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: bool const & + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -70966,74 +68130,86 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator - | it: qvector< bool >::iterator | + | @param it: qvector< bool >::iterator | | erase(self, first, last) -> qvector< bool >::iterator - | first: qvector< bool >::iterator - | last: qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator - | x: bool const & | + | @param x: bool const & | | find(self, x) -> qvector< bool >::const_iterator - | x: bool const & + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) - | x: bool const & + | + | @param x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: bool const & + | + | @param x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: bool * - | len: size_t + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator - | it: qvector< bool >::iterator - | x: bool const & + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) - | x: bool const & + | + | @param x: bool const & + | + | push_back(self) -> bool & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: bool const & | + | @param _newsize: size_t + | @param x: bool const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< bool > & + | + | @param r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71092,19 +68268,19 @@ class channel_redir_t(builtins.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -71112,28 +68288,29 @@ class channel_redir_t(builtins.object) Help on function check_process_exit in module ida_pro: check_process_exit(*args) -> 'int' + check_process_exit(handle, exit_code, msecs=-1) -> int Check whether process has terminated or not. - check_process_exit(handle, exit_code, msecs=-1) -> int - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - msecs: int - @retval: 0 - process has exited, and the exit code is available. if - *exit_code < 0: the process was killed with a signal - -*exit_code - @retval: 1 - process has not exited yet - @retval: -1 - error happened, see error code for winerr() in - *exit_code + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on function clear_bits in module ida_pro: clear_bits(*args) -> 'void' + clear_bits(bitmap, low, high) Clear bits between [low, high) in 'bitmap'. - clear_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class ea_array in module ida_pro: @@ -71144,18 +68321,21 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: ea_t + | + | @param index: size_t + | @param value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -71168,7 +68348,8 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71186,7 +68367,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array - t: ea_t * + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -71205,7 +68387,8 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: ea_t + | + | @param value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -71218,7 +68401,8 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer - | t: ea_t * + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71236,18 +68420,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer - t: ea_t * + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) -> 'uint64' - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - extend_sign(v, nbytes, sign_extend) -> uint64 - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -71274,28 +68459,28 @@ class instant_dbgopts_t(builtins.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag @@ -71309,15 +68494,19 @@ class longlongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | x: qvector< long long > const & + | __init__(self, x) -> longlongvec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71326,25 +68515,31 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< long long > const & + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: long long const & + | + | @param i: size_t + | @param v: long long const & | | __swig_destroy__ = delete_longlongvec_t(...) | delete_longlongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: long long const & + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -71372,70 +68567,81 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator - | it: qvector< long long >::iterator | + | @param it: qvector< long long >::iterator | | erase(self, first, last) -> qvector< long long >::iterator - | first: qvector< long long >::iterator - | last: qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) -> 'long long *' | extract(self) -> long long * | | find(self, *args) -> 'qvector< long long >::const_iterator' | find(self, x) -> qvector< long long >::iterator - | x: long long const & | + | @param x: long long const & | | find(self, x) -> qvector< long long >::const_iterator - | x: long long const & + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: long long const & + | + | @param x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: long long * - | len: size_t + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator - | it: qvector< long long >::iterator - | x: long long const & + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) - | x: long long const & + | + | @param x: long long const & + | + | push_back(self) -> long long & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: long long const & | + | @param _newsize: size_t + | @param x: long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< long long > & + | + | @param r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71474,7 +68680,8 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: int + | + | @param value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -71487,7 +68694,8 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer - | t: int * + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71505,7 +68713,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer - t: int * + + @param t: int * Help on class intvec_t in module ida_pro: @@ -71516,15 +68725,19 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | x: qvector< int > const & + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71533,25 +68746,31 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< int > const & + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: int const & + | + | @param i: size_t + | @param v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: int const & + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: int const & + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -71579,70 +68798,81 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator - | it: qvector< int >::iterator | + | @param it: qvector< int >::iterator | | erase(self, first, last) -> qvector< int >::iterator - | first: qvector< int >::iterator - | last: qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator - | x: int const & | + | @param x: int const & | | find(self, x) -> qvector< int >::const_iterator - | x: int const & + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: int const & + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: int * - | len: size_t + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator - | it: qvector< int >::iterator - | x: int const & + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | x: int const & + | + | @param x: int const & + | + | push_back(self) -> int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: int const & | + | @param _newsize: size_t + | @param x: int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< int > & + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71667,69 +68897,73 @@ class intvec_t(builtins.object) Help on function is_control_tty in module ida_pro: is_control_tty(*args) -> 'enum tty_control_t' + is_control_tty(fd) -> enum tty_control_t Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - is_control_tty(fd) -> enum tty_control_t - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) -> 'bool' + is_main_thread() -> bool Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) -> 'int' - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - log2ceil(d64) -> int - @param d64 (C++: uint64) + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int - @param d64 (C++: uint64) + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) -> 'bool' - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - parse_dbgopts(ido, r_switch) -> bool - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) -> 'int64' qatoll(nptr) -> int64 - @param nptr (C++: const char *) + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) -> 'void' - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) -> 'void' - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) -> 'void' + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -71740,7 +68974,8 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t - | _lock: qmutex_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -71775,9 +69010,10 @@ class qrefcnt_obj_t(builtins.object) | delete_qrefcnt_obj_t(self) | | release(self, *args) -> 'void' - | Call destructor. We use 'release()' instead of operator delete() to - | maintain binary compatibility with all compilers (vc and gcc use - | different vtable layouts for operator delete) + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71789,7 +69025,7 @@ class qrefcnt_obj_t(builtins.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -71798,29 +69034,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool - self: PyObject * - s: char const * + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool - self: PyObject * - other: PyObject * + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool - self: PyObject * - qclear: bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -71831,123 +69071,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool - py_obj: PyObject * + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) -> 'bool' qstrvec_t_from_list(_self, py_list) -> bool - self: PyObject * - py_list: PyObject * + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) -> 'qstrvec_t *' qstrvec_t_get_clink(_self) -> qstrvec_t * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' qstrvec_t_get_clink_ptr(_self) -> PyObject * - self: PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool - self: PyObject * - idx: size_t + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) -> 'bool' qstrvec_t_set(_self, idx, s) -> bool - self: PyObject * - idx: size_t - s: char const * + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) -> 'size_t' qstrvec_t_size(_self) -> size_t - self: PyObject * + + @param self: PyObject * Help on function qthread_equal in module ida_pro: qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool Are two threads equal? - qthread_equal(q1, q2) -> bool - @param q1 (C++: qthread_t) - @param q2 (C++: qthread_t) + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) -> 'bool' - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - quote_cmdline_arg(arg) -> bool - @param arg (C++: qstring *) - @return: true: modified 'arg' + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) -> 'void *' + qvector_reserve(vec, old, cnt, elsize) -> void * Change capacity of given qvector. - qvector_reserve(vec, old, cnt, elsize) -> void * - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) -> 'int' + readbytes(h, res, size, mf) -> int Read at most 4 bytes from file. - readbytes(h, res, size, mf) -> int - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) -> 'void' reloc_value(value, size, delta, mf) - @param value (C++: void *) - @param size (C++: int) - @param delta (C++: adiff_t) - @param mf (C++: bool) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool - @param _relobj (C++: struct relobj_t *) - @param ea (C++: ea_t) - @param mf (C++: bool) + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -71958,18 +69209,21 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: sel_t + | + | @param index: size_t + | @param value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -71982,7 +69236,8 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72000,7 +69255,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array - t: sel_t * + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -72019,7 +69275,8 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: sel_t + | + | @param value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -72032,7 +69289,8 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer - | t: sel_t * + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72050,17 +69308,18 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer - t: sel_t * + + @param t: sel_t * Help on function set_bits in module ida_pro: set_bits(*args) -> 'void' + set_bits(bitmap, low, high) Set bits between [low, high) in 'bitmap'. - set_bits(bitmap, low, high) - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param bitmap: (C++: uchar *) + @param low: (C++: size_t) + @param high: (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -72071,15 +69330,19 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | x: qvector< size_t > const & + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72089,29 +69352,36 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< size_t > const & + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: size_t const & + | + | @param i: size_t + | @param v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: size_t const & + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -72135,74 +69405,86 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator | + | @param it: qvector< size_t >::iterator | | erase(self, first, last) -> qvector< size_t >::iterator - | first: qvector< size_t >::iterator - | last: qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) -> 'size_t *' | extract(self) -> size_t * | | find(self, *args) -> 'qvector< size_t >::const_iterator' | find(self, x) -> qvector< size_t >::iterator - | x: size_t const & | + | @param x: size_t const & | | find(self, x) -> qvector< size_t >::const_iterator - | x: size_t const & + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) - | x: size_t const & + | + | @param x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: size_t const & + | + | @param x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: size_t * - | len: size_t + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator - | it: qvector< size_t >::iterator - | x: size_t const & + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) - | x: size_t const & + | + | @param x: size_t const & + | + | push_back(self) -> size_t & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: size_t const & | + | @param _newsize: size_t + | @param x: size_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< size_t > & + | + | @param r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72227,9 +69509,10 @@ class sizevec_t(builtins.object) Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -72241,11 +69524,14 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | x: qvector< simpleline_t > const & + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72256,8 +69542,9 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: simpleline_t const & + | + | @param i: size_t + | @param v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -72288,12 +69575,13 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator | + | @param it: qvector< simpleline_t >::iterator | | erase(self, first, last) -> qvector< simpleline_t >::iterator - | first: qvector< simpleline_t >::iterator - | last: qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -72303,47 +69591,56 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) - | x: simpleline_t const & + | + | @param x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: simpleline_t * - | len: size_t + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator - | it: qvector< simpleline_t >::iterator - | x: simpleline_t const & + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) - | x: simpleline_t const & + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: simpleline_t const & | + | @param _newsize: size_t + | @param x: simpleline_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< simpleline_t > & + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72377,7 +69674,8 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) - | value: sval_t + | + | @param value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -72390,7 +69688,8 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer - | t: sval_t * + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72408,7 +69707,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer - t: sval_t * + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -72419,18 +69719,21 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: tid_t + | + | @param index: size_t + | @param value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -72443,7 +69746,8 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array - | t: tid_t * + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72461,7 +69765,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array - t: tid_t * + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -72472,18 +69777,21 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: uchar + | + | @param index: size_t + | @param value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -72496,7 +69804,8 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array - | t: uchar * + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72514,7 +69823,8 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array - t: uchar * + + @param t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -72525,15 +69835,19 @@ class ulonglongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | x: qvector< unsigned long long > const & + | __init__(self, x) -> ulonglongvec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72542,25 +69856,31 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< unsigned long long > const & + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned long long const & + | + | @param i: size_t + | @param v: unsigned long long const & | | __swig_destroy__ = delete_ulonglongvec_t(...) | delete_ulonglongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned long long const & + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -72588,70 +69908,81 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator | + | @param it: qvector< unsigned long long >::iterator | | erase(self, first, last) -> qvector< unsigned long long >::iterator - | first: qvector< unsigned long long >::iterator - | last: qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) -> 'unsigned long long *' | extract(self) -> unsigned long long * | | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' | find(self, x) -> qvector< unsigned long long >::iterator - | x: unsigned long long const & | + | @param x: unsigned long long const & | | find(self, x) -> qvector< unsigned long long >::const_iterator - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned long long const & + | + | @param x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned long long * - | len: size_t + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator - | it: qvector< unsigned long long >::iterator - | x: unsigned long long const & + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) - | x: unsigned long long const & + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned long long const & | + | @param _newsize: size_t + | @param x: unsigned long long const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned long long > & + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72682,15 +70013,19 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | x: qvector< unsigned int > const & + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72699,25 +70034,31 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< unsigned int > const & + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: unsigned int const & + | + | @param i: size_t + | @param v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: unsigned int const & + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -72745,70 +70086,81 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator | + | @param it: qvector< unsigned int >::iterator | | erase(self, first, last) -> qvector< unsigned int >::iterator - | first: qvector< unsigned int >::iterator - | last: qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) -> 'unsigned int *' | extract(self) -> unsigned int * | | find(self, *args) -> 'qvector< unsigned int >::const_iterator' | find(self, x) -> qvector< unsigned int >::iterator - | x: unsigned int const & | + | @param x: unsigned int const & | | find(self, x) -> qvector< unsigned int >::const_iterator - | x: unsigned int const & + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: unsigned int const & + | + | @param x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: unsigned int * - | len: size_t + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator - | it: qvector< unsigned int >::iterator - | x: unsigned int const & + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) - | x: unsigned int const & + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: unsigned int const & | + | @param _newsize: size_t + | @param x: unsigned int const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< unsigned int > & + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72839,18 +70191,21 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t - | index: size_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array - | nelements: size_t + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) - | index: size_t - | value: uval_t + | + | @param index: size_t + | @param value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -72863,7 +70218,8 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array - | t: uval_t * + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72881,142 +70237,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array - t: uval_t * + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) -> 'int' + writebytes(h, l, size, mf) -> int Write at most 4 bytes to file. - writebytes(h, l, size, mf) -> int - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.6. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) -> 'bool' + forget_problem(type, ea) -> bool Remove an address from a problem list - forget_problem(type, ea) -> bool - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success Help on function get_problem in module ida_problems: get_problem(*args) -> 'ea_t' - Get an address from the specified problem list. The address is not - removed from the list. - get_problem(type, lowea) -> ea_t - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) -> 'qstring *' - Get the human-friendly description of the problem, if one was provided - to remember_problem. - get_problem_desc(t, ea) -> str - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) -> 'char const *' + get_problem_name(type, longname=True) -> char const * Get problem list description. - get_problem_name(type, longname=True) -> char const * - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) -> 'bool' + is_problem_present(t, ea) -> bool Check if the specified address is present in the problem list. - is_problem_present(t, ea) -> bool - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) -> 'void' - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - remember_problem(type, ea, msg=None) - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) -> 'bool' was_ida_decision(ea) -> bool - @param ea (C++: ea_t) + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -73027,15 +70355,19 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | x: qvector< rangeset_t > const & + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73045,36 +70377,42 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< rangeset_t > const & + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: rangeset_t const & + | + | @param i: size_t + | @param v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: rangeset_t const & + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73087,78 +70425,85 @@ class array_of_rangesets(builtins.object) | | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t - | it: qvector< rangeset_t >::iterator | + | @param it: qvector< rangeset_t >::iterator | | erase(self, first, last) -> rangeset_t - | first: qvector< rangeset_t >::iterator - | last: qvector< rangeset_t >::iterator + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) -> 'rangeset_t *' | extract(self) -> rangeset_t | | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' | find(self, x) -> rangeset_t - | x: rangeset_t const & | - | - | find(self, x) -> rangeset_t - | x: rangeset_t const & + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: rangeset_t const & + | + | @param x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: rangeset_t * - | len: size_t + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t - | it: qvector< rangeset_t >::iterator - | x: rangeset_t const & + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) - | x: rangeset_t const & + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: rangeset_t const & | + | @param _newsize: size_t + | @param x: rangeset_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< rangeset_t > & + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73189,24 +70534,30 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | ea1: ea_t - | ea2: ea_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -73217,48 +70568,50 @@ class range_t(builtins.object) | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73272,12 +70625,12 @@ class range_t(builtins.object) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -73290,10 +70643,10 @@ class range_t(builtins.object) Help on function range_t_print in module ida_range: range_t_print(*args) -> 'size_t' + range_t_print(cb) -> str Helper function. Should not be called directly! - range_t_print(cb) -> str - cb: range_t const * + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -73304,17 +70657,20 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | range: range_t const & + | __init__(self, range) -> rangeset_t | + | @param range: range_t const & | | __init__(self, ivs) -> rangeset_t - | ivs: rangeset_t const & + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73323,7 +70679,8 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -73334,160 +70691,157 @@ class rangeset_t(builtins.object) | _print(self) -> size_t | | add(self, *args) -> 'bool' - | Add an address range to the set. If 'range' intersects an existing - | element e, then e is extended to include 'range', and any superfluous - | elements (subsets of e) are removed. - | | add(self, range) -> bool - | @param range: address range to add. cannot be empty (C++: const - | range_t &) - | @return: false if no elements were added (the set was unchanged) + | Add each element of 'aset' to the set. | + | @param range: range_t const & | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool - | start: ea_t - | _end: ea_t - | @return: false if no elements were added (the set was unchanged) | + | @param start: ea_t + | @param _end: ea_t | | add(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if no elements were added (the set was unchanged) + | + | @param aset: rangeset_t const & | | begin(self, *args) -> 'rangeset_t::iterator' + | begin(self) -> range_t | Get an iterator that points to the first element in the set. | | cached_range(self, *args) -> 'range_t const *' - | When searching the rangeset, we keep a cached element to help speed up - | searches. + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) -> 'void' - | Delete all elements from the set. See 'qvector::clear()' + | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) -> 'bool' - | Does an element of the rangeset contain 'ea'? See - | range_t::contains(ea_t) - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) | + | @param ea: ea_t | | contains(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | empty(self, *args) -> 'bool' + | empty(self) -> bool | Does the set have zero elements. | | end(self, *args) -> 'rangeset_t::iterator' - | Get an iterator that points to the end of the set. (This is NOT the - | last element) + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) -> 'range_t const *' + | find_range(self, ea) -> range_t | Get the element from the set that contains 'ea'. | - | find_range(self, ea) -> range_t - | @param ea (C++: ea_t) - | @return: NULL if there is no such element + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) -> 'range_t const &' - | Get the 'range_t' at index 'idx'. - | | getrange(self, idx) -> range_t - | @param idx (C++: int) + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) -> 'bool' - | Is there an ea in 'range' that is also in the rangeset? - | | has_common(self, range) -> bool - | @param range (C++: const range_t &) + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() | + | @param range: range_t const & | | has_common(self, aset) -> bool - | aset: rangeset_t const & + | + | @param aset: rangeset_t const & | | includes(self, *args) -> 'bool' + | includes(self, range) -> bool | Is every ea in 'range' contained in the rangeset? | - | includes(self, range) -> bool - | @param range (C++: const range_t &) + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) -> 'bool' + | intersect(self, aset) -> bool | Set the rangeset to its intersection with 'aset'. | - | intersect(self, aset) -> bool - | @param aset (C++: const rangeset_t &) - | @return: false if the set was unchanged + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' + | is_equal(self, aset) -> bool | Do this rangeset and 'aset' have identical elements? | - | is_equal(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, aset) -> bool | Is every element in the rangeset contained in an element of 'aset'? | - | is_subset_of(self, aset) -> bool - | @param aset (C++: const rangeset_t &) + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) -> 'range_t const &' - | Get the last 'range_t' in the set. + | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) -> 'ea_t' - | Get the smallest ea_t value greater than 'ea' contained in the - | rangeset. - | | next_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) -> 'ea_t' - | Get the smallest ea_t value greater than 'ea' that is not in the same - | range as 'ea'. - | | next_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) -> 'size_t' - | Get the number of 'range_t' elements in the set. + | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) -> 'ea_t' + | prev_addr(self, ea) -> ea_t | Get the largest ea_t value less than 'ea' contained in the rangeset. | - | prev_addr(self, ea) -> ea_t - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' - | Get the largest ea_t value less than 'ea' that is not in the same - | range as 'ea'. - | | prev_range(self, ea) -> ea_t - | @param ea (C++: ea_t) + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) -> 'bool' - | Subtract an address range from the set. All subsets of 'range' will be - | removed, and all elements that intersect 'range' will be - | truncated/split so they do not include 'range'. - | | sub(self, range) -> bool - | @param range: address range to subtract. cannot be empty. (C++: const - | range_t &) - | @return: false if nothing was subtracted (the set was unchanged) + | Subtract each range in 'aset' from the set | + | @param range: range_t const & | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool - | ea: ea_t - | @return: false if nothing was subtracted (the set was unchanged) | + | @param ea: ea_t | | sub(self, aset) -> bool - | aset: rangeset_t const & - | @return: false if nothing was subtracted (the set was unchanged) + | + | @param aset: rangeset_t const & | | swap(self, *args) -> 'void' - | Set this = 'r' and 'r' = this. See 'qvector::swap()' - | | swap(self, r) - | @param r (C++: rangeset_t &) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73515,15 +70869,19 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | x: qvector< range_t > const & + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73533,36 +70891,42 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73575,78 +70939,85 @@ class rangevec_base_t(builtins.object) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73699,11 +71070,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73713,31 +71086,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73750,78 +71129,85 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73840,50 +71226,63 @@ class rangevec_t(rangevec_base_t) | | __hash__ = None +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) -> 'regval_type_t' + reg_data_type(name, subkey=None) -> regval_type_t Get data type of a given value. - reg_data_type(name, subkey=None) -> regval_type_t - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) -> 'bool' + reg_delete(name, subkey=None) -> bool Delete a value from the registry. - reg_delete(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) -> 'bool' + reg_delete_subkey(name) -> bool Delete a key from the registry. - reg_delete_subkey(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) -> 'bool' + reg_delete_tree(name) -> bool Delete a subtree from the registry. - reg_delete_tree(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) -> 'bool' + reg_exists(name, subkey=None) -> bool Is there already a value with the given name? - reg_exists(name, subkey=None) -> bool - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -73898,759 +71297,718 @@ reg_load(*args) -> 'void' Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) -> 'PyObject *' + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - reg_read_binary(name, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) -> 'bool' + reg_read_bool(name, defval, subkey=None) -> bool Read boolean value from the registry. - reg_read_bool(name, defval, subkey=None) -> bool - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) -> 'int' + reg_read_int(name, defval, subkey=None) -> int Read integer value from the registry. - reg_read_int(name, defval, subkey=None) -> int - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) -> 'PyObject *' + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - reg_read_string(name, subkey=None, _def=None) -> PyObject * - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - def: char const * - @return: success + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) -> 'qstrvec_t *' - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - reg_read_strlist(subkey) - @param subkey (C++: const char *) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) -> 'bool' + reg_subkey_exists(name) -> bool Is there already a key with the given name? - reg_subkey_exists(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - reg_subkey_subkeys(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - reg_subkey_values(name) -> PyObject * - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) -> 'void' - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) -> 'void' + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) Update list of strings associated with given key. - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) -> 'PyObject *' + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * Write binary data to the registry. - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - @param name: value name (C++: const char *) - py_bytes: PyObject * - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) -> 'void' + reg_write_bool(name, value, subkey=None) Write boolean value to the registry. - reg_write_bool(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) -> 'void' + reg_write_int(name, value, subkey=None) Write integer value to the registry. - reg_write_int(name, value, subkey=None) - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) -> 'void' + reg_write_string(name, utf8, subkey=None) Write a string to the registry. - reg_write_string(name, utf8, subkey=None) - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) -> 'ea_t' find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) -> 'int *' + find_error(ea, sflag) -> ea_t Find next error or problem. - find_error(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) -> 'ea_t' + find_not_func(ea, sflag) -> ea_t Find next code address that does not belong to a function. - find_not_func(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) -> 'int *' + find_notype(ea, sflag) -> ea_t Find next operand without any type info. - find_notype(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_reg_access in module ida_search: find_reg_access(*args) -> 'ea_t' - Find access to a register.This function does not care about the - control flow and probes all instructions in the specified range, - starting from START_EA. Only direct references to registers are - detected. Function calls and system traps are ignored. - find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t - @param out: pointer to the output buffer. must be non-null. upon - success contains info about the found register. upon - failed search for a read access out->range contains the - info about the non-redefined parts of the register. (C++: - struct reg_access_t *) - @param start_ea: starting address (C++: ea_t) - @param end_ea: ending address. BADADDR means that the end limit is - missing. otherwise, if the search direction is - SEARCH_UP, END_EA must be lower than START_EA. (C++: - ea_t) - @param regname: the register to search for. (C++: const char *) - @param sflag: combination of Search flags bits. (C++: int) - @return: the found address. BADADDR if not found or error. + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) -> 'ea_t' - See 'search()' - find_text(start_ea, y, x, ustr, sflag) -> ea_t - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) -> 'bool' - Is the 'SEARCH_DOWN' bit set? - search_down(sflag) -> bool - @param sflag (C++: int) + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if the search was cancelled. +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DEF -""" -find_reg_access: search for a definition (write access) -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +(start address of segment - segment base linear address) -ida_search.SEARCH_NEXT -""" -skip the starting address when searching. this bit is useful only for -'search()' , 'bin_search2()' , 'find_reg_access()' . find_.. functions -skip the starting address automatically. -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -do not test if the user clicked cancel to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -do not display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (supported only for the text -search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" - -ida_search.SEARCH_USE -""" -find_reg_access: search for a use (read access) -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) -> 'bool' - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - add_segm(para, start, end, name, sclass, flags=0) -> bool - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @retval 1: ok + @retval 0: failed, a warning message is displayed + @param flags: (C++: int) Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) -> 'bool' - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - add_segm_ex(s, name, sclass, flags) -> bool - @param s: pointer to filled segment structure. segment - selector should have proper mapping (see - set_selector() ). if s.start_ea== BADADDR then - s.start_ea <- get_segm_base(&s) if s.end_ea== - BADADDR , then a segment up to the next segment will - be created (if the next segment doesn't exist, then - 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and - the new segment would overlap the next segment, - s.end_ea is adjusted properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) -> 'bool' + add_segment_translation(segstart, mappedseg) -> bool Add segment translation. - add_segment_translation(segstart, mappedseg) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) -> 'sel_t' - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - allocate_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) -> 'int' - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - change_segment_status(s, is_deb_segm) -> int - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) -> 'void' + del_segment_translations(segstart) Delete the translation list - del_segment_translations(segstart) - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) -> 'sel_t' + find_free_selector() -> sel_t Find first unused selector. + + @return: a number >= 1 Help on function find_selector in module ida_segment: find_selector(*args) -> 'sel_t' + find_selector(base) -> sel_t Find a selector that has mapping to the specified paragraph. - find_selector(base) -> sel_t - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) -> 'sel_t' get_defsr(s, reg) -> sel_t - s: segment_t * - reg: int + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) -> 'segment_t *' + get_first_seg() -> segment_t Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) -> 'sel_t' + get_group_selector(grpsel) -> sel_t Get common selector for a group of segments. - get_group_selector(grpsel) -> sel_t - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) -> 'segment_t *' + get_last_seg() -> segment_t Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) -> 'segment_t *' + get_next_seg(ea) -> segment_t Get pointer to the next segment. - get_next_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) -> 'segment_t *' + get_prev_seg(ea) -> segment_t Get pointer to the previous segment. - get_prev_seg(ea) -> segment_t - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) -> 'ea_t' - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - get_segm_base(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) -> 'segment_t *' - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - get_segm_by_name(name) -> segment_t - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) -> 'segment_t *' - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - get_segm_by_sel(selector) -> segment_t - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) -> 'qstring *' + get_segm_class(s) -> str Get segment class. Segment class is arbitrary text (max 8 characters). - get_segm_class(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) -> 'qstring *' + get_segm_name(s, flags=0) -> str Get true segment name by pointer to segment. - get_segm_name(s, flags=0) -> str - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) -> 'int' + get_segm_num(ea) -> int Get number of segment by address. - get_segm_num(ea) -> int - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) -> 'ea_t' - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - get_segm_para(s) -> ea_t - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) -> 'int' + get_segm_qty() -> int Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) -> 'char const *' + get_segment_alignment(align) -> char const * Get text representation of segment alignment code. - get_segment_alignment(align) -> char const * - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) -> 'qstring *' + get_segment_cmt(s, repeatable) -> str Get segment comment. - get_segment_cmt(s, repeatable) -> str - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) -> 'char const *' + get_segment_combination(comb) -> char const * Get text representation of segment combination code. - get_segment_combination(comb) -> char const * - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) -> 'ssize_t' + get_segment_translations(transmap, segstart) -> ssize_t Get segment translation list. - get_segment_translations(transmap, segstart) -> ssize_t - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) -> 'qstring *' + get_visible_segm_name(s) -> str Get segment name by pointer to segment. - get_visible_segm_name(s) -> str - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) -> 'sel_t *, ea_t *' - Get description of selector (0.. 'get_selector_qty()' -1) - getn_selector(n) -> bool - @param n (C++: int) + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) -> 'segment_t *' - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - getnseg(n) -> segment_t - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) -> 'segment_t *' + getseg(ea) -> segment_t Get pointer to segment by linear address. - getseg(ea) -> segment_t - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) -> 'bool' - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - is_finally_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) -> 'bool' + is_miniidb() -> bool Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) -> 'bool' + is_segm_locked(segm) -> bool Is a segment pointer locked? - is_segm_locked(segm) -> bool - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) -> 'bool' - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - is_spec_ea(ea) -> bool - @param ea: linear address (C++: ea_t) + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) -> 'bool' - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - is_spec_segm(seg_type) -> bool - @param seg_type (C++: uchar) + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) -> 'bool' - See 'SFL_HIDDEN' . - is_visible_segm(s) -> bool - @param s (C++: segment_t *) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) -> 'void' - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - lock_segm(segm, lock) - @param segm (C++: const segment_t *) - @param lock (C++: bool) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -74661,7 +72019,8 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment - | _segm: segment_t const * + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -74683,76 +72042,74 @@ class lock_segment(builtins.object) Help on function move_segm in module ida_segment: move_segm(*args) -> 'int' - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - move_segm(s, to, flags=0) -> int - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) -> 'bool' - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - move_segm_start(ea, newstart, mode) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) -> 'adiff_t' + segm_adjust_diff(s, delta) -> adiff_t Truncate and sign extend a delta depending on the segment. - segm_adjust_diff(s, delta) -> adiff_t - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) -> 'ea_t' + segm_adjust_ea(s, ea) -> ea_t Truncate an address depending on the segment. - segm_adjust_ea(s, ea) -> ea_t - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) Help on class segment_t in module ida_segment: @@ -74775,9 +72132,11 @@ class segment_t(ida_range.range_t) | delete_segment_t(self) | | abits(self, *args) -> 'int' + | abits(self) -> int | Get number of address bits. | | abytes(self, *args) -> 'int' + | abytes(self) -> int | Get number of address bytes. | | clr_comorg(self, *args) -> 'void' @@ -74790,12 +72149,15 @@ class segment_t(ida_range.range_t) | comorg(self) -> bool | | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool | Is a 16-bit segment? | | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool | Is a 32-bit segment? | | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool | Is a 64-bit segment? | | is_header_segm(self, *args) -> 'bool' @@ -74818,32 +72180,39 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) - | debseg: bool + | + | @param debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) - | on: bool + | + | @param on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) - | hide: bool + | + | @param hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) - | ldrseg: bool + | + | @param ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) - | visible: bool + | + | @param visible: bool | | update(self, *args) -> 'bool' - | Update segment information. You must call this function after - | modification of segment characteristics. Note that not all fields of - | segment structure may be modified directly, there are special - | functions to modify some fields. + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | | use64 = is_64bit(self, *args) -> 'bool' | @@ -74851,115 +72220,121 @@ class segment_t(ida_range.range_t) | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | defsr | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -74982,814 +72357,380 @@ class segment_t(ida_range.range_t) Help on function segtype in module ida_segment: segtype(*args) -> 'uchar' + segtype(ea) -> uchar Get segment type. - segtype(ea) -> uchar - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) -> 'ea_t' + sel2ea(selector) -> ea_t Get mapping of a selector as a linear address. - sel2ea(selector) -> ea_t - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) -> 'ea_t' + sel2para(selector) -> ea_t Get mapping of a selector. - sel2para(selector) -> ea_t - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) -> 'void' set_defsr(s, reg, value) - s: segment_t * - reg: int - value: sel_t + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' + set_group_selector(grp, sel) -> int Create a new group of segments (used OMF files). - set_group_selector(grp, sel) -> int - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) -> 'bool' - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - set_segm_addressing(s, bitness) -> bool - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) -> 'bool' + set_segm_base(s, newbase) -> bool Internal function. - set_segm_base(s, newbase) -> bool - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) -> 'int' + set_segm_class(s, sclass, flags=0) -> int Set segment class. - set_segm_class(s, sclass, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is NULL or bad or segment is NULL + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + @param flags: (C++: int) Help on function set_segm_end in module ida_segment: set_segm_end(*args) -> 'bool' - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_end(ea, newend, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) -> 'int' - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - set_segm_name(s, name, flags=0) -> int - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - @retval: 1 - ok, name is good and segment is renamed - @retval: 0 - failure, name is bad or segment is NULL + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) -> 'bool' - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - set_segm_start(ea, newstart, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, a warning message is displayed + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) -> 'void' + set_segment_cmt(s, cmt, repeatable) Set segment comment. - set_segment_cmt(s, cmt, repeatable) - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) -> 'bool' + set_segment_translations(segstart, transmap) -> bool Set new translation list. - set_segment_translations(segstart, transmap) -> bool - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - @retval: 1 - ok - @retval: 0 - too many translations or bad segstart + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) -> 'void' - See 'SFL_HIDDEN' . - set_visible_segm(s, visible) - @param s (C++: segment_t *) - @param visible (C++: bool) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) -> 'sel_t' - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - setup_selector(segbase) -> sel_t - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) -> 'void' - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - std_out_segm_footer(ctx, seg) - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function update_segm in module ida_segment: update_segm(*args) -> 'bool' update_segm(s) -> bool - @param s (C++: segment_t *) + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes -will be decoded accordingly -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -set all default segment register values to 'BADSEL' (undefine all -default segment registers) -""" - -ida_segment.ADDSEG_NOTRUNC -""" -don't truncate the new segment at the beginning of the next segment if -they overlap. destroy/truncate old segments instead. -""" - -ida_segment.ADDSEG_OR_DIE -""" -'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new ranges of the created segment. -please note that the ranges that were already enabled before creating -the segment will not change their storage type. -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -not enough memory (might be because the segment is too big) -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok -""" - -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -call loader only once with the special calling method. valid for -'rebase_program()' . see 'loader_t::move_segm' . -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -move netnodes instead of changing inf.netdelta (this is slower) valid -for 'rebase_program()' -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -loader segments will overwrite any existing debugger segments when -moved. valid for 'move_segm()' -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -don't move info from the start of segment to the new start address -(for 'set_segm_start()' ) -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -use sparse storage if extending the segment (for 'set_segm_start()' , -'set_segm_end()' ) -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -segment with 'extern' definitions. no instructions are allowed -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -This value is used by the PharLap OMF for page (4K) alignment. It is -not supported by LINK. -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -Relocatable, aligned on a double word (4-byte) boundary. -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -Private. Do not combine with any other program segment. -""" - -ida_segment.scPub -""" -Public. Combine by appending at an offset that meets the alignment -requirement. -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -Stack. Combine as for C=2. This combine type forces byte alignment. -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) -> 'void' + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) Duplicate segment register ranges. - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) -> 'bool' - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - del_sreg_range(ea, rg) -> bool - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) -> 'bool' - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - get_prev_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) -> 'sel_t' - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - get_sreg(ea, rg) -> sel_t - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) -> 'bool' + get_sreg_range(out, ea, rg) -> bool Get segment register range by linear address. - get_sreg_range(out, ea, rg) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) -> 'int' + get_sreg_range_num(ea, rg) -> int Get number of segment register range by address. - get_sreg_range_num(ea, rg) -> int - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) -> 'size_t' + get_sreg_ranges_qty(rg) -> size_t Get number of segment register ranges. - get_sreg_ranges_qty(rg) -> size_t - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) -> 'bool' + getn_sreg_range(out, rg, n) -> bool Get segment register range by its number. - getn_sreg_range(out, rg, n) -> bool - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) -> 'void' + set_default_dataseg(ds_sel) Set default value of DS register for all segments. - set_default_dataseg(ds_sel) - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) -> 'bool' + set_default_sreg_value(sg, rg, value) -> bool Set default value of a segment register for a segment. - set_default_sreg_value(sg, rg, value) -> bool - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) -> 'void' - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - set_sreg_at_next_code(ea1, ea2, rg, value) - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) -> 'bool' - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success Help on class sreg_range_t in module ida_segregs: @@ -75815,79 +72756,85 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' - | Set 'start_ea' , 'end_ea' to 0. + | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' - | Compare two 'range_t' instances, based on the start_ea. - | | compare(self, r) -> int - | @param r (C++: const range_t &) + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' - | Is 'ea' in the address range? - | | contains(self, ea) -> bool - | @param ea (C++: ea_t) + | Is every ea in 'r' also in this range_t? | + | @param ea: ea_t | | contains(self, r) -> bool - | r: range_t const & + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' - | Is the size of the 'range_t' <= 0? + | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' - | Ensure that the 'range_t' includes 'ea'. - | | extend(self, ea) - | @param ea (C++: ea_t) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' - | Assign the 'range_t' to the intersection between the 'range_t' and - | 'r'. - | | intersect(self, r) - | @param r (C++: const range_t &) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' - | Is there an ea in 'r' that is also in this 'range_t' ? - | | overlaps(self, r) -> bool - | @param r (C++: const range_t &) + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' - | Get 'end_ea' - 'start_ea' . + | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -75901,68 +72848,128 @@ class sreg_range_t(ida_range.range_t) | endEA | | end_ea - | range_t_end_ea_get(self) -> ea_t + | end_ea | | startEA | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | | __hash__ = None -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA +Module "ida_srclang"s docstring: """ +Third-party compiler support.""" -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" +Help on function parse_decls_for_srclang in module ida_srclang: -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" +parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source -ida_segregs.SR_user +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) -> 'bool' + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) -> 'bool' + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) -> 'int' + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: """ -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + Help on function build_strlist in module ida_strlist: build_strlist(*args) -> 'void' + build_strlist() Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) -> 'void' + clear_strlist() Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) -> 'bool' - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - get_strlist_item(si, n) -> bool - @param si (C++: string_info_t *) - @param n (C++: size_t) + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: get_strlist_options(*args) -> 'strwinsetup_t const *' + get_strlist_options() -> strwinsetup_t Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) -> 'size_t' - Get number of elements in the string list. The list will be loaded - from the database (if saved) or built from scratch. + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -75972,12 +72979,14 @@ class string_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | _ea: ea_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: string_info_t const & + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -75994,16 +73003,16 @@ class string_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type Help on class strwinsetup_t in module ida_strlist: @@ -76025,7 +73034,10 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * - | py_t: PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76037,16 +73049,16 @@ class strwinsetup_t(builtins.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -76054,71 +73066,72 @@ class strwinsetup_t(builtins.object) | thisown | The membership flag +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) -> 'tid_t' - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - add_struc(idx, name, is_union=False) -> tid_t - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) -> 'struc_error_t' + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t Add member to existing structure. - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) -> 'bool' + del_member_tinfo(sptr, mptr) -> bool Delete tinfo for given member. - del_member_tinfo(sptr, mptr) -> bool - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) -> 'bool' + del_struc(sptr) -> bool Delete a structure type. - del_struc(sptr) -> bool - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) -> 'bool' + del_struc_member(sptr, offset) -> bool Delete member at given offset. - del_struc_member(sptr, offset) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) -> 'int' + del_struc_members(sptr, off1, off2) -> int Delete members which occupy range of offsets (off1..off2). - del_struc_members(sptr, off1, off2) -> int - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error Help on class dyn_member_ref_array in module ida_struct: @@ -76129,12 +73142,14 @@ class dyn_member_ref_array(builtins.object) | | __getitem__(self, *args) -> 'member_t const &' | __getitem__(self, i) -> member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, _data, _count) -> dyn_member_ref_array - | _data: member_t * - | _count: size_t + | + | @param _data: member_t * + | @param _count: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -76146,8 +73161,9 @@ class dyn_member_ref_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: member_t const & + | + | @param i: size_t + | @param v: member_t const & | | __swig_destroy__ = delete_dyn_member_ref_array(...) | delete_dyn_member_ref_array(self) @@ -76162,10 +73178,10 @@ class dyn_member_ref_array(builtins.object) | list of weak references to the object (if defined) | | count - | dyn_member_ref_array_count_get(self) -> size_t + | count | | data - | dyn_member_ref_array_data_get(self) -> member_t + | data | | thisown | The membership flag @@ -76173,38 +73189,41 @@ class dyn_member_ref_array(builtins.object) Help on function expand_struc in module ida_struct: expand_struc(*args) -> 'bool' + expand_struc(sptr, offset, delta, recalc=True) -> bool Expand/Shrink structure type. - expand_struc(sptr, offset, delta, recalc=True) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) -> 'member_t *' - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - get_best_fit_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_innermost_member in module ida_struct: get_innermost_member(*args) -> 'PyObject *' - get_innermost_member(sptr, offset) -> PyObject * + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) Get the innermost member at the given offset + @param sptr: the starting structure @param offset: offset into the starting structure - @return: - - None on failure + @return: - None on failure - tuple(member_t, struct_t, offset) where member_t: a member in SPTR (it is not a structure), struct_t: the innermost structure, @@ -76213,325 +73232,327 @@ get_innermost_member(*args) -> 'PyObject *' Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) -> 'ea_t' - For unions: returns number of members, for structs: returns size of - structure. - get_max_offset(sptr) -> ea_t - @param sptr (C++: struc_t *) + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) -> 'member_t *' + get_member(sptr, offset) -> member_t Get member at given offset. - get_member(sptr, offset) -> member_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) -> 'struc_t **' + get_member_by_fullname(fullname) -> member_t Get a member by its fully qualified name, "struct.field". - get_member_by_fullname(fullname) -> member_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) -> 'qstring *, struc_t **' - Check if the specified member id points to a struct member. - get_member_by_id(mid) -> member_t - @param mid (C++: tid_t) + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) -> 'member_t *' + get_member_by_name(sptr, membername) -> member_t Get a member by its name, like "field44". - get_member_by_name(sptr, membername) -> member_t - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) -> 'qstring *' + get_member_cmt(mid, repeatable) -> str Get comment of structure member. - get_member_cmt(mid, repeatable) -> str - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) -> 'qstring *' + get_member_fullname(mid) -> str Get a member's fully qualified name, "struct.field". - get_member_fullname(mid) -> str - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) -> 'tid_t' + get_member_id(sptr, offset) -> tid_t Get member id at given offset. - get_member_id(sptr, offset) -> tid_t - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) -> 'qstring *' - Get name of structure member. - get_member_name(mid) -> str - @param mid (C++: tid_t) + + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) -> 'asize_t' - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - get_member_size(mptr) -> asize_t - @param mptr (C++: const member_t *) + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) -> 'struc_t *' + get_member_struc(fullname) -> struc_t Get containing structure of member by its full name "struct.field". - get_member_struc(fullname) -> struc_t - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) -> 'bool' + get_member_tinfo(tif, mptr) -> bool Get tinfo for given member. - get_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) -> 'ssize_t' + get_next_member_idx(sptr, off) -> ssize_t Get the next member idx, if it does not exist, return -1. - get_next_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) -> 'bool' + get_or_guess_member_tinfo(tif, mptr) -> bool Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - get_or_guess_member_tinfo(tif, mptr) -> bool - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) -> 'ssize_t' + get_prev_member_idx(sptr, off) -> ssize_t Get the prev member idx, if it does not exist, return -1. - get_prev_member_idx(sptr, off) -> ssize_t - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) -> 'struc_t *' + get_sptr(mptr) -> struc_t Get child struct if member is a struct. - get_sptr(mptr) -> struc_t - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) -> 'struc_t *' + get_struc(id) -> struc_t Get pointer to struct type info. - get_struc(id) -> struc_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) -> 'ea_t' + get_struc_first_offset(sptr) -> ea_t Get offset of first member. - get_struc_first_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) -> 'ea_t' + get_struc_last_offset(sptr) -> ea_t Get offset of last member. - get_struc_last_offset(sptr) -> ea_t - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) -> 'ea_t' + get_struc_next_offset(sptr, offset) -> ea_t Get offset of member with smallest offset larger than 'offset'. - get_struc_next_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) -> 'ea_t' + get_struc_prev_offset(sptr, offset) -> ea_t Get offset of member with largest offset less than 'offset'. - get_struc_prev_offset(sptr, offset) -> ea_t - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) -> 'bool' + is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"? - is_anonymous_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) -> 'bool' + is_dummy_member_name(name) -> bool Is member name an auto-generated name? - is_dummy_member_name(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) -> 'bool' + is_member_id(mid) -> bool Is a member id? - is_member_id(mid) -> bool - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) -> 'bool' + is_special_member(id) -> bool Is a special member with the name beginning with ' '? - is_special_member(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) -> 'bool' + is_union(id) -> bool Is a union? - is_union(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) -> 'bool' + is_varmember(mptr) -> bool Is variable size member? - is_varmember(mptr) -> bool - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) -> 'bool' + is_varstr(id) -> bool Is variable size structure? - is_varstr(id) -> bool - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -76549,27 +73570,39 @@ class member_t(builtins.object) | delete_member_t(self) | | by_til(self, *args) -> 'bool' + | by_til(self) -> bool | Was the member created due to the type system? | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. + | | get_soff(self, *args) -> 'ea_t' + | get_soff(self) -> ea_t | Get start offset (for unions - returns 0) | | has_ti(self, *args) -> 'bool' + | has_ti(self) -> bool | Has type information? | | has_union(self, *args) -> 'bool' + | has_union(self) -> bool | Has members of type "union"? | | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool | Is a base class member? | | is_destructor(self, *args) -> 'bool' + | is_destructor(self) -> bool | Is a virtual destructor? | | is_dupname(self, *args) -> 'bool' + | is_dupname(self) -> bool | Duplicate name was resolved during import? | | unimem(self, *args) -> 'bool' + | unimem(self) -> bool | Is a member of a union? | | ---------------------------------------------------------------------- @@ -76582,19 +73615,19 @@ class member_t(builtins.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -76602,130 +73635,129 @@ class member_t(builtins.object) Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) -> 'opinfo_t *' + retrieve_member_info(buf, mptr) -> opinfo_t Get operand type info for member. - retrieve_member_info(buf, mptr) -> opinfo_t - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) -> 'void' + save_struc(sptr, may_update_ltypes=True) Update struct information in the database (internal function) - save_struc(sptr, may_update_ltypes=True) - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) -> 'bool' + set_member_cmt(mptr, cmt, repeatable) -> bool Set member comment. - set_member_cmt(mptr, cmt, repeatable) -> bool - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) -> 'bool' + set_member_name(sptr, offset, name) -> bool Set name of member at given offset. - set_member_name(sptr, offset, name) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) -> 'smt_code_t' + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t Set tinfo for given member. - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) -> 'bool' - Set type of member at given offset (also see 'add_struc_member()' ) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) -> 'bool' - Set structure alignment ( 'SF_ALIGN' ) - set_struc_align(sptr, shift) -> bool - @param sptr (C++: struc_t *) - @param shift (C++: int) + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) -> 'void' + set_struc_hidden(sptr, is_hidden) Hide/unhide a struct type. - set_struc_hidden(sptr, is_hidden) - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) -> 'bool' - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - set_struc_idx(sptr, idx) -> bool - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) -> 'void' + set_struc_listed(sptr, is_listed) Add/remove a struct type from the struct list. - set_struc_listed(sptr, is_listed) - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) -> 'bool' + stroff_as_size(plen, sptr, value) -> bool Should display a structure offset expression as the structure size? - stroff_as_size(plen, sptr, value) -> bool - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -76746,45 +73778,75 @@ class struc_t(builtins.object) | delete_struc_t(self) | | from_til(self, *args) -> 'bool' + | from_til(self) -> bool | Does structure come from a type library? | | get_alignment(self, *args) -> 'int' - | See 'SF_ALIGN' . + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t | | get_member(self, index) | | has_union(self, *args) -> 'bool' + | has_union(self) -> bool | Has members of type "union"? | | is_choosable(self, *args) -> 'bool' - | Is included in chooser list? Use 'set_struc_listed' to change the - | listed status + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) -> 'bool' + | is_frame(self) -> bool | Is this structure a function frame? | | is_ghost(self, *args) -> 'bool' + | is_ghost(self) -> bool | Is a ghost copy of a local type? | | is_hidden(self, *args) -> 'bool' - | Is the structure collapsed? Use 'set_struc_hidden' to change the - | hidden status + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) -> 'bool' + | is_union(self) -> bool | Is a union? | | is_varstr(self, *args) -> 'bool' + | is_varstr(self) -> bool | Is variable size structure? | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | | set_alignment(self, *args) -> 'void' - | Do not use; use 'set_struc_align()' - | | set_alignment(self, shift) - | @param shift (C++: int) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) - | @param _is_ghost (C++: bool) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76796,22 +73858,22 @@ class struc_t(builtins.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -76827,7 +73889,8 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -76836,8 +73899,9 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int - | @param sptr (C++: struc_t *) - | @param mptr (C++: member_t *) + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76854,148 +73918,40 @@ class struct_field_visitor_t(builtins.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) -> 'adiff_t *' - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -is a union? varunions are prohibited! -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) -> 'int' + add_tryblk(tb) -> int Add one try block information. - add_tryblk(tb) -> int - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -77023,13 +73979,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Methods inherited from try_handler_t: @@ -77041,21 +73997,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77065,31 +74023,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77099,78 +74063,85 @@ class catch_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77198,15 +74169,19 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | x: qvector< catch_t > const & + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77216,36 +74191,42 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< catch_t > const & + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: catch_t const & + | + | @param i: size_t + | @param v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: catch_t const & + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< catch_t >::const_iterator' | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77258,78 +74239,85 @@ class catchvec_t(builtins.object) | | end(self, *args) -> 'qvector< catch_t >::const_iterator' | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t - | it: qvector< catch_t >::iterator | + | @param it: qvector< catch_t >::iterator | | erase(self, first, last) -> catch_t - | first: qvector< catch_t >::iterator - | last: qvector< catch_t >::iterator + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) -> 'catch_t *' | extract(self) -> catch_t | | find(self, *args) -> 'qvector< catch_t >::const_iterator' | find(self, x) -> catch_t - | x: catch_t const & | - | - | find(self, x) -> catch_t - | x: catch_t const & + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) - | x: catch_t const & + | + | @param x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: catch_t const & + | + | @param x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: catch_t * - | len: size_t + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t - | it: qvector< catch_t >::iterator - | x: catch_t const & + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) - | x: catch_t const & + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: catch_t const & | + | @param _newsize: size_t + | @param x: catch_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< catch_t > & + | + | @param r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77354,31 +74342,39 @@ class catchvec_t(builtins.object) Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) -> 'void' + del_tryblks(range) Delete try block information in the specified range. - del_tryblks(range) - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) -> 'ea_t' + find_syseh(ea) -> ea_t Find the start address of the system eh region including the argument. - find_syseh(ea) -> ea_t - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) -> 'size_t' - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - get_tryblks(tbv, range) -> size_t - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() Help on class seh_t in module ida_tryblks: @@ -77409,10 +74405,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -77421,21 +74417,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77445,31 +74443,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77479,78 +74483,85 @@ class seh_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77597,10 +74608,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -77610,11 +74621,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77624,31 +74637,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -77658,78 +74677,85 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77763,7 +74789,9 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | r: tryblk_t const & + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -77801,7 +74829,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -77811,11 +74839,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77825,109 +74855,122 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< range_t > const & + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: range_t const & + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: range_t const & + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t - | it: qvector< range_t >::iterator | + | @param it: qvector< range_t >::iterator | | erase(self, first, last) -> range_t - | first: qvector< range_t >::iterator - | last: qvector< range_t >::iterator + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | x: range_t const & | - | - | find(self, x) -> range_t - | x: range_t const & + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) - | x: range_t const & + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: range_t const & + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: range_t * - | len: size_t + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t - | it: qvector< range_t >::iterator - | x: range_t const & + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | x: range_t const & + | + | @param x: range_t const & + | + | push_back(self) -> range_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: range_t const & | + | @param _newsize: size_t + | @param x: range_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< range_t > & + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -77955,15 +74998,19 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | x: qvector< tryblk_t > const & + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -77973,36 +75020,42 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< tryblk_t > const & + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: tryblk_t const & + | + | @param i: size_t + | @param v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: tryblk_t const & + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -78015,78 +75068,85 @@ class tryblks_t(builtins.object) | | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t - | it: qvector< tryblk_t >::iterator | + | @param it: qvector< tryblk_t >::iterator | | erase(self, first, last) -> tryblk_t - | first: qvector< tryblk_t >::iterator - | last: qvector< tryblk_t >::iterator + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) -> 'tryblk_t *' | extract(self) -> tryblk_t | | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' | find(self, x) -> tryblk_t - | x: tryblk_t const & | - | - | find(self, x) -> tryblk_t - | x: tryblk_t const & + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: tryblk_t const & + | + | @param x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: tryblk_t * - | len: size_t + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t - | it: qvector< tryblk_t >::iterator - | x: tryblk_t const & + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) - | x: tryblk_t const & + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: tryblk_t const & | + | @param _newsize: size_t + | @param x: tryblk_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< tryblk_t > & + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -78108,74 +75168,73 @@ class tryblks_t(builtins.object) | | __hash__ = None -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' - Load a til file. - add_til(name, flags) -> int - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) -> 'uint32' - \call2{alloc_type_ordinals,ti,1} - alloc_type_ordinal(ti) -> uint32 - @param ti (C++: til_t *) + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) -> 'uint32' + alloc_type_ordinals(ti, qty) -> uint32 Allocate a range of ordinal numbers for new types. - alloc_type_ordinals(ti, qty) -> uint32 - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -78188,7 +75247,8 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -78197,9 +75257,10 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int - | @param v (C++: argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78216,129 +75277,122 @@ class aloc_visitor_t(builtins.object) Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) -> 'bool' - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - append_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) -> 'bool' - Serialize argument location Deserialize an argument location. Argument - FORBID_STKOFF check location type. It can be used, for example, to - check the return location of a function that cannot return a value in - the stack - append_argloc(out, vloc) -> bool - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool - out: rangeset_t * - typid: uint32 - offset: uint64 + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) -> 'bool' - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - apply_callee_tinfo(caller, tif) -> bool - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) -> 'bool' - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - apply_cdecl(til, ea, decl, flags=0) -> bool - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) -> 'bool' + apply_named_type(ea, name) -> bool Apply the specified named type to the address. - apply_named_type(ea, name) -> bool - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) -> 'bool' - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - apply_once_tinfo_and_name(dea, tif, name) -> bool - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) -> 'bool' - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - apply_tinfo(ea, tif, flags) -> bool - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) -> 'bool' - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) -> 'bool' apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -78352,31 +75406,39 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | r: argloc_t const & + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -78384,213 +75446,245 @@ class argloc_t(builtins.object) | delete_argloc_t(self) | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) -> 'int' - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this == r and r == this. | - | swap(self, r) - | @param r (C++: argloc_t &) + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -78623,11 +75717,15 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | a: argloc_t const & + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: argpart_t const & + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -78635,25 +75733,27 @@ class argpart_t(argloc_t) | delete_argpart_t(self) | | bad_offset(self, *args) -> 'bool' + | bad_offset(self) -> bool | Does this argpart have a valid offset? | | bad_size(self, *args) -> 'bool' + | bad_size(self) -> bool | Does this argpart have a valid size? | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: argpart_t &) + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -78663,226 +75763,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: argloc_t const & + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' - | Use 'consume_rrel()' - | | _consume_rrel(self, p) -> bool - | @param p (C++: rrel_t *) + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' - | Use 'consume_scattered()' - | | _consume_scattered(self, p) -> bool - | @param p (C++: scattered_aloc_t *) + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' - | Use 'set_badloc()' + | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' - | Set biggest element in internal union (careful - this function does - | not clean up!) - | | _set_biggest(self, ct, data) - | @param ct (C++: argloc_type_t) - | @param data (C++: biggest_t) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' - | Set custom argument location (careful - this function does not clean - | up!) - | | _set_custom(self, ct, pdata) - | @param ct (C++: argloc_type_t) - | @param pdata (C++: void *) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' - | Use set_ea - | | _set_ea(self, _ea) - | @param _ea (C++: ea_t) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' - | Use 'set_reg1()' - | | _set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' - | Use 'set_reg2()' - | | _set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' - | Use 'set_stkoff()' - | | _set_stkoff(self, off) - | @param off (C++: sval_t) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool | Move the location to point 'delta' bytes further. | - | advance(self, delta) -> bool - | @param delta (C++: int) + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' - | Get type ( 'Argument location types' ) + | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: argloc_t const & + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' - | Set register-relative location - can't be NULL. - | | consume_rrel(self, p) - | @param p (C++: rrel_t *) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) | Set distributed argument location. | - | consume_scattered(self, p) - | @param p (C++: scattered_aloc_t *) + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' - | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' - | Get the global address. Use when 'atype()' == 'ALOC_STATIC' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' - | Get all register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' - | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool | TRUE if argloc has a stack part. | | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' - | See 'ALOC_NONE' . + | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' - | See 'ALOC_CUSTOM' . + | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' - | See 'ALOC_STATIC' . + | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' - | 'is_scattered()' || 'is_reg2()' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' - | 'is_reg1()' || 'is_reg2()' + | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' - | See 'ALOC_REG1' . + | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' - | See 'ALOC_REG2' . + | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' - | See 'ALOC_RREL' . + | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' - | See 'ALOC_DIST' . + | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' - | See 'ALOC_STACK' . - | - | justify_reg_high(self, *args) -> 'void' - | Set register offset to justify it to the upper part of _SLOTSIZE. - | - | justify_reg_high(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) - | - | justify_stkoff_right(self, *args) -> 'void' - | Set stack offset to right-justify it in _SLOTSIZE. - | - | justify_stkoff_right(self, size, _slotsize) - | @param size (C++: size_t) - | @param _slotsize (C++: size_t) + | is_stkoff(self) -> bool + | See ALOC_STACK. | | reg1(self, *args) -> 'int' - | Get the register info. Use when 'atype()' == 'ALOC_REG1' or - | 'ALOC_REG2' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' - | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' - | Get offset from the beginning of the register in bytes. Use when - | 'atype()' == 'ALOC_REG1' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' - | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' + | set_badloc(self) | Set to invalid location. | | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) | Set static ea location. | - | set_ea(self, _ea) - | @param _ea (C++: ea_t) + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) | Set register location. | - | set_reg1(self, reg, off=0) - | @param reg (C++: int) - | @param off (C++: int) + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) | Set secondary register location. | - | set_reg2(self, _reg1, _reg2) - | @param _reg1 (C++: int) - | @param _reg2 (C++: int) + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) | Set stack offset location. | - | set_stkoff(self, off) - | @param off (C++: sval_t) + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' - | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -78907,15 +76044,19 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | x: qvector< argpart_t > const & + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -78925,36 +76066,42 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -78967,78 +76114,85 @@ class argpartvec_t(builtins.object) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -79071,7 +76225,8 @@ class argtinfo_helper_t(builtins.object) | | __init__(self, *args) | __init__(self) -> argtinfo_helper_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -79079,39 +76234,39 @@ class argtinfo_helper_t(builtins.object) | delete_argtinfo_helper_t(self) | | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool | The call instruction with a delay slot?. | - | has_delay_slot(self, arg0) -> bool - | arg0: ea_t + | @param arg0: ea_t | | is_stkarg_load(self, *args) -> 'bool' - | Is the current insn a stkarg load?. if yes:src: index of the source - | operand in \insn_t{ops}dst: index of the destination operand in - | \insn_t{ops} \insn_t{ops}[dst].addr is expected to have the stack - | offset - | | is_stkarg_load(self, insn, src, dst) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param src (C++: int *) - | @param dst (C++: int *) + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) | | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool | Set the operand type as specified. | - | set_op_tinfo(self, insn, x, tif, name) -> bool - | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - | @param x (C++: const op_t &) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * | | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) | This function is to be called by the processor module in response to | ev_use_arg_types. | - | use_arg_tinfos(self, caller, fti, rargs) - | @param caller (C++: ea_t) - | @param fti (C++: func_type_data_t *) - | @param rargs (C++: funcargvec_t *) + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79123,7 +76278,7 @@ class argtinfo_helper_t(builtins.object) | list of weak references to the object (if defined) | | reserved - | argtinfo_helper_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -79137,8 +76292,9 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t - | b: size_t - | n: size_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | @@ -79146,10 +76302,10 @@ class array_type_data_t(builtins.object) | delete_array_type_data_t(self) | | swap(self, *args) -> 'void' + | swap(self, r) | set this = r and r = this | - | swap(self, r) - | @param r (C++: array_type_data_t &) + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79161,13 +76317,13 @@ class array_type_data_t(builtins.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -79175,12 +76331,11 @@ class array_type_data_t(builtins.object) Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) -> 'void' - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - begin_type_updating(utp) - @param utp (C++: update_type_t) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -79191,33 +76346,40 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | _nbytes: uchar - | _width: uchar - | _is_unsigned: bool + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -79226,11 +76388,13 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: bitfield_type_data_t const & + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: bitfield_type_data_t &) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79242,16 +76406,16 @@ class bitfield_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -79261,45 +76425,43 @@ class bitfield_type_data_t(builtins.object) Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) -> 'qstring *' + calc_c_cpp_name(name, type, ccn_flags) -> str Get C or C++ form of the name. - calc_c_cpp_name(name, type, ccn_flags) -> str - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) -> 'int' - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - @retval: 0 - data is not expandable - @retval: -1 - error, see qerrno - @retval: else - the max number of lines + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) -> 'bool' calc_tinfo_gaps(out, typid) -> bool - out: rangeset_t * - typid: uint32 + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) -> 'PyObject *' calc_type_size(ti, tp) -> PyObject * Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -79311,7 +76473,9 @@ class callregs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | cc: cm_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | @@ -79322,37 +76486,40 @@ class callregs_t(builtins.object) | by_slots(self) -> bool | | init_regs(self, *args) -> 'void' + | init_regs(self, cc) | Init policy & registers for given CC. | - | init_regs(self, cc) - | @param cc (C++: cm_t) + | @param cc: (C++: cm_t) | | reginds(self, *args) -> 'bool' + | reginds(self, gp_ind, fp_ind, r) -> bool | Get register indexes within GP/FP arrays. (-1 -> is not present in the | corresponding array) | - | reginds(self, gp_ind, fp_ind, r) -> bool - | @param gp_ind (C++: int *) - | @param fp_ind (C++: int *) - | @param r (C++: int) + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) -> 'void' + | reset(self) | Set policy and registers to invalid values. | | set(self, *args) -> 'void' + | set(self, _policy, gprs, fprs) | Init policy & registers (arrays are -1-terminated) | - | set(self, _policy, gprs, fprs) - | @param _policy (C++: argreg_policy_t) - | @param gprs (C++: const int *) - | @param fprs (C++: const int *) + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int - | cc: cm_t + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79364,16 +76531,16 @@ class callregs_t(builtins.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -79382,77 +76549,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int - cc: cm_t + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) -> 'uint32' + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 Choose a type from the local type library. - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) -> 'uint32' - Choose a type from the local type library and specify the pointer - shift value. - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) -> 'bool' + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool Choose a type from a type library. - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) -> 'void' clear_tinfo_t(_this) - _this: tinfo_t * + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) -> 'bool' + compact_til(ti) -> bool Collect garbage in til. Must be called before storing the til. - compact_til(ti) -> bool - @param ti (C++: til_t *) - @return: true if any memory was freed + @param ti: (C++: til_t *) + @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) -> 'bool' compare_tinfo(t1, t2, tcflags) -> bool - t1: uint32 - t2: uint32 - tcflags: int + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -79465,7 +76629,8 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -79474,9 +76639,10 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int - | @param v (C++: const argloc_t &) - | @param off (C++: int) - | @param size (C++: int) + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79493,149 +76659,154 @@ class const_aloc_visitor_t(builtins.object) Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) -> 'int' - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - convert_pt_flags_to_hti(pt_flags) -> int - @param pt_flags (C++: int) + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) -> 'uint32' - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - copy_named_type(dsttil, srctil, name) -> uint32 - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) -> 'void' copy_tinfo_t(_this, r) - _this: tinfo_t * - r: tinfo_t const & + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) -> 'qstring *' - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - create_numbered_type_name(ord) -> str - @param ord (C++: int32) + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool - _this: tinfo_t * - bt: type_t - bt2: type_t - ptr: void * + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) -> 'comp_t' - Get compiler specified by \varmem{inf,idainfo,cc}. + default_compiler() -> comp_t + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) -> 'bool' + del_named_type(ti, name, ntf_flags) -> bool Delete information about a symbol. - del_named_type(ti, name, ntf_flags) -> bool - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) -> 'bool' + del_numbered_type(ti, ordinal) -> bool Delete a numbered type. - del_numbered_type(ti, ordinal) -> bool - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) -> 'bool' + del_til(name) -> bool Unload a til file. - del_til(name) -> bool - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool - tif: tinfo_t * - key: qstring const & - make_copy: bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool Help on function del_vftable_ea in module ida_typeinf: del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool Delete the address of a vftable instance for a vftable type. - del_vftable_ea(ordinal) -> bool - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: success + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) -> 'bool' + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool Dereference a pointer. - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - tif: tinfo_t * - til: til_t const * - ptype: type_t const ** - pfields: p_list const ** - pfldcmts: p_list const ** + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) -> 'qstring *' - Use 'func_type_data_t::dump()' - dump_func_type_data(fti, praloc_bits) -> str - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) -> 'void' - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - end_type_updating(utp) - @param utp (C++: update_type_t) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -79646,14 +76817,16 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: enum_member_t const & + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -79662,7 +76835,8 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: enum_member_t &) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -79674,16 +76848,16 @@ class enum_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -79699,15 +76873,19 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | x: qvector< enum_member_t > const & + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79717,36 +76895,42 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | __swig_destroy__ = delete_enum_member_vec_t(...) | delete_enum_member_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -79759,78 +76943,85 @@ class enum_member_vec_t(builtins.object) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< enum_member_t > & + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -79866,7 +77057,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | _bte: bte_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -79895,22 +77087,22 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) -> 'void' + | swap(self, r) | swap two instances | - | swap(self, r) - | @param r (C++: enum_type_data_t &) + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -79920,11 +77112,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -79934,31 +77128,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< enum_member_t > const & + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: enum_member_t const & + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: enum_member_t const & + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -79971,71 +77171,77 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t - | it: qvector< enum_member_t >::iterator | + | @param it: qvector< enum_member_t >::iterator | | erase(self, first, last) -> enum_member_t - | first: qvector< enum_member_t >::iterator - | last: qvector< enum_member_t >::iterator + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | x: enum_member_t const & | - | - | find(self, x) -> enum_member_t - | x: enum_member_t const & + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: enum_member_t const & + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: enum_member_t * - | len: size_t + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t - | it: qvector< enum_member_t >::iterator - | x: enum_member_t const & + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | x: enum_member_t const & + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: enum_member_t const & | + | @param _newsize: size_t + | @param x: enum_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -80061,68 +77267,73 @@ Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) -> 'bool' extract_argloc(vloc, ptype, forbid_stkoff) -> bool - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param forbid_stkoff (C++: bool) + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int - udm: udt_member_t * - typid: uint32 - strmem_flags: int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) -> 'char const *' - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - first_named_type(ti, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param ntf_flags: (C++: int) Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) -> 'int' + for_all_arglocs(vv, vloc, size, off=0) -> int Compress larger argloc types and initiate the aloc visitor. - for_all_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) -> 'int' - See 'for_all_arglocs()' - for_all_const_arglocs(vv, vloc, size, off=0) -> int - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) -> 'void' + free_til(ti) Free memory allocated by til. - free_til(ti) - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) -> 'bool' - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - func_has_stkframe_hole(ea, fti) -> bool - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -80145,22 +77356,31 @@ class func_type_data_t(funcargvec_t) | delete_func_type_data_t(self) | | dump(self, *args) -> 'bool' - | Dump information that is not always visible in the function prototype. - | (argument locations, return location, total stkarg size) - | | dump(self, praloc_bits=0x02) -> bool - | @param praloc_bits (C++: int) + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' - | Guess function calling convention use the following info: argument - | locations and 'stkargs' - | | guess_cc(self, purged, cc_flags) -> cm_t - | @param purged (C++: int) - | @param cc_flags (C++: int) + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool | | is_golang_cc(self, *args) -> 'bool' | is_golang_cc(self) -> bool @@ -80174,33 +77394,40 @@ class func_type_data_t(funcargvec_t) | is_pure(self, *args) -> 'bool' | is_pure(self) -> bool | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: func_type_data_t &) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -80210,11 +77437,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80224,31 +77453,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -80261,71 +77496,77 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -80356,14 +77597,16 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: funcarg_t const & + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -80380,22 +77623,22 @@ class funcarg_t(builtins.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -80411,15 +77654,19 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | x: qvector< funcarg_t > const & + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -80429,36 +77676,42 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< funcarg_t > const & + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: funcarg_t const & + | + | @param i: size_t + | @param v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: funcarg_t const & + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -80471,78 +77724,85 @@ class funcargvec_t(builtins.object) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t - | it: qvector< funcarg_t >::iterator | + | @param it: qvector< funcarg_t >::iterator | | erase(self, first, last) -> funcarg_t - | first: qvector< funcarg_t >::iterator - | last: qvector< funcarg_t >::iterator + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | x: funcarg_t const & | - | - | find(self, x) -> funcarg_t - | x: funcarg_t const & + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: funcarg_t const & + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: funcarg_t * - | len: size_t + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t - | it: qvector< funcarg_t >::iterator - | x: funcarg_t const & + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | x: funcarg_t const & + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: funcarg_t const & | + | @param _newsize: size_t + | @param x: funcarg_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< funcarg_t > & + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -80567,55 +77827,60 @@ class funcargvec_t(builtins.object) Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) -> 'bool' + gcc_layout() -> bool Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) -> 'qstring *' - Generic function for 'decorate_name()' (may be used in IDP modules) - gen_decorate_name(name, mangle, cc, type) -> str - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * Help on function gen_use_arg_tinfos2 in module ida_typeinf: gen_use_arg_tinfos2(*args) -> 'void' - Do not call this function directly, use 'argtinfo_helper_t' . - gen_use_arg_tinfos2(_this, caller, fti, rargs) - @param _this (C++: struct argtinfo_helper_t *) - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) -> 'qstring *' + get_abi_name() -> str Get ABI name. + + @return: length of the name (>=0) Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) -> 'uint32' - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - get_alias_target(ti, ordinal) -> uint32 - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: @@ -80629,277 +77894,284 @@ get_arg_addrs(*args) -> 'PyObject *' Help on function get_base_type in module ida_typeinf: get_base_type(*args) -> 'type_t' - Get get basic type bits ( 'TYPE_BASE_MASK' ) - get_base_type(t) -> type_t - @param t (C++: type_t) + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) -> 'qstring *' + get_c_header_path() -> str Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) -> 'qstring *' + get_c_macros() -> str Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) -> 'comp_t' + get_comp(comp) -> comp_t Get compiler bits. - get_comp(comp) -> comp_t - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) -> 'char const *' + get_compiler_abbr(id) -> char const * Get abbreviated compiler name. - get_compiler_abbr(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) -> 'char const *' + get_compiler_name(id) -> char const * Get full compiler name. - get_compiler_name(id) -> char const * - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) -> 'void' + get_compilers(ids, names, abbrs) Get names of all built-in compilers. - get_compilers(ids, names, abbrs) - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) -> 'qstring *' - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - get_enum_member_expr(tif, serial, value) -> str - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) -> 'type_t' - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - get_full_type(t) -> type_t - @param t (C++: type_t) + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' - Extract information from a 'tinfo_t' . - get_idainfo_by_type(tif) -> bool - @param tif: the type to inspect (C++: const tinfo_t &) + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) -> 'til_t const *' - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' - get_named_type(til, name, ntf_flags) -> PyObject * + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - get_named_type64(til, name, ntf_flags) -> PyObject * - til: til_t const * - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) -> 'PyObject *' + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - get_numbered_type(til, ordinal) -> PyObject * - til: til_t const * - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) -> 'char const *' - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - get_numbered_type_name(ti, ordinal) -> char const * - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) -> 'int' - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - get_ordinal_from_idb_type(name, type) -> int - @param name (C++: const char *) - @param type (C++: const type_t *) + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) -> 'uint32' + get_ordinal_qty(ti) -> uint32 Get number of allocated ordinals. - get_ordinal_qty(ti) -> uint32 - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) -> 'type_t' get_scalar_bt(size) -> type_t - @param size (C++: int) + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool - tif: tinfo_t * - id: enum stock_type_id_t + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) -> 'bool' get_tinfo_attr(typid, key, bv, all_attrs) -> bool - typid: uint32 - key: qstring const & - bv: bytevec_t * - all_attrs: bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) -> 'bool' get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - typid: uint32 - tav: type_attrs_t * - include_ref_attrs: bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) -> 'bool' get_tinfo_details(typid, bt2, buf) -> bool - typid: uint32 - bt2: type_t - buf: void * + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) -> 'size_t' get_tinfo_pdata(outptr, typid, what) -> size_t - outptr: void * - typid: uint32 - what: int + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) -> 'size_t' get_tinfo_property(typid, gta_prop) -> size_t - typid: uint32 - gta_prop: int + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) -> 'size_t' get_tinfo_size(p_effalign, typid, gts_code) -> size_t - p_effalign: uint32 * - typid: uint32 - gts_code: int + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) -> 'type_t' - Get type flags ( 'TYPE_FLAGS_MASK' ) - get_type_flags(t) -> type_t - @param t (C++: type_t) + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) -> 'int32' + get_type_ordinal(ti, name) -> int32 Get type ordinal by its name. - get_type_ordinal(ti, name) -> int32 - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * Help on function get_vftable_ea in module ida_typeinf: get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t Get address of a virtual function table. - get_vftable_ea(ordinal) -> ea_t - @param ordinal: ordinal number of a vftable type. (C++: uint32) - @return: address of the corresponding virtual function table in the - current database. + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. Help on function get_vftable_ordinal in module ida_typeinf: get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 Get ordinal number of the virtual function table. - get_vftable_ordinal(vftable_ea) -> uint32 - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: ordinal number of the corresponding vftable type. 0 - - failure. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) -> 'cm_t' - Use 'func_type_data_t::guess_cc()' - guess_func_cc(fti, npurged, cc_flags) -> cm_t - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) -> 'int' - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - guess_tinfo(tif, id) -> int - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -80915,9 +78187,10 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | _tif: tinfo_t const & - | _ea: ea_t - | _pb: int + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | @@ -80926,13 +78199,15 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int - | @param candidate (C++: const tinfo_t &) - | arg3: func_type_data_t const & + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -80953,623 +78228,656 @@ Help on function idc_get_local_type in module ida_typeinf: idc_get_local_type(*args) -> 'int' idc_get_local_type(ordinal, flags, buf, maxsize) -> int - ordinal: int - flags: int - buf: char * - maxsize: size_t + + @param ordinal: int + @param flags: int + @param buf: char * + @param maxsize: size_t Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) -> 'size_t' idc_get_local_type_name(ordinal) -> str - ordinal: int + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) -> 'PyObject *' - idc_get_local_type_raw(ordinal) -> PyObject * - ordinal: int + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) -> 'PyObject *' idc_get_type_raw(ea) -> PyObject * - ea: ea_t + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str - ea: ea_t + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) -> 'PyObject *' - idc_parse_decl(ti, decl, flags) -> PyObject * - ti: til_t * - decl: char const * - flags: int + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int - input: char const * - flags: int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) -> 'PyObject *' - idc_print_type(type, fields, name, flags) -> PyObject * - type: type_t const * - fields: p_list const * - name: char const * - flags: int + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) -> 'int' idc_set_local_type(ordinal, dcl, flags) -> int - ordinal: int - dcl: char const * - flags: int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) -> 'tid_t' + import_type(til, idx, name, flags=0) -> tid_t Copy a named type from til to idb. - import_type(til, idx, name, flags=0) -> tid_t - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) -> 'bool' + is_autosync(name, type) -> bool Is the specified idb type automatically synchronized? - is_autosync(name, type) -> bool - @param name (C++: const char *) - @param type (C++: const type_t *) - + @param name: (C++: const char *) char const * + @param type: type_t const * is_autosync(name, tif) -> bool - @param name (C++: const char *) - tif: tinfo_t const & + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) -> 'bool' + is_code_far(cm) -> bool Does the given model specify far code?. - is_code_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) -> 'comp_t' - See 'COMP_UNSURE' . - is_comp_unsure(comp) -> comp_t - @param comp (C++: comp_t) + See COMP_UNSURE. + + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) -> 'bool' + is_data_far(cm) -> bool Does the given model specify far data?. - is_data_far(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) -> 'bool' - Is the target compiler 'COMP_GNU' ? + is_gcc() -> bool + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) -> 'bool' + is_gcc32() -> bool Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) -> 'bool' + is_gcc64() -> bool Is the target compiler 64 bit gcc? Help on function is_golang_cc in module ida_typeinf: is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool GO language calling convention (return value in stack)? - is_golang_cc(cc) -> bool - @param cc (C++: cm_t) + @param cc: (C++: cm_t) Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) -> 'bool' - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - is_ordinal_name(name, ord=None) -> bool - @param name (C++: const char *) - @param ord (C++: uint32 *) + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) -> 'bool' - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - is_purging_cc(cm) -> bool - @param cm (C++: cm_t) + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) -> 'bool' is_restype_enum(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) -> 'bool' - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - is_sdacl_byte(t) -> bool - @param t (C++: type_t) + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) -> 'bool' - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - is_tah_byte(t) -> bool - @param t (C++: type_t) + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) -> 'bool' + is_type_arithmetic(t) -> bool Is the type an arithmetic type? (floating or integral) - is_type_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) -> 'bool' - See 'BT_ARRAY' . - is_type_array(t) -> bool - @param t (C++: type_t) + See BT_ARRAY. + + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) -> 'bool' - See 'BT_BITFIELD' . - is_type_bitfld(t) -> bool - @param t (C++: type_t) + See BT_BITFIELD. + + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) -> 'bool' - See 'BTF_BOOL' . - is_type_bool(t) -> bool - @param t (C++: type_t) + See BTF_BOOL. + + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) -> 'bool' - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_char(t) -> bool - @param t (C++: type_t) + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) -> 'bool' - See 'BT_COMPLEX' . - is_type_complex(t) -> bool - @param t (C++: type_t) + See BT_COMPLEX. + + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) -> 'bool' - See 'BTM_CONST' . - is_type_const(t) -> bool - @param t (C++: type_t) + See BTM_CONST. + + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) -> 'bool' - See 'BTF_DOUBLE' . - is_type_double(t) -> bool - @param t (C++: type_t) + See BTF_DOUBLE. + + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) -> 'bool' - See 'BTF_ENUM' . - is_type_enum(t) -> bool - @param t (C++: type_t) + See BTF_ENUM. + + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) -> 'bool' + is_type_ext_arithmetic(t) -> bool Is the type an extended arithmetic type? (arithmetic or enum) - is_type_ext_arithmetic(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) -> 'bool' + is_type_ext_integral(t) -> bool Is the type an extended integral type? (integral or enum) - is_type_ext_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) -> 'bool' - See 'BTF_FLOAT' . - is_type_float(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) -> 'bool' + is_type_floating(t) -> bool Is the type a floating point type? - is_type_floating(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) -> 'bool' - See 'BT_FUNC' . - is_type_func(t) -> bool - @param t (C++: type_t) + See BT_FUNC. + + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) -> 'bool' - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - is_type_int(bt) -> bool - @param bt (C++: type_t) + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) -> 'bool' - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int128(t) -> bool - @param t (C++: type_t) + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) -> 'bool' - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int16(t) -> bool - @param t (C++: type_t) + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) -> 'bool' - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int32(t) -> bool - @param t (C++: type_t) + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) -> 'bool' - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - is_type_int64(t) -> bool - @param t (C++: type_t) + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) -> 'bool' + is_type_integral(t) -> bool Is the type an integral type (char/short/int/long/bool)? - is_type_integral(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) -> 'bool' - See 'BTF_LDOUBLE' . - is_type_ldouble(t) -> bool - @param t (C++: type_t) + See BTF_LDOUBLE. + + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) -> 'bool' + is_type_paf(t) -> bool Is the type a pointer, array, or function type? - is_type_paf(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) -> 'bool' - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - is_type_partial(t) -> bool - @param t (C++: type_t) + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) -> 'bool' - See 'BT_PTR' . - is_type_ptr(t) -> bool - @param t (C++: type_t) + See BT_PTR. + + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) -> 'bool' + is_type_ptr_or_array(t) -> bool Is the type a pointer or array type? - is_type_ptr_or_array(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) -> 'bool' - See 'BTF_STRUCT' . - is_type_struct(t) -> bool - @param t (C++: type_t) + See BTF_STRUCT. + + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) -> 'bool' + is_type_struni(t) -> bool Is the type a struct or union? - is_type_struni(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) -> 'bool' + is_type_sue(t) -> bool Is the type a struct/union/enum? - is_type_sue(t) -> bool - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) -> 'bool' - See 'BTF_FLOAT' . - is_type_tbyte(t) -> bool - @param t (C++: type_t) + See BTF_FLOAT. + + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) -> 'bool' - See 'BTF_TYPEDEF' . - is_type_typedef(t) -> bool - @param t (C++: type_t) + See BTF_TYPEDEF. + + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) -> 'bool' - See 'BTF_UCHAR' . - is_type_uchar(t) -> bool - @param t (C++: type_t) + See BTF_UCHAR. + + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) -> 'bool' - See 'BTF_UINT' . - is_type_uint(t) -> bool - @param t (C++: type_t) + See BTF_UINT. + + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) -> 'bool' - See 'BTF_UINT128' . - is_type_uint128(t) -> bool - @param t (C++: type_t) + See BTF_UINT128. + + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) -> 'bool' - See 'BTF_UINT16' . - is_type_uint16(t) -> bool - @param t (C++: type_t) + See BTF_UINT16. + + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) -> 'bool' - See 'BTF_UINT32' . - is_type_uint32(t) -> bool - @param t (C++: type_t) + See BTF_UINT32. + + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) -> 'bool' - See 'BTF_UINT64' . - is_type_uint64(t) -> bool - @param t (C++: type_t) + See BTF_UINT64. + + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) -> 'bool' - See 'BTF_UNION' . - is_type_union(t) -> bool - @param t (C++: type_t) + See BTF_UNION. + + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) -> 'bool' - See 'BT_UNKNOWN' . - is_type_unknown(t) -> bool - @param t (C++: type_t) + See BT_UNKNOWN. + + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) -> 'bool' - See 'BTF_VOID' . - is_type_void(t) -> bool - @param t (C++: type_t) + See BTF_VOID. + + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) -> 'bool' - See 'BTM_VOLATILE' . - is_type_volatile(t) -> bool - @param t (C++: type_t) + See BTM_VOLATILE. + + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) -> 'bool' - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - is_typeid_last(t) -> bool - @param t (C++: type_t) + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) -> 'bool' + is_user_cc(cm) -> bool Does the calling convention specify argument locations explicitly? - is_user_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) -> 'bool' + is_vararg_cc(cm) -> bool Does the calling convention use ellipsis? - is_vararg_cc(cm) -> bool - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int - t1: uint32 - t2: uint32 - arg3: int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) -> 'qstring *' - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - load_til(name, tildir=None) -> til_t - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) -> 'qstring *' + load_til_header(tildir, name) -> til_t Get human-readable til description. - load_til_header(tildir, name) -> til_t - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) -> 'int' - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - lower_type(til, tif, name=None, _helper=None) -> int - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - @retval: 1 - removed FTI_HIGH , - @retval: 2 - made substantial changes - @retval: -1 - failure + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -81588,13 +78896,15 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int - | @param candidate (C++: const tinfo_t &) - | @param candidate_data (C++: const func_type_data_t &) + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81611,72 +78921,73 @@ class lowertype_helper_t(builtins.object) Help on function new_til in module ida_typeinf: new_til(*args) -> 'til_t *' + new_til(name, desc) -> til_t Initialize a til. - new_til(name, desc) -> til_t - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) -> 'char const *' - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - next_named_type(ti, name, ntf_flags) -> char const * - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + Enumerate types. Returns mangled names. Never returns anonymous types. To + include it, enumerate types by ordinals. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) -> 'bool' - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - optimize_argloc(vloc, size, gaps) -> bool - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - @retval: true - success - @retval: false - the input argloc was illegal + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) -> 'error_t' - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) -> 'error_t' + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t Write a typed idc object to the database. - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) -> 'PyObject *' pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: @@ -81686,8 +78997,10 @@ pack_object_to_idb(*args) -> 'PyObject *' Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -81695,36 +79008,33 @@ pack_object_to_idb(*args) -> 'PyObject *' Help on function parse_decl in module ida_typeinf: parse_decl(*args) -> 'qstring *' - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - parse_decl(tif, til, decl, flags) -> str - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - @retval: true - ok - @retval: false - declaration is bad, the error message is displayed if - !PT_SIL + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) -> 'int' - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - parse_decls(til, input, printer, hti_flags) -> int - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -81737,7 +79047,8 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -81746,10 +79057,11 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool - | @param til (C++: const til_t *) - | @param name (C++: const char *) - | @param type (C++: const type_t *) - | @param fields (C++: const p_list *) + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81766,51 +79078,51 @@ class predicate_t(builtins.object) Help on function print_argloc in module ida_typeinf: print_argloc(*args) -> 'size_t' + print_argloc(vloc, size=0, vflags=0) -> str Convert an argloc to human readable form. - print_argloc(vloc, size=0, vflags=0) -> str - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) -> 'PyObject *' - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for use in a + header file. This is the reverse parse_decls(). - print_decls(printer, til, py_ordinals, flags) -> PyObject * - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - py_ordinals: PyObject * - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - @retval: >0 - the number of types exported - @retval: 0 - an error occurred - @retval: <0 - the negated number of types exported. There were minor - errors and the resulting output might not be compilable. + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param flags: (C++: uint32) flags for the algorithm. A combination of PDF_* constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) -> 'qstring *' print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - prefix: char const * - indent: int - cmtindent: int - flags: int - tif: tinfo_t const * - name: char const * - cmt: char const * + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) -> 'qstring *' + print_type(ea, prtype_flags) -> str Get type declaration for the specified address. - print_type(ea, prtype_flags) -> str - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -81821,18 +79133,21 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | c: tinfo_t - | bps: uchar - | p: tinfo_t - | d: int32 + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: ptr_type_data_t const & + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -81840,16 +79155,17 @@ class ptr_type_data_t(builtins.object) | delete_ptr_type_data_t(self) | | is_code_ptr(self, *args) -> 'bool' + | is_code_ptr(self) -> bool | Are we pointing to code? | | is_shifted(self, *args) -> 'bool' | is_shifted(self) -> bool | | swap(self, *args) -> 'void' + | swap(self, r) | Set this = r and r = this. | - | swap(self, r) - | @param r (C++: ptr_type_data_t &) + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -81861,22 +79177,22 @@ class ptr_type_data_t(builtins.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -81890,9 +79206,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) -> 'uint64' read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - typid: uint32 - v: uint64 - bitoff: int + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -81903,15 +79220,19 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | x: qvector< reg_info_t > const & + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -81920,25 +79241,31 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< reg_info_t > const & + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: reg_info_t const & + | + | @param i: size_t + | @param v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: reg_info_t const & + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -81949,7 +79276,6 @@ class reginfovec_t(builtins.object) | | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -81962,78 +79288,85 @@ class reginfovec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t - | it: qvector< reg_info_t >::iterator | + | @param it: qvector< reg_info_t >::iterator | | erase(self, first, last) -> reg_info_t - | first: qvector< reg_info_t >::iterator - | last: qvector< reg_info_t >::iterator + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) -> 'reg_info_t *' | extract(self) -> reg_info_t | | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' | find(self, x) -> reg_info_t - | x: reg_info_t const & | - | - | find(self, x) -> reg_info_t - | x: reg_info_t const & + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: reg_info_t const & + | + | @param x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: reg_info_t * - | len: size_t + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t - | it: qvector< reg_info_t >::iterator - | x: reg_info_t const & + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) - | x: reg_info_t const & + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: reg_info_t const & | + | @param _newsize: size_t + | @param x: reg_info_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< reg_info_t > & + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -82083,16 +79416,16 @@ class regobj_t(builtins.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value Help on class regobjs_t in module ida_typeinf: @@ -82125,7 +79458,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82135,19 +79469,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -82160,16 +79495,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -82179,47 +79514,56 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -82242,11 +79586,14 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | x: qvector< regobj_t > const & + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82258,22 +79605,23 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: regobj_t const & + | + | @param i: size_t + | @param v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -82286,16 +79634,16 @@ class regobjvec_t(builtins.object) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t - | it: qvector< regobj_t >::iterator | + | @param it: qvector< regobj_t >::iterator | | erase(self, first, last) -> regobj_t - | first: qvector< regobj_t >::iterator - | last: qvector< regobj_t >::iterator + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -82305,47 +79653,56 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) - | x: regobj_t const & + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: regobj_t * - | len: size_t + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t - | it: qvector< regobj_t >::iterator - | x: regobj_t const & + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | x: regobj_t const & + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: regobj_t const & | + | @param _newsize: size_t + | @param x: regobj_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< regobj_t > & + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -82366,49 +79723,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) -> 'bool' remove_abi_opts(abi_opts, user_level=False) -> bool - @param abi_opts (C++: const char *) - @param user_level (C++: bool) + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) -> 'tinfo_t' - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - remove_pointer(tif) -> tinfo_t - @param tif (C++: const tinfo_t &) + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - remove_tinfo_pointer(tif, name, til) -> PyObject * - @param tif (C++: tinfo_t *) - name: char const * - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) -> 'int' - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - replace_ordinal_typerefs(til, tif) -> int - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - @retval: number - of replaced subtypes, -1 on failure + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) -> 'type_t const *' resolve_typedef(til, type) -> type_t const * - @param til (C++: const til_t *) - @param type (C++: const type_t *) + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -82435,10 +79792,10 @@ class rrel_t(builtins.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -82447,11 +79804,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) -> 'tinfo_code_t' save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - tif: tinfo_t * - til: til_t * - ord: size_t - name: char const * - ntf_flags: int + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -82484,11 +79842,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -82498,31 +79858,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< argpart_t > const & + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: argpart_t const & + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: argpart_t const & + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -82535,78 +79901,85 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t - | it: qvector< argpart_t >::iterator | + | @param it: qvector< argpart_t >::iterator | | erase(self, first, last) -> argpart_t - | first: qvector< argpart_t >::iterator - | last: qvector< argpart_t >::iterator + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | x: argpart_t const & | - | - | find(self, x) -> argpart_t - | x: argpart_t const & + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) - | x: argpart_t const & + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: argpart_t const & + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: argpart_t * - | len: size_t + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t - | it: qvector< argpart_t >::iterator - | x: argpart_t const & + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | x: argpart_t const & + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: argpart_t const & | + | @param _newsize: size_t + | @param x: argpart_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< argpart_t > & + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -82629,135 +80002,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 - tif: tinfo_t const * + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) -> 'bool' serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - type: qtype * - fields: qtype * - fldcmts: qtype * - tif: tinfo_t const * - sudt_flags: int + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) -> 'bool' - Set abi name (see 'Compiler IDs' ) - set_abi_name(abiname, user_level=False) -> bool - @param abiname (C++: const char *) - @param user_level (C++: bool) + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) -> 'void' + set_c_header_path(incdir) Set include directory path the target compiler. - set_c_header_path(incdir) - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) -> 'void' + set_c_macros(macros) Set predefined macros for the target compiler. - set_c_macros(macros) - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) -> 'bool' + set_compiler(cc, flags, abiname=None) -> bool Change current compiler. - set_compiler(cc, flags, abiname=None) -> bool - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) -> 'bool' - Set the compiler id (see 'Compiler IDs' ) - set_compiler_id(id, abiname=None) -> bool - @param id (C++: comp_t) - @param abiname (C++: const char *) + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool - @param compstr: - compiler description in form <abbr>:<abiname> (C++: - const char *) - @param user_level: - initiated by user if TRUE (C++: bool) - @return: success + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) -> 'tinfo_code_t' - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool - tif: tinfo_t * - ta: type_attr_t const & - may_overwrite: bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool - tif: tinfo_t * - ta: type_attrs_t * + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) -> 'size_t' set_tinfo_property(tif, sta_prop, x) -> size_t - tif: tinfo_t * - sta_prop: int - x: size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) -> 'bool' - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) Help on function set_vftable_ea in module ida_typeinf: set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool Set the address of a vftable instance for a vftable type. - set_vftable_ea(ordinal, vftable_ea) -> bool - @param ordinal: ordinal number of the corresponding vftable type. - (C++: uint32) - @param vftable_ea: address of a virtual function table. (C++: ea_t) - @return: success + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -82768,9 +80145,10 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | nm: char const * - | sz: uint16 - | memt: type_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | @@ -82779,7 +80157,8 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool - | @param pattern (C++: const simd_info_t *) + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82791,39 +80170,78 @@ class simd_info_t(builtins.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag Help on function store_til in module ida_typeinf: store_til(*args) -> 'bool' - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - store_til(ti, tildir, name) -> bool - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success Help on function switch_to_golang in module ida_typeinf: switch_to_golang(*args) -> 'void' + switch_to_golang() switch to GOLANG calling convention (to be used as default CC) Help on class text_sink_t in module ida_typeinf: @@ -82837,7 +80255,8 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -82846,7 +80265,10 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int - | str: char const * + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82869,8 +80291,9 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t - | n: char const * - | t: til_t const * + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -82887,13 +80310,13 @@ class til_symbol_t(builtins.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til Help on class til_t in module ida_typeinf: @@ -82912,13 +80335,17 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t - | n: int + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) -> 'bool' - | Has the til been modified? ( 'TIL_MOD' ) + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) -> 'void' - | Mark the til as modified ( 'TIL_MOD' ) + | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -82930,28 +80357,28 @@ class til_t(builtins.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -82965,35 +80392,43 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | decl_type: type_t + | __init__(self, decl_type) -> tinfo_t | + | @param decl_type: type_t | | __init__(self, r) -> tinfo_t - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -83005,48 +80440,51 @@ class tinfo_t(builtins.object) | | _print(self, *args) -> 'bool' | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | name: char const * - | prtype_flags: int - | indent: int - | cmtindent: int - | prefix: char const * - | cmt: char const * + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' + | append_covered(self, out, offset=0) -> bool | Calculate set of covered bytes for the type | - | append_covered(self, out, offset=0) -> bool - | @param out: pointer to the output buffer. covered bytes will be - | appended to it. (C++: rangeset_t *) - | @param offset (C++: uint64) + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) | | calc_gaps(self, *args) -> 'bool' + | calc_gaps(self, out) -> bool | Calculate set of padding bytes for the type | - | calc_gaps(self, out) -> bool - | @param out: pointer to the output buffer; old buffer contents will be - | lost. (C++: rangeset_t *) + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) -> 'int' - | 'BT_FUNC' : Calculate number of purged bytes + | calc_purged_bytes(self) -> int | | calc_score(self, *args) -> 'uint32' + | calc_score(self) -> uint32 | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) -> 'bool' - | Calculate the udt alignments using the field offsets/sizes and the - | total udt size This function does not work on typerefs - | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | @param sudt_flags (C++: int) + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) -> 'bool' + | change_sign(self, sign) -> bool | Change the type sign. Works only for the types that may have sign. | - | change_sign(self, sign) -> bool - | @param sign (C++: type_sign_t) + | @param sign: (C++: type_sign_t) | | clear(self, *args) -> 'void' + | clear(self) | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) -> 'void' @@ -83060,17 +80498,18 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int - | r: tinfo_t const & + | + | @param r: tinfo_t const & | | compare_with(self, *args) -> 'bool' - | Compare two types, based on given flags (see 'tinfo_t comparison - | flags' ) - | | compare_with(self, r, tcflags=0) -> bool - | @param r (C++: const tinfo_t &) - | @param tcflags (C++: int) + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) -> 'bool' + | convert_array_to_ptr(self) -> bool | Convert an array into a pointer. type[] => type * | | copy(self, *args) -> 'tinfo_t' @@ -83078,746 +80517,890 @@ class tinfo_t(builtins.object) | | create_array(self, *args) -> 'bool' | create_array(self, p, decl_type=BT_ARRAY) -> bool - | @param p (C++: const array_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: array_type_data_t const & + | @param decl_type: type_t | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | tif: tinfo_t const & - | nelems: uint32 - | base: uint32 - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | @param p (C++: const bitfield_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | nbytes: uchar - | width: uchar - | is_unsigned: bool - | @param decl_type (C++: type_t) + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | p: enum_type_data_t & - | decl_type: type_t + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' - | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , - | or 'BTF_ENUM' - | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | @param til (C++: til_t *) - | @param decl_type (C++: type_t) - | @param name (C++: const char *) - | @param ntf_flags (C++: int) + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool - | p: func_type_data_t & - | decl_type: type_t + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool - | @param p (C++: const ptr_type_data_t &) - | @param decl_type (C++: type_t) | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | tif: tinfo_t const & - | bps: uchar - | @param decl_type (C++: type_t) + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool - | @param decl_type (C++: type_t) + | + | @param decl_type: type_t | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | @param p (C++: const typedef_type_data_t &) - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | til: til_t const * - | name: char const * - | @param decl_type (C++: type_t) - | @param try_ordinal (C++: bool) | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | til: til_t const * - | ord: uint - | @param decl_type (C++: type_t) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool - | p: udt_type_data_t & - | decl_type: type_t + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) -> 'bool' + | del_attr(self, key, make_copy=True) -> bool | Del a type attribute. typerefs cannot be modified by this function. | - | del_attr(self, key, make_copy=True) -> bool - | @param key (C++: const qstring &) - | @param make_copy (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) -> 'void' + | del_attrs(self) | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) -> 'bool' - | Deserialize a type string into a 'tinfo_t' object. - | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | @param til (C++: const til_t *) - | @param ptype (C++: const type_t **) - | @param pfields (C++: const p_list **) - | @param pfldcmts (C++: const p_list **) + | Deserialize a type string into a tinfo_t object. | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** | | deserialize(self, til, type, fields, cmts=None) -> bool - | @param til (C++: const til_t *) - | type: type_t const * - | fields: p_list const * - | cmts: p_list const * + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | Function to facilitate debugging. | | empty(self, *args) -> 'bool' - | Was 'tinfo_t' initialized with some type info or not? + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) -> 'bool' | equals_to(self, r) -> bool - | @param r (C++: const tinfo_t &) + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) -> 'int' - | 'BTF_STRUCT' , 'BTF_UNION' : Find a udt member.at the specified - | offset ( 'STRMEM_OFFSET' )with the specified index ( 'STRMEM_INDEX' - | )with the specified type ( 'STRMEM_TYPE' )with the specified name ( - | 'STRMEM_NAME' ) - | | find_udt_member(self, udm, strmem_flags) -> int - | @param udm (C++: struct udt_member_t *) - | @param strmem_flags (C++: int) - | @return: the index of the found member or -1 + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' + | get_array_details(self, ai) -> bool | Get the array specific info. | - | get_array_details(self, ai) -> bool - | @param ai (C++: array_type_data_t *) + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' - | 'BT_ARRAY' : get type of array element. See also - | 'get_ptrarr_object()' + | get_array_element(self) -> tinfo_t | | get_array_nelems(self, *args) -> 'int' - | 'BT_ARRAY' : get number of elements (-1 means error) + | get_array_nelems(self) -> int | | get_attr(self, *args) -> 'PyObject *' + | get_attr(self, key, all_attrs=True) -> str or None | Get a type attribute. | - | get_attr(self, key, all_attrs=True) -> PyObject * - | @param key (C++: const qstring &) - | @param all_attrs (C++: bool) + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) -> 'bool' - | Get type attributes (all_attrs: include attributes of referenced - | types, if any) - | | get_attrs(self, tav, all_attrs=False) -> bool - | @param tav (C++: type_attrs_t *) - | @param all_attrs (C++: bool) + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' + | get_bitfield_details(self, bi) -> bool | Get the bitfield specific info. | - | get_bitfield_details(self, bi) -> bool - | @param bi (C++: bitfield_type_data_t *) + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) -> 'uchar' + | get_declalign(self) -> uchar | Get declared alignment of the type. | | get_decltype(self, *args) -> 'type_t' - | Get declared type (without resolving type references; they are - | returned as is). Obviously this is a very fast function and should be - | used instead of 'get_realtype()' if possible. + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) -> 'type_t' - | Get enum base type (convert enum to integer type) Returns 'BT_UNK' if - | failed to convert + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) -> 'bool' + | get_enum_details(self, ei) -> bool | Get the enum specific info. | - | get_enum_details(self, ei) -> bool - | @param ei (C++: enum_type_data_t *) + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) -> 'uint32' + | get_final_ordinal(self) -> uint32 | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) -> 'bool' + | get_final_type_name(self) -> bool | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) -> 'bool' - | Get only the function specific info for this 'tinfo_t' . - | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | @param fi (C++: func_type_data_t *) - | @param gtd (C++: gtd_func_t) + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' - | Create a 'tinfo_t' object for an existing named type. - | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param name: name of the type to link to (C++: const char *) - | @param decl_type: if the reference was explicitly specified with the - | type tag ( BTF_STRUCT / BTF_UNION / BTF_ENUM ) - | you may specify it. the kernel will accept only - | the specified tag after resolving the type. If - | the resolved type does not correspond to the - | explicitly specified tag, the type will be - | considered as undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code. false: return true but do not immediately - | resolve the type (C++: bool) - | @param try_ordinal: true: try to replace name reference by an ordinal - | reference (C++: bool) + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) -> 'int' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 - | - error) + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) -> 'bool' + | get_next_type_name(self) -> bool | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) -> 'tinfo_t' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means - | return type, see 'get_rettype()' ) - | | get_nth_arg(self, n) -> tinfo_t - | @param n (C++: int) + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) -> 'bool' - | Create a 'tinfo_t' object for an existing ordinal type. - | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | @param til: type library to use (C++: const til_t *) - | @param ordinal: number of the type to link to (C++: uint32) - | @param decl_type: if the reference was explicitly specified with the - | type tag (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may - | specify it. the kernel will accept only the - | specified tag after resolving the type. If the - | resolved type does not correspond to the explicitly - | specified tag, the type will be considered as - | undefined (C++: type_t) - | @param resolve: true: immediately resolve the type and return success - | code false: return true but do not immediately resolve - | the type (C++: bool) + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) -> 'tinfo_t' - | For objects consisting of one member entirely: return type of the - | member. + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) -> 'uint32' - | Get type ordinal (only if the type was created as a numbered type, 0 - | if none) + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) -> 'tinfo_t' - | 'BT_PTR' : get type of pointed object. If the current type is not a - | pointer, return empty type info. See also 'get_ptrarr_object()' and - | 'remove_pointer()' + | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) -> 'bool' + | get_ptr_details(self, pi) -> bool | Get the pointer info. | - | get_ptr_details(self, pi) -> bool - | @param pi (C++: ptr_type_data_t *) + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) -> 'tinfo_t' - | 'BT_PTR' & 'BT_ARRAY' : get the pointed object or array element. If - | the current type is not a pointer or array, return empty type info. + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) -> 'int' - | 'BT_PTR' & 'BT_ARRAY' : get size of pointed object or array element. - | On error returns -1 + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) -> 'type_t' - | Get the resolved base type. Deserialization options:if full=true, the - | referenced type will be deserialized fully, this may not always be - | desirable (slows down things)if full=false, we just return the base - | type, the referenced type will be resolved again later if necessary - | (this may lead to multiple resolvings of the same type) imho - | full=false is a better approach because it does not perform - | unnecessary actions just in case. however, in some cases the caller - | knows that it is very likely that full type info will be required. in - | those cases full=true makes sense - | | get_realtype(self, full=False) -> type_t - | @param full (C++: bool) + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) -> 'tinfo_t' - | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) -> 'type_sign_t' + | get_sign(self) -> type_sign_t | Get type sign. | | get_size(self, *args) -> 'size_t' + | get_size(self, p_effalign=None, gts_code=0) -> size_t | Get the type size in bytes. | - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | @param p_effalign: buffer for the alignment value (C++: uint32 *) - | @param gts_code: combination of GTS_... constants (C++: int) - | @return: BADSIZE in case of problems + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) -> 'til_t const *' - | Get the type library for 'tinfo_t' . + | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) -> 'bool' - | Does a type refer to a name?. If yes, fill the provided buffer with - | the type name and return true. Names are returned for numbered types - | too: either a user-defined nice name or, if a user-provided name does - | not exist, an ordinal name (like #xx, see - | 'create_numbered_type_name()' ). + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) -> 'bool' + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool | Get the udt specific info. | - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | @param udt (C++: udt_type_data_t *) - | @param gtd (C++: gtd_udt_t) + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) -> 'int' + | get_udt_nmembers(self) -> int | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) -> 'size_t' - | Get the type size in bytes without the final padding, in bytes. For - | some UDTs 'get_unpadded_size()' != 'get_size()' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) -> 'bool' + | has_details(self) -> bool | Does this type refer to a nontrivial type? | | has_vftable(self, *args) -> 'bool' + | has_vftable(self) -> bool | Has a vftable? | | is_anonymous_udt(self, *args) -> 'bool' - | Is an anonymous struct/union? We assume that types with names are - | anonymous if the name starts with $ + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) -> 'bool' - | \isreal{is_type_arithmetic} + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) -> 'bool' - | \isreal{is_type_array} + | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) -> 'bool' - | \isreal{is_type_bitfld} + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) -> 'bool' - | \isreal{is_type_bool} + | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_char(self, *args) -> 'bool' - | \isreal{is_type_char} + | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) -> 'bool' - | \isreal{is_type_complex} + | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) -> 'bool' - | \isreal{is_type_const} + | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) -> 'bool' - | Is the type object correct?. It is possible to create incorrect types. - | For example, we can define a function that returns a enum and then - | delete the enum type. If this function returns false, the type should - | not be used in disassembly. Please note that this function does not - | verify all involved types: for example, pointers to undefined types - | are permitted. + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) -> 'bool' - | \isdecl{is_type_array} + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) -> 'bool' - | \isdecl{is_type_bitfld} + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) -> 'bool' - | \isdecl{is_type_bool} + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) -> 'bool' - | \isdecl{is_type_char} + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) -> 'bool' - | \isdecl{is_type_complex} + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) -> 'bool' - | \isdecl{is_type_const} + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) -> 'bool' - | \isdecl{is_type_double} + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) -> 'bool' - | \isdecl{is_type_enum} + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) -> 'bool' - | \isdecl{is_type_float} + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) -> 'bool' - | \isdecl{is_type_floating} + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) -> 'bool' - | \isdecl{is_type_func} + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) -> 'bool' - | \isdecl{is_type_int} + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) -> 'bool' - | \isdecl{is_type_int128} + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) -> 'bool' - | \isdecl{is_type_int16} + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) -> 'bool' - | \isdecl{is_type_int32} + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) -> 'bool' - | \isdecl{is_type_int64} + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) -> 'bool' - | \isdecl{is_typeid_last} + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) -> 'bool' - | \isdecl{is_type_ldouble} + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) -> 'bool' - | \isdecl{is_type_paf} + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) -> 'bool' - | \isdecl{is_type_partial} + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) -> 'bool' - | \isdecl{is_type_ptr} + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) -> 'bool' - | \isdecl{is_type_struct} + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) -> 'bool' - | \isdecl{is_type_sue} + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) -> 'bool' - | \isdecl{is_type_tbyte} + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) -> 'bool' - | \isdecl{is_type_typedef} + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) -> 'bool' - | \isdecl{is_type_uchar} + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) -> 'bool' - | \isdecl{is_type_struni} + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) -> 'bool' - | \isdecl{is_type_uint} + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) -> 'bool' - | \isdecl{is_type_uint128} + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) -> 'bool' - | \isdecl{is_type_uint16} + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) -> 'bool' - | \isdecl{is_type_uint32} + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) -> 'bool' - | \isdecl{is_type_uint64} + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) -> 'bool' - | \isdecl{is_type_union} + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) -> 'bool' - | \isdecl{is_type_unknown} + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) -> 'bool' - | \isdecl{is_type_void} + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) -> 'bool' - | \isdecl{is_type_volatile} + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) -> 'bool' - | \isreal{is_type_double} + | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) -> 'bool' + | is_empty_udt(self) -> bool | Is an empty struct/union? (has no fields) | | is_enum(self, *args) -> 'bool' - | \isreal{is_type_enum} + | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) -> 'bool' - | \isreal{is_type_ext_arithmetic} + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) -> 'bool' - | \isreal{is_type_ext_integral} + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) -> 'bool' - | \isreal{is_type_float} + | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) -> 'bool' - | \isreal{is_type_floating} + | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) -> 'bool' - | Is this a forward declaration?. Forward declarations are placeholders: - | the type definition does not exist + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) -> 'bool' - | Was the named type found in some base type library (not the top level - | type library)?. If yes, it usually means that the type comes from some - | loaded type library, not the local type library for the database + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) -> 'bool' - | \isreal{is_type_func} + | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) -> 'bool' + | is_funcptr(self) -> bool | Is this pointer to a function? | | is_high_func(self, *args) -> 'bool' - | 'BT_FUNC' : Is high level type? + | is_high_func(self) -> bool | | is_int(self, *args) -> 'bool' - | \isreal{is_type_int} + | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) -> 'bool' - | \isreal{is_type_int128} + | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) -> 'bool' - | \isreal{is_type_int16} + | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) -> 'bool' - | \isreal{is_type_int32} + | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) -> 'bool' - | \isreal{is_type_int64} + | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) -> 'bool' - | \isreal{is_type_integral} + | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) -> 'bool' - | \isreal{is_type_ldouble} + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool - | @param target (C++: const tinfo_t &) + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) -> 'bool' - | Floating value or an object consisting of one floating member - | entirely. + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) -> 'bool' - | \isreal{is_type_paf} + | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) -> 'bool' - | \isreal{is_type_partial} + | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) -> 'bool' - | \isreal{is_type_ptr} + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) -> 'bool' - | \isreal{is_type_ptr_or_array} + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) -> 'bool' - | \tinfocc{is_purging_cc} + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) -> 'bool' - | Is "void *"?. This function does not check the pointer attributes and - | type modifiers. + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) -> 'bool' + | is_scalar(self) -> bool | Does the type represent a single number? | | is_shifted_ptr(self, *args) -> 'bool' + | is_shifted_ptr(self) -> bool | Is a shifted pointer? | | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool | Is this a signed type? | | is_small_udt(self, *args) -> 'bool' + | is_small_udt(self) -> bool | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) -> 'bool' + | is_sse_type(self) -> bool | Is a SSE vector type? | | is_struct(self, *args) -> 'bool' - | \isreal{is_type_struct} + | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) -> 'bool' - | \isreal{is_type_sue} + | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) -> 'bool' - | \isreal{is_type_tbyte} + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) -> 'bool' - | Is this type a type reference?. Type references cannot be modified. - | Once created, they do not change. Because of this, the set_... - | functions applied to typerefs create a new type id. Other types are - | modified directly. + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) -> 'bool' - | \isreal{is_type_uchar} + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) -> 'bool' - | \isreal{is_type_struni} + | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) -> 'bool' - | \isreal{is_type_uint} + | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) -> 'bool' - | \isreal{is_type_uint128} + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) -> 'bool' - | \isreal{is_type_uint16} + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) -> 'bool' - | \isreal{is_type_uint32} + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) -> 'bool' - | \isreal{is_type_uint64} + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) -> 'bool' - | \isreal{is_type_union} + | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) -> 'bool' - | \isreal{is_type_unknown} + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) -> 'bool' + | is_unsigned(self) -> bool | Is this an unsigned type? | | is_user_cc(self, *args) -> 'bool' - | \tinfocc{is_user_cc} + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) -> 'bool' - | \tinfocc{is_vararg_cc} + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) -> 'bool' + | is_varstruct(self) -> bool | Is a variable-size structure? | | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool | Is a vftable type? | | is_void(self, *args) -> 'bool' - | \isreal{is_type_void} + | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) -> 'bool' - | \isreal{is_type_volatile} + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) -> 'bool' - | !( 'empty()' ) && !( 'is_decl_partial()' ) + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) -> 'bool' - | Is the type really present? (not a reference to a missing type, for - | example) + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) -> 'uint64' | read_bitfield_value(self, v, bitoff) -> uint64 - | v: uint64 - | bitoff: int + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) -> 'bool' - | Replace the current type with the ptr obj or array element. This - | function performs one of the following conversions:type[] => typetype* - | => type If the conversion is performed successfully, return true + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' + | requires_qualifier(self, name, offset) -> bool | Requires full qualifier? (name is not unique) | - | requires_qualifier(self, name, offset) -> bool - | @param name: field name (C++: const char *) - | @param offset (C++: uint64) - | @return: if the name is not unique, returns true + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' - | Serialize 'tinfo_t' object into a type string. + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. | - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | @param sudt_flags (C++: int) + | @param sudt_flags: (C++: int) | | set_attr(self, *args) -> 'bool' + | set_attr(self, ta, may_overwrite=True) -> bool | Set a type attribute. If necessary, a new typid will be created. | - | set_attr(self, ta, may_overwrite=True) -> bool - | @param ta (C++: const type_attr_t &) - | @param may_overwrite (C++: bool) + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) -> 'bool' - | Set type attributes. If necessary, a new typid will be created. this - | function modifies tav! (returns old attributes, if any) - | | set_attrs(self, tav) -> bool - | @param tav (C++: type_attrs_t *) - | @return: false: bad attributes + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' + | set_declalign(self, declalign) -> bool | Set declared alignment of the type. | - | set_declalign(self, declalign) -> bool - | @param declalign (C++: uchar) + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) - | mod: type_t + | + | @param mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) -> 'tinfo_code_t' | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | til: til_t * - | ord: uint32 - | ntf_flags: int - | name: char const * + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | til: til_t * - | name: char const * - | ntf_flags: int + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' + | swap(self, r) | Assign this = r and r = this. | - | swap(self, r) - | @param r (C++: tinfo_t &) + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | dst: uint64 - | v: uint64 - | bitoff: int + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t - | id: enum stock_type_id_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83840,7 +81423,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) -> 'tinfo_t' tinfo_t_get_stock(id) -> tinfo_t - id: enum stock_type_id_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -83853,7 +81437,8 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t - | s: int + | + | @param s: int | | __repr__ = _swig_repr(self) | @@ -83861,29 +81446,29 @@ class tinfo_visitor_t(builtins.object) | delete_tinfo_visitor_t(self) | | apply_to(self, *args) -> 'int' + | apply_to(self, tif, out=None, name=None, cmt=None) -> int | Call this function to initiate the traversal. | - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | @param tif (C++: const tinfo_t &) - | @param out (C++: type_mods_t *) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) -> 'void' + | prune_now(self) | To refuse to visit children of the current type, use this: | | visit_type(self, *args) -> 'int' - | Visit a subtype. this function must be implemented in the derived - | class. it may optionally fill out with the new type info. this can be - | used to modify types (in this case the 'out' argument of 'apply_to()' - | may not be NULL) return 0 to continue the traversal. return !=0 to - | stop the traversal. - | | visit_type(self, out, tif, name, cmt) -> int - | @param out (C++: type_mods_t *) - | @param tif (C++: const tinfo_t &) - | @param name (C++: const char *) - | @param cmt (C++: const char *) + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -83895,7 +81480,7 @@ class tinfo_visitor_t(builtins.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -83909,14 +81494,16 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: type_attr_t const & + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -83933,13 +81520,13 @@ class type_attr_t(builtins.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value Help on class type_attrs_t in module ida_typeinf: @@ -83950,11 +81537,14 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | x: qvector< type_attr_t > const & + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -83966,22 +81556,23 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: type_attr_t const & + | + | @param i: size_t + | @param v: type_attr_t const & | | __swig_destroy__ = delete_type_attrs_t(...) | delete_type_attrs_t(self) | | at(self, *args) -> 'type_attr_t const &' | at(self, _idx) -> type_attr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -83994,16 +81585,16 @@ class type_attrs_t(builtins.object) | | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t - | it: qvector< type_attr_t >::iterator | + | @param it: qvector< type_attr_t >::iterator | | erase(self, first, last) -> type_attr_t - | first: qvector< type_attr_t >::iterator - | last: qvector< type_attr_t >::iterator + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -84013,47 +81604,56 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) - | x: type_attr_t const & + | + | @param x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: type_attr_t * - | len: size_t + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t - | it: qvector< type_attr_t >::iterator - | x: type_attr_t const & + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) - | x: type_attr_t const & + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: type_attr_t const & | + | @param _newsize: size_t + | @param x: type_attr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< type_attr_t > & + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -84102,19 +81702,21 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) - | @param c (C++: const qstring &) + | + | @param c: qstring const & | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) - | @param n (C++: const qstring &) + | + | @param n: qstring const & | | set_new_type(self, *args) -> 'void' - | The visit_type() function may optionally save the modified type info. - | Use the following functions for that. The new name and comment will be - | applied only if the current tinfo element has storage for them. - | | set_new_type(self, t) - | @param t (C++: const tinfo_t &) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84126,19 +81728,19 @@ class type_mods_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type Help on class typedef_type_data_t in module ida_typeinf: @@ -84149,15 +81751,16 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | _name: char const * - | _resolve: bool | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | _til: til_t const * - | ord: uint32 - | _resolve: bool + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | @@ -84166,7 +81769,8 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: typedef_type_data_t &) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84178,16 +81782,22 @@ class typedef_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til Help on class udt_member_t in module ida_typeinf: @@ -84198,18 +81808,21 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: udt_member_t const & + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -84222,6 +81835,9 @@ class udt_member_t(builtins.object) | clr_baseclass(self, *args) -> 'void' | clr_baseclass(self) | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | | clr_unaligned(self, *args) -> 'void' | clr_unaligned(self) | @@ -84243,6 +81859,9 @@ class udt_member_t(builtins.object) | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | | is_unaligned(self, *args) -> 'bool' | is_unaligned(self) -> bool | @@ -84258,6 +81877,9 @@ class udt_member_t(builtins.object) | set_baseclass(self, *args) -> 'void' | set_baseclass(self) | + | set_method(self, *args) -> 'void' + | set_method(self) + | | set_unaligned(self, *args) -> 'void' | set_unaligned(self) | @@ -84269,7 +81891,8 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: udt_member_t &) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -84281,31 +81904,31 @@ class udt_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -84320,6 +81943,7 @@ class udt_type_data_t(udtmembervec_t) | Method resolution order: | udt_type_data_t | udtmembervec_t + | udtmembervec_template_t | builtins.object | | Methods defined here: @@ -84337,7 +81961,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool - | @param idx (C++: size_t) + | + | @param idx: size_t | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -84353,45 +81978,48 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) -> 'void' | swap(self, r) - | @param r (C++: udt_type_data_t &) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: + | Methods inherited from udtmembervec_template_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84401,31 +82029,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -84438,71 +82072,77 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -84511,7 +82151,7 @@ class udt_type_data_t(udtmembervec_t) | truncate(self) | | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: + | Data descriptors inherited from udtmembervec_template_t: | | __dict__ | dictionary for instance variables (if defined) @@ -84520,28 +82160,48 @@ class udt_type_data_t(udtmembervec_t) | list of weak references to the object (if defined) | | ---------------------------------------------------------------------- - | Data and other attributes inherited from udtmembervec_t: + | Data and other attributes inherited from udtmembervec_template_t: | | __hash__ = None Help on class udtmembervec_t in module ida_typeinf: -class udtmembervec_t(builtins.object) - | Proxy of C++ qvector< udt_member_t > class. +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< udt_member_t > const & + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | i: size_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | x: qvector< udt_member_t > const & + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84551,36 +82211,37 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< udt_member_t > const & - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: udt_member_t const & - | - | __swig_destroy__ = delete_udtmembervec_t(...) - | delete_udtmembervec_t(self) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: udt_member_t const & + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -84593,78 +82254,261 @@ class udtmembervec_t(builtins.object) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t - | it: qvector< udt_member_t >::iterator | + | @param it: qvector< udt_member_t >::iterator | | erase(self, first, last) -> udt_member_t - | first: qvector< udt_member_t >::iterator - | last: qvector< udt_member_t >::iterator + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | x: udt_member_t const & | - | - | find(self, x) -> udt_member_t - | x: udt_member_t const & + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: udt_member_t const & + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: udt_member_t * - | len: size_t + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t - | it: qvector< udt_member_t >::iterator - | x: udt_member_t const & + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | x: udt_member_t const & + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: udt_member_t const & | + | @param _newsize: size_t + | @param x: udt_member_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< udt_member_t > & + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -84689,27 +82533,27 @@ class udtmembervec_t(builtins.object) Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) -> 'error_t' + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t Read a typed idc object from the byte vector. - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) -> 'error_t' + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t Collection of register objects. Read a typed idc object from the database - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: @@ -84717,28 +82561,30 @@ unpack_object_from_bv(*args) -> 'PyObject *' unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) -> 'PyObject *' unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * - ti: til_t * - type: type_t const * - fields: p_list const * - ea: ea_t - pio_flags: int + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int Help on function use_golang_cc in module ida_typeinf: use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -84766,19 +82612,19 @@ class valstr_t(builtins.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -84814,7 +82660,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84824,19 +82671,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -84849,16 +82697,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -84868,47 +82716,56 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -84931,11 +82788,14 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | x: qvector< valstr_t > const & + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -84947,22 +82807,23 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: valstr_t const & + | + | @param i: size_t + | @param v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t - | _idx: size_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -84975,16 +82836,16 @@ class valstrvec_t(builtins.object) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t - | it: qvector< valstr_t >::iterator | + | @param it: qvector< valstr_t >::iterator | | erase(self, first, last) -> valstr_t - | first: qvector< valstr_t >::iterator - | last: qvector< valstr_t >::iterator + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -84994,47 +82855,56 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) - | x: valstr_t const & + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: valstr_t * - | len: size_t + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t - | it: qvector< valstr_t >::iterator - | x: valstr_t const & + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | x: valstr_t const & + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: valstr_t const & | + | @param _newsize: size_t + | @param x: valstr_t const & | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< valstr_t > & + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -85054,1198 +82924,270 @@ class valstrvec_t(builtins.object) Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) -> 'int' - Verify 'argloc_t' . - verify_argloc(vloc, size, gaps) -> int - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) -> 'int' verify_tinfo(typid) -> int - typid: uint32 + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int - visitor: tinfo_visitor_t * - out: type_mods_t * - tif: tinfo_t const & - name: char const * - cmt: char const * + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) -> 'uint64' write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - typid: uint32 - dst: uint64 - v: uint64 - bitoff: int + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_GOLANG_OK -""" -can use __golang calling convention -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FAI_UNUSED -""" -argument is not used by the function -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -info about argument locations has been calculated (stkargs and retloc -too) -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_EXPLOCS -""" -all arglocs are specified explicitly -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -"input" is file name, otherwise "input" contains a C declaration -""" - -ida_typeinf.HTI_HIGH -""" -assume high level prototypes (with hidden args, etc) -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -check that synchronization to IDB passed OK (set_numbered_type, -set_named_type) -""" - -ida_typeinf.NTF_FIXNAME -""" -force-validate the name of the type when setting (set_named_type, -set_numbered_type only) -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -symbol, name is mangled ('_func') only one of 'NTF_TYPE' and -'NTF_SYMU' , 'NTF_SYMM' can be used -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" -'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" -'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" -'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" -'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" -'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -assume high level prototypes (with hidden args, etc) -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if unionnb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by numberin: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by namein: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offsetin: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type.in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -recalculate field alignments, struct packing, etc to match the offsets -and size info -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) -> 'ea_t' - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) -> 'bool' + can_decode(ea) -> bool Can the bytes at address 'ea' be decoded as instruction? - can_decode(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction Help on function construct_macro in module ida_ua: construct_macro(*args) -> 'bool' construct_macro(insn, enable, build_macro) -> bool See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * Help on function construct_macro2 in module ida_ua: construct_macro2(*args) -> 'bool' construct_macro2(_this, insn, enable) -> bool - @param _this (C++: macro_constructor_t *) - @param insn (C++: insn_t *) - @param enable (C++: bool) + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) -> 'outctx_base_t *' + create_outctx(ea, F=0, suspop=0) -> outctx_base_t Create a new output context. To delete it, just use "delete pctx" - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) -> 'int' - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - decode_insn(out, ea) -> int - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) -> 'PyObject *' - decode_preceding_insn(out, ea) -> PyObject * + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) -> 'ea_t' + decode_prev_insn(out, ea) -> ea_t Decode previous instruction if it exists, fill 'out'. - decode_prev_insn(out, ea) -> ea_t - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) -> 'int' - Get 'op_t::dtype' from size. - get_dtype_by_size(size) -> int - @param size (C++: asize_t) + Get op_t::dtype from size. + + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: get_dtype_flag(*args) -> 'flags_t' - Get flags for 'op_t::dtype' field. - get_dtype_flag(dtype) -> flags_t - @param dtype (C++: op_dtype_t) + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) -> 'size_t' + get_dtype_size(dtype) -> size_t Get size of opt_::dtype field. - get_dtype_size(dtype) -> size_t - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) -> 'PyObject *' - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - get_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) -> 'int' - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) -> 'PyObject *' + get_printable_immvals(ea, n, F=0) -> PyObject * Get immediate ready-to-print values at the specified address - get_printable_immvals(ea, n, F=0) -> PyObject * - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum cref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) -> 'void' insn_add_dref(insn, to, opoff, type) - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - to: ea_t - opoff: int - type: enum dref_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) -> 'ea_t' insn_add_off_drefs(insn, x, type, outf) -> ea_t - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - type: enum dref_t - outf: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) -> 'bool' insn_create_stkvar(insn, x, v, flags) -> bool - insn: an ida_ua.insn_t, or an address (C++: const insn_t &) - x: op_t const & - v: adiff_t - flags: int + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -86259,14 +83201,15 @@ class insn_t(builtins.object) | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t - | n: int + | + | @param n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -86277,77 +83220,92 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) - | v: uint32 + | + | @param v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' + | add_cref(self, to, opoff, type) | Add a code cross-reference from the instruction. | - | add_cref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction. if - | the offset is unknown, then 0. (C++: int) - | @param type: type of xref (C++: cref_t) + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) -> 'void' - | Add a data cross-reference from the instruction. See 'add_off_drefs()' - | - usually it can be used in most cases. - | | add_dref(self, to, opoff, type) - | @param to: target linear address (C++: ea_t) - | @param opoff: offset of the operand from the start of instruction if - | the offset is unknown, then 0 (C++: int) - | @param type: type of xref (C++: dref_t) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) -> 'ea_t' - | Add xrefs for an operand of the instruction. This function creates all - | cross references for 'enum', 'offset' and 'structure offset' operands. - | Use 'add_off_drefs()' in the presence of negative offsets. - | | add_off_drefs(self, x, type, outf) -> ea_t - | @param x: reference to operand (C++: const op_t &) - | @param type: type of xref (C++: dref_t) - | @param outf: out_value() flags. These flags should match the flags - | used to output the operand (C++: int) - | @return: if is_off() : the reference target address (the same as - | calc_reference_data). if is_stroff() : BADADDR because for - | stroffs the target address is unknown else: BADADDR because - | enums do not represent addresses + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) -> 'void' | assign(self, other) - | other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) -> 'bool' | create_op_data(self, ea_, opoff, dtype) -> bool - | ea_: ea_t - | opoff: int - | dtype: op_dtype_t + | Convenient alias. | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t | | create_op_data(self, ea_, op) -> bool - | ea_: ea_t - | op: op_t const & + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool - | x: op_t const & - | v: adiff_t - | flags_: int + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) -> 'uint32' - | see 'instruc_t::feature' - | | get_canon_feature(self, ph) -> uint32 - | @param ph (C++: const processor_t &) + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) -> 'char const *' - | see 'instruc_t::name' - | | get_canon_mnem(self, ph) -> char const - | @param ph (C++: const processor_t &) + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) -> 'uint8' | get_next_byte(self) -> uint8 @@ -86362,15 +83320,19 @@ class insn_t(builtins.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool | Belongs to a 64bit segment? | | is_canon_insn(self, *args) -> 'bool' - | see \ph{ 'is_canon_insn()' } - | | is_canon_insn(self, ph) -> bool - | @param ph (C++: const processor_t &) + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool | | is_macro(self, *args) -> 'bool' + | is_macro(self) -> bool | Is a macro instruction? | | ---------------------------------------------------------------------- @@ -86401,32 +83363,38 @@ class insn_t(builtins.object) | auxpref | __get_auxpref__(self) -> uint32 | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -86435,15 +83403,16 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) -> 'insn_t *' insn_t__from_ptrval__(ptrval) -> insn_t - ptrval: size_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) -> 'bool' + is_floating_dtype(dtype) -> bool Is a floating type operand? - is_floating_dtype(dtype) -> bool - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on class macro_constructor_t in module ida_ua: @@ -86456,7 +83425,8 @@ class macro_constructor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> macro_constructor_t - | self: PyObject * + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -86464,23 +83434,19 @@ class macro_constructor_t(builtins.object) | delete_macro_constructor_t(self) | | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool | Try to extend the instruction. | - | build_macro(self, insn, may_go_forward) -> bool - | @param insn: Instruction to modify, usually the first instruction of - | the macro (C++: insn_t *) - | @param may_go_forward: Is it ok to consider the next instruction for - | the macro? This argument may be false, for - | example, if there is a cross reference to the - | end of INSN. In this case creating a macro is - | not desired. However, it may still be useful to - | perform minor tweaks to the instruction using - | the information about the surrounding - | instructions. (C++: bool) - | @return: true if created an macro instruction. This function may - | modify 'insn' and return false; these changes will be - | accepted by the kernel but the instruction will not be - | considered as a macro. + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86492,7 +83458,7 @@ class macro_constructor_t(builtins.object) | list of weak references to the object (if defined) | | reserved - | macro_constructor_t_reserved_get(self) -> size_t + | reserved | | thisown | The membership flag @@ -86500,52 +83466,46 @@ class macro_constructor_t(builtins.object) Help on function map_code_ea in module ida_ua: map_code_ea(*args) -> 'ea_t' - Map a code address. This function takes into account the segment - translations. - map_code_ea(insn, addr, opnum) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_code_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) -> 'ea_t' - Map a data address. - map_data_ea(insn, addr, opnum=-1) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int map_data_ea(insn, op) -> ea_t - @param insn: the current instruction - an ida_ua.insn_t, or an - address (C++: const insn_t &) - op: op_t const & + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) -> 'ea_t' map_ea(insn, op, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - @param op (C++: const op_t &) - @param iscode (C++: bool) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool map_ea(insn, addr, opnum, iscode) -> ea_t - @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) - addr: ea_t - opnum: int - @param iscode (C++: bool) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -86573,49 +83533,57 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) - | r: uint16 + | + | @param r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) - | v: ea_t + | + | @param v: ea_t | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) - | v: ea_t + | + | @param v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) - | other: op_t const & + | + | @param other: op_t const & | | clr_shown(self, *args) -> 'void' + | clr_shown(self) | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) -> 'bool' + | is_imm(self, v) -> bool | Is immediate operand? | - | is_imm(self, v) -> bool - | @param v (C++: uval_t) + | @param v: (C++: uval_t) | | is_reg(self, *args) -> 'bool' + | is_reg(self, r) -> bool | Is register operand? | - | is_reg(self, r) -> bool - | @param r (C++: int) + | @param r: (C++: int) | | set_shown(self, *args) -> 'void' + | set_shown(self) | Set operand to be shown. | | shown(self, *args) -> 'bool' + | shown(self) -> bool | Is operand set to be shown? | | ---------------------------------------------------------------------- @@ -86631,19 +83599,19 @@ class op_t(builtins.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -86652,16 +83620,16 @@ class op_t(builtins.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -86670,7 +83638,7 @@ class op_t(builtins.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t @@ -86679,7 +83647,8 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) -> 'op_t *' op_t__from_ptrval__(ptrval) -> op_t - ptrval: size_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -86690,11 +83659,13 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array - | data: op_t (&)[8] + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -86706,8 +83677,9 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: op_t const & + | + | @param i: size_t + | @param v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) @@ -86717,7 +83689,10 @@ class operands_array(builtins.object) | | _set_bytes(self, *args) -> 'void' | _set_bytes(self, bts) - | bts: bytevec_t const & + | + | Parameters + | ---------- + | bts: bytevec_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -86732,7 +83707,7 @@ class operands_array(builtins.object) | _get_bytes(self) -> bytevec_t | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -86759,21 +83734,21 @@ class outctx_base_t(builtins.object) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -86782,84 +83757,80 @@ class outctx_base_t(builtins.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -86868,153 +83839,156 @@ class outctx_base_t(builtins.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) -> 'flags_t' - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -87024,24 +83998,25 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, makeline_flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, makeline_flags) - | @param prefix (C++: const char *) - | @param makeline_flags (C++: int) + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -87053,13 +84028,13 @@ class outctx_base_t(builtins.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -87068,7 +84043,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - ptrval: size_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -87089,17 +84065,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) - | @param pfn (C++: const func_t *) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) - | @param pfn (C++: func_t *) + | + | @param pfn: func_t * | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | @param flags (C++: int) - | @param proc_name (C++: const char *) - | @param proc_flavour (C++: const char *) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -87108,118 +84087,119 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) -> 'void' - | Output custom mnemonic for 'insn'. E.g. if it should differ from the - | one in 'ph.instruc'. This function outputs colored text. See - | 'out_mnem' - | | out_custom_mnem(self, mnem, width=8, postfix=None) - | @param mnem: custom mnemonic (C++: const char *) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to 'mnem' (C++: const char *) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) - | @param analyze_only (C++: bool) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) -> 'void' - | Print all operand values as commented character constants. This - | function is used to comment void operands with their representation in - | the form of character constants. This function outputs a colored text. + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) -> 'void' - | Output instruction mnemonic for 'insn' using information in - | 'ph.instruc' array. This function outputs a colored text. It should be - | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will - | output at least one space after the instruction. mnemonic even if the - | specified 'width' is not enough. - | | out_mnem(self, width=8, postfix=None) - | @param width: width of field with mnemonic. if < 0, then 'postfix' - | will be output before the mnemonic, i.e. as a prefix - | (C++: int) - | @param postfix: optional postfix added to the instruction mnemonic - | (C++: const char *) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) -> 'void' - | Output instruction mnemonic using information in 'insn'. It should be - | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or - | 'out_mnem' . This function outputs a colored text. + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) -> 'bool' - | Use this function to output an operand of an instruction. This - | function checks for the existence of a manually defined operand and - | will output it if it exists. It should be called from - | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This - | function outputs a colored text. - | | out_one_operand(self, n) -> bool - | @param n: number of operand (C++: int) - | @retval: 1 - operand is displayed - | @retval: 0 - operand is hidden + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool - | @param segtype (C++: uchar) + | + | @param segtype: uchar | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t - | arg2: qstring * - | arg3: color_t * + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) - | @param value (C++: int) + | + | @param value: int | | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, flags) | Initialization; normally used only by the kernel. | - | setup_outctx(self, prefix, flags) - | @param prefix (C++: const char *) - | flags: int + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ash - | outctx_t_ash_get(self) -> asm_t + | ash | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn | | ph - | outctx_t_ph_get(self) -> processor_t + | ph | | procmod - | outctx_t_procmod_get(self) -> procmod_t + | procmod | | saved_immvals - | outctx_t_saved_immvals_get(self) -> uval_t [8] + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -87234,21 +84214,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' - | Append contents of 'buf' to the line array. Behaves like flush_outbuf - | but accepts an arbitrary buffer - | | flush_buf(self, buf, indent=-1) -> bool - | @param buf (C++: const char *) - | @param indent (C++: int) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' - | Functions to populate the output line array (lnar) Move the contents - | of the output buffer to the line array (outbuf->lnar) The kernel - | augments the outbuf contents with additional text like the line - | prefix, user-defined comments, xrefs, etc at this call. - | | flush_outbuf(self, indent=-1) -> bool - | @param indent (C++: int) + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -87257,81 +84237,77 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool | Generate big non-indented comment lines. | - | gen_block_cmt(self, cmt, color) -> bool - | @param cmt: comment text. may contain \n characters to denote new - | lines. should not contain comment character (;) (C++: - | const char *) - | @param color: color of comment text (one of Color tags ) (C++: - | color_t) - | @return: overflow, lnar_maxsize has been reached + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' - | Generate thin border line. This function does nothing if generation of - | border lines is disabled. - | | gen_border_line(self, solid=False) -> bool - | @param solid: generate solid border line (with =), otherwise with - - | (C++: bool) - | @return: overflow, lnar_maxsize has been reached + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . - | | gen_cmt_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' - | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' - | . - | | gen_collapsed_line(self, format) -> bool - | @param format: printf() style format line. The resulting comment line - | should not include comment character (;) (C++: const - | char *) - | @return: overflow, lnar_maxsize has been reached + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' - | Generate empty line. This function does nothing if generation of empty - | lines is disabled. + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool | printf-like function to add lines to the line array. | - | gen_printf(self, indent, format) -> bool - | @param indent: indention of the line. if indent == -1, the kernel will - | indent the line at \inf{indent}. if indent < 0, -indent - | will be used for indention. The first line printed with - | indent < 0 is considered as the most important line at - | the current address. Usually it is the line with the - | instruction itself. This line will be displayed in the - | cross-reference lists and other places. If you need to - | output an additional line before the main line then - | pass DEFAULT_INDENT instead of -1. The kernel will know - | that your line is not the most important one. (C++: - | int) - | @param format: printf style colored line to generate (C++: const char - | *) - | @return: overflow, lnar_maxsize has been reached + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | arg2: op_t const & - | arg3: uval_t - | arg4: sval_t * - | arg5: int * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) - | @param answers (C++: qstrvec_t *) - | @param maxsize (C++: int) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -87340,145 +84316,147 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) | Output "address" escape sequence. | - | out_addr_tag(self, ea) - | @param ea (C++: ea_t) + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' - | Output a number with the specified base (binary, octal, decimal, hex) - | The number is output without color codes. see also 'out_long()' - | | out_btoa(self, Word, radix=0) - | @param Word (C++: uval_t) - | @param radix (C++: char) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' - | Output one character. The character is output without color codes. see - | also 'out_symbol()' - | | out_char(self, c) - | @param c (C++: char) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) | Append a character multiple times. | - | out_chars(self, c, n) - | @param c (C++: char) - | @param n (C++: int) + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' - | Output a colored line with register names in it. The register names - | will be substituted by user-defined names ( 'regvar_t' ) Please note - | that out_tagoff tries to make substitutions too (when called with - | COLOR_REG) - | | out_colored_register_line(self, str) - | @param str (C++: const char *) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' - | Output a string with 'COLOR_KEYWORD' color. - | | out_keyword(self, str) - | @param str (C++: const char *) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) | Output a string with the specified color. | - | out_line(self, str, color=0) - | @param str (C++: const char *) - | @param color (C++: color_t) + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' - | Output a number with appropriate color. Low level function. Use - | 'out_value()' if you can. if 'suspop' is set then this function uses - | 'COLOR_VOIDOP' instead of 'COLOR_NUMBER' . 'suspop' is initialized:in - | out_one_operand()in ..\ida\gl.cpp (before calling \ph{d_out()}) - | | out_long(self, v, radix) - | @param v (C++: sval_t) - | @param radix (C++: char) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool | Output a name expression. | - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | @param x: instruction operand referencing the name expression (C++: - | const op_t &) - | @param ea: address to convert to name expression (C++: ea_t) - | @param off: the value of name expression. this parameter is used only - | to check that the name expression will have the wanted - | value. You may pass BADADDR for this parameter but I - | discourage it because it prohibits checks. (C++: adiff_t) - | @return: true if the name expression has been produced + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' - | Functions to append text to the current output buffer (outbuf) Append - | a formatted string to the output string. - | | out_printf(self, format) - | @param format (C++: const char *) - | @return: the number of characters appended + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' - | Output a character with 'COLOR_REG' color. - | | out_register(self, str) - | @param str (C++: const char *) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) | Appends spaces to outbuf until its tag_strlen becomes 'len'. | - | out_spaces(self, len) - | @param len (C++: ssize_t) + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' - | Output a character with 'COLOR_SYMBOL' color. - | | out_symbol(self, c) - | @param c (C++: char) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) | Output "turn color off" escape sequence. | - | out_tagoff(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) | Output "turn color on" escape sequence. | - | out_tagon(self, tag) - | @param tag (C++: color_t) + | @param tag: (C++: color_t) | | out_value(self, *args) -> 'flags_t' - | Output immediate value. Try to use this function to output all - | constants of instruction operands. This function outputs a number from - | x.addr or x.value in the form determined by ::uFlag. It outputs a - | colored text.-1 is output with 'COLOR_ERROR' 0 is output as a number - | or character or segment - | | out_value(self, x, outf=0) -> flags_t - | @param x (C++: const op_t &) - | @param outf (C++: int) - | @return: flags of the output value + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outflags: Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) - | @param saved_flags (C++: int) + | + | @param saved_flags: int | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) - | @param ea (C++: ea_t) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -87488,17 +84466,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) - | @param on (C++: bool) + | + | @param on: bool | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int | Finalize the output context. | - | term_outctx(self, prefix=None) -> int - | @param prefix (C++: const char *) - | @return: the number of generated lines. + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -87510,328 +84489,77 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) -> 'outctx_t *' outctx_t__from_ptrval__(ptrval) -> outctx_t - ptrval: size_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) -> 'qstring *' + print_insn_mnem(ea) -> str Print instruction mnemonics. - print_insn_mnem(ea) -> str - @param ea: linear address of the instruction (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address of the instruction + @return: success Help on function print_operand in module ida_ua: print_operand(*args) -> 'qstring *' - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -in case of an error, use a CP_REPLCHAR instead of a hex representation -of the problematic byte -""" +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" +Cross-references are automatically sorted.""" -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -do not suppress leading spaces currently works only for floating point -numbers -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -packed factor defined. (! 'o_reg' + 'dt_packreal' ) -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: @@ -87877,10 +84605,10 @@ class cases_and_targets_t(builtins.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -87894,15 +84622,19 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | i: size_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -87911,25 +84643,31 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | i: size_t - | v: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | __swig_destroy__ = delete_casevec_t(...) | delete_casevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -87957,74 +84695,86 @@ class casevec_t(builtins.object) | | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) - | s: qvector< signed-ea-like-numeric-type > *↗ - | len: size_t + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | push_back(self, x) - | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) - | cnt: size_t + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) - | _newsize: size_t - | x: qvector< signed-ea-like-numeric-type > const &↗ | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | resize(self, _newsize) - | _newsize: size_t + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) - | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -88076,171 +84826,165 @@ create_switch_xrefs(*args) -> 'bool' Help on function del_cref in module ida_xref: del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) - jump_ea: ea_t - si: switch_info_t const & + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' + has_external_refs(pfn, ea) -> bool Has a location external to the function references? - has_external_refs(pfn, ea) -> bool - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -88257,27 +85001,61 @@ class xrefblk_t(builtins.object) | __swig_destroy__ = delete_xrefblk_t(...) | delete_xrefblk_t(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool - | _from: ea_t - | flags: int + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool - | _to: ea_t - | flags: int + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) -> 'bool' | next_from(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool - | _from: ea_t - | _to: ea_t - | flags: int + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -88289,77 +85067,44 @@ class xrefblk_t(builtins.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user Help on function xrefchar in module ida_xref: xrefchar(*args) -> 'char' + xrefchar(xrtype) -> char Get character describing the xref type. - xrefchar(xrtype) -> char - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -88450,13 +85195,13 @@ EVAL_FAILURE(code) Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str Get an indented comment. - get_cmt(ea, rptble) -> str - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -88702,40 +85447,30 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t add_bpt(bpt) -> bool - bpt: bpt_t const & + + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool Create a code cross-reference. - add_cref(frm, to, type) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success Help on function add_default_til in module idc: @@ -88748,32 +85483,30 @@ add_default_til(name) Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool Create a data cross-reference. - add_dref(frm, to, type) -> bool - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool Add an entry point to the list of entry points. - add_entry(ord, ea, name, makecode, flags=0) -> bool - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) Help on function add_enum in module idc: @@ -88814,39 +85547,39 @@ add_enum_member(enum_id, name, value, bmask) Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - add_func(ea1, ea2=BADADDR) -> bool - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) + @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' - Add hotkey for IDC function ( 'ui_add_idckey' ). - add_idc_hotkey(hotkey, idcfunc) -> int - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -88871,16 +85604,15 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - add_sourcefile(ea1, ea2, filename) -> bool - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success Help on function add_struc in module idc: @@ -88937,13 +85669,12 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point. - add_user_stkpnt(ea, delta) -> bool - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success Help on function append_func_tail in module idc: @@ -88975,19 +85706,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: ask_seg(defval, format) - # ---------------------------------------------------------------------- + Display a dialog box and wait for the user to input an segment name + (ui_ask_seg). This function allows to enter segment register names, segment base + paragraphs, segment names to denote a segment. + + @retval 0: if the user pressed Esc. + @retval 1: ok, the user entered an segment name Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel". - ask_yn(deflt, format) -> int - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -89005,53 +85739,51 @@ atol(s) Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - attach_process(pid=pid_t(-1), event_id=-1) -> int - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - @retval: -4 - debugger was not inited - @retval: -3 - the attaching is not supported - @retval: -2 - impossible to find a compatible process - @retval: -1 - impossible to attach to the given process (process died, - privilege needed, not supported by the debugger plugin, - ...) - @retval: 0 - the user cancelled the attaching to the process - @retval: 1 - the debugger properly attached to the process + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - auto_mark_range(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - auto_unmark(start, end, type) - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' + auto_wait() -> bool Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -89106,11 +85838,11 @@ can_exc_continue() Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' + check_bpt(ea) -> int Check the breakpoint at the specified address. - check_bpt(ea) -> int - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -89132,17 +85864,15 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool Create an alignment item. - create_align(ea, length, alignment) -> bool - @param ea: linear address (C++: ea_t) - @param length: size of the item in bytes. 0 means to infer from - ALIGNMENT (C++: asize_t) - @param alignment: alignment exponent. Example: 3 means align to 8 - bytes. 0 means to infer from LENGTH It is forbidden - to specify both LENGTH and ALIGNMENT as 0. (C++: - int) - @return: success + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -89165,32 +85895,30 @@ create_byte(ea) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type. - create_custdata(ea, length, dtid, fid, force=False) -> bool - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - create_data(ea, dataflag, size, tid) -> bool - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success Help on function create_double in module idc: @@ -89222,16 +85950,16 @@ create_float(ea) Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - create_insn(ea, out=None) -> int - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -89319,16 +86047,15 @@ create_yword(ea) Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * Convenience function: define new exception code. - define_exception(code, name, desc, flags) -> char const * - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -89362,49 +86089,45 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - del_bpt(ea) -> bool - @param ea: any address in the breakpoint range (C++: ea_t) - + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - bptloc: bpt_location_t const & + + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - del_cref(frm, to, expand) -> bool - @param frm: linear address of referencing instruction (C++: ea_t) - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - @retval: true - if the referenced instruction will be deleted + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' + del_dref(frm, to) Delete a data cross-reference. - del_dref(frm, to) - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' + del_enum(id) Delete an enum type. - del_enum(id) - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -89424,25 +86147,26 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' + del_fixup(source) Delete fixup information. - del_fixup(source) - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' + del_func(ea) -> bool Delete a function. - del_func(ea) -> bool - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success Help on function del_hash_string in module idc: @@ -89457,72 +86181,70 @@ del_hash_string(hash_id, key) Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool Delete hidden range. - del_hidden_range(ea) -> bool - @param ea: any address in the hidden range (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the hidden range + @return: success Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - @param hotkey (C++: const char *) + + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool Delete a segment. - del_segm(ea, flags) -> bool - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - @retval: 1 - ok - @retval: 0 - failed, no segment at 'ea'. + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - del_selector(selector) - @param selector: number of selector to remove from the translation - table (C++: sel_t) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) - @param ea (C++: ea_t) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool Delete information about the source file. - del_sourcefile(ea) -> bool - @param ea: linear address (C++: ea_t) - @return: success + @param ea: (C++: ea_t) linear address + @return: success Help on function del_stkpnt in module idc: @@ -89589,28 +86311,30 @@ demangle_name(name, disable_mask) Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. - diff_trace_file(filename) -> bool - @param filename (C++: const char *) + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool - @param ea (C++: ea_t) - @param enable (C++: bool) + @param ea: ea_t + @param enable: bool enable_bpt(bptloc, enable=True) -> bool - bptloc: bpt_location_t const & - @param enable (C++: bool) + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -89645,8 +86369,9 @@ eval_idc(expr) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -89673,34 +86398,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t Find next code address. - find_code(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t Find next data address. - find_data(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data. - find_defined(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -89716,12 +86441,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - find_imm(ea, sflag, search_value) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) - @param search_value (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -89738,24 +86463,24 @@ find_selector(val) Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t Find next suspicious operand. - find_suspop(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t Find next unexplored address. - find_unknown(ea, sflag) -> ea_t - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -89929,13 +86654,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t - slot: int32 + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * - slot: int32 + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -89959,24 +86686,24 @@ get_bpt_ea(n) Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - get_bpt_tev_ea(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -89995,13 +86722,13 @@ get_bytes(ea, size, use_dbg=False) Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_call_tev_callee(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -90023,19 +86750,19 @@ get_curline() Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - get_db_byte(ea) -> uchar - @param ea (C++: ea_t) + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -90045,69 +86772,70 @@ get_debugger_event_cond(*args) -> 'char const *' Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t Get entry point address by its ordinal - get_entry(ord) -> ea_t - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str Get name of the entry point by its ordinal. - get_entry_name(ord) -> str - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t Get ordinal number of an entry point. - get_entry_ordinal(idx) -> uval_t - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t Get enum by name. - get_enum(name) -> enum_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str Get enum comment. - get_enum_cmt(id, repeatable) -> str - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: get_enum_flag(*args) -> 'flags_t' - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - get_enum_flag(id) -> flags_t - @param id (C++: enum_t) + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t Get the index in the list of enums. - get_enum_idx(id) -> uval_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -90126,18 +86854,18 @@ get_enum_member(enum_id, value, serial, bmask) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member. - get_enum_member_bmask(id) -> bmask_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name. - get_enum_member_by_name(name) -> const_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -90152,10 +86880,10 @@ get_enum_member_cmt(const_id, repeatable) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member. - get_enum_member_enum(id) -> enum_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -90169,40 +86897,39 @@ get_enum_member_name(const_id) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t Get value of an enum member. - get_enum_member_value(id) -> uval_t - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' - Get name of enum. - get_enum_name(id) -> str - @param id (C++: enum_t) + + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' - Get number of declared 'enum_t' types. + get_enum_qty() -> size_t + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t Get the number of the members of the enum. - get_enum_size(id) -> size_t - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - get_enum_width(id) -> size_t - @param id (C++: enum_t) + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -90301,8 +87028,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t - ea: ea_t - what: int + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -90318,67 +87046,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t - ea: ea_t - idx: size_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(id) -> bmask_t Get first bitmask in the enum (bitfield) - get_first_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + @param enum_id: id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - get_first_cref_from(frm) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @return: first referenced address. If the specified instruction - doesn't reference to other instructions then returns BADADDR - . + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - get_first_cref_to(to) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t Get first data referenced from the specified address. - get_first_dref_from(frm) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @return: linear address of first (lowest) data referenced from the - specified address. Return BADADDR if the specified - instruction/data doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t Get address of instruction/data referencing to the specified data. - get_first_dref_to(to) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -90395,13 +87119,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t - @param frm (C++: ea_t) + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t - @param to (C++: ea_t) + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -90460,7 +87186,10 @@ get_first_seg() Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -90515,12 +87244,12 @@ get_fixup_target_type(ea) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str Get forced operand. - get_forced_operand(ea, n) -> str - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -90584,11 +87313,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: get_full_flags(*args) -> 'flags_t' + get_full_flags(ea) -> flags_t Get flags value for address 'ea'. - get_full_flags(ea) -> flags_t - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -90678,27 +87407,26 @@ get_inf_attr(attr) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - get_item_end(ea) -> ea_t - @param ea (C++: ea_t) + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - get_item_head(ea) -> ea_t - @param ea (C++: ea_t) + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -90712,11 +87440,11 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(id) -> bmask_t Get last bitmask in the enum (bitfield) - get_last_bmask(id) -> bmask_t - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + @param enum_id: id of enum + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -90772,7 +87500,10 @@ get_last_member(sid) Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -90785,11 +87516,11 @@ get_local_tinfo(ordinal) Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction. - get_manual_insn(ea) -> str - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -90962,16 +87693,15 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - get_name_ea(_from, name) -> ea_t - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + Get address of the name. Dummy names (like byte_xxxx where xxxx are hex digits) + are parsed by this function to obtain the address. The database is not consulted + for them. This function works only with regular names. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -90986,65 +87716,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - get_next_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t Get next instruction referenced from the specified instruction. - get_next_cref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t Get next instruction referencing to the specified instruction. - get_next_cref_to(to, current) -> ea_t - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t Get next data referenced from the specified address. - get_next_dref_from(frm, current) -> ea_t - @param frm: linear address of referencing instruction or data (C++: - ea_t) - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t Get address of instruction/data referencing to the specified data - get_next_dref_to(to, current) -> ea_t - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -91074,24 +87800,26 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t - @param frm (C++: ea_t) - @param current (C++: ea_t) + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t - @param to (C++: ea_t) - @param current (C++: ea_t) + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t Find next address with fixup information - get_next_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -91170,11 +87898,11 @@ get_next_seg(ea) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t Get next struct index. - get_next_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -91225,22 +87953,22 @@ get_ordinal_qty() Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' - Get original byte value (that was before patching). This function - works for wide byte processors too. - get_original_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - get_prev_bmask(id, bmask) -> bmask_t - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: id of enum + @param bmask: (C++: bmask_t) + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -91270,11 +87998,11 @@ get_prev_fchunk(ea) Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t Find previous address with fixup information - get_prev_fixup_ea(ea) -> ea_t - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -91334,78 +88062,81 @@ get_prev_offset(sid, offset) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t Get previous struct index. - get_prev_struc_idx(idx) -> uval_t - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - get_processes(proclist) -> ssize_t - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) + @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - get_qword(ea) -> uint64 - @param ea (C++: ea_t) + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - get_reg_val(regname, regval) -> bool - @param regname (C++: const char *) - @param regval (C++: regval_t *) + Get register value as an unsigned 64-bit int. + @param regname: (C++: const char *) char const * + @param regval: regval_t * get_reg_val(regname, ival) -> bool - @param regname (C++: const char *) - ival: uint64 * + @param regname: char const * + @param ival: uint64 * - get_reg_val(regname) -> PyObject * - @param regname (C++: const char *) + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - get_ret_tev_return(n) -> ea_t - @param n: number of trace event, is in range 0.. get_tev_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' + get_root_filename() -> str Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' - Get the address at the screen cursor ( 'ui_screenea' ) + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -91458,19 +88189,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t - @param ea (C++: ea_t) + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * Get name of source file occupying the given address. - get_sourcefile(ea, bounds=None) -> char const * - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -91512,8 +88244,11 @@ get_sreg(ea, reg) Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options Help on function get_str_type in module idc: @@ -91537,67 +88272,68 @@ get_strlit_contents(ea, length=-1, strtype=0) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t Get struct id by struct number. - get_struc_by_idx(idx) -> tid_t - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str Get struct comment. - get_struc_cmt(id, repeatable) -> str - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t Get struct id by name. - get_struc_id(name) -> tid_t - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t Get internal number of the structure. - get_struc_idx(id) -> uval_t - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' - Get struct name by id - get_struc_name(id, flags=0) -> str - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' - Get struct size (also see 'get_struc_size(tid_t)' ) - get_struc_size(sptr) -> asize_t - @param sptr (C++: const struc_t *) + Get struct size (also see get_struc_size(const struc_t *)) + @param sptr: struc_t const * get_struc_size(id) -> asize_t - id: tid_t + + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t - @param n (C++: int) + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -91614,8 +88350,9 @@ get_tev_reg_mem_qty(tev) Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -91625,19 +88362,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int - @param n (C++: int) + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int - @param n (C++: int) + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -91650,10 +88390,10 @@ get_tinfo(ea) Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str Get the file header of the specified trace file. - get_trace_file_desc(filename) -> str - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -91667,35 +88407,35 @@ get_type(ea) Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - get_wide_byte(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - get_wide_dword(ea) -> uint64 - @param ea (C++: ea_t) + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - get_wide_word(ea) -> uint64 - @param ea (C++: ea_t) + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -91708,32 +88448,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - Get enum by its index in the list of enums (0.. 'get_enum_qty()' -1). - getn_enum(idx) -> enum_t - @param idx (C++: size_t) + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread(n) -> thid_t - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - getn_thread_name(n) -> char const * - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -91828,11 +88567,11 @@ is_align(F) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - is_bf(id) -> bool - @param id (C++: enum_t) + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -91993,10 +88732,10 @@ is_unknown(F) Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool Is the specified file a valid trace file for the current database? - is_valid_trace_file(filename) -> bool - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -92005,47 +88744,46 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - Jump to the specified address ( 'ui_jumpto' ). - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + Set cursor position in custom ida viewer. + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + @return: success jumpto(custom_viewer, place, x, y) -> bool - custom_viewer: TWidget * - place: place_t * - x: int - y: int - @return: success + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool Load & run a plugin. - load_and_run_plugin(name, arg) -> bool - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool - @param dbgname (C++: const char *) - @param use_remote (C++: bool) + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' - Load a recorded trace file in the 'Tracing' window. If the call - succeeds and 'buf' is not null, the description of the trace stored in - the binary trace file will be returned in 'buf' - load_trace_file(filename) -> str - @param filename (C++: const char *) + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -92084,7 +88822,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -92097,11 +88835,11 @@ msg(*args) -> 'PyObject *' Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t Get next address in the program (i.e. next address which has flags). - next_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -92129,115 +88867,115 @@ next_head(ea, maxea=BADADDR)↗ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t Get address of next non-tail byte. - next_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' - set op type to 'bin_flag()' - op_bin(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' - set op type to 'char_flag()' - op_chr(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' - set op type to 'dec_flag()' - op_dec(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_enum(ea, n, id, serial) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' - set op type to 'flt_flag()' - op_flt(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' - set op type to 'hex_flag()' - op_hex(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool Set forced operand. - set_forced_operand(ea, n, op) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand nullptr: do nothing (return 0) "" : - delete forced operand (C++: const char *) - @return: success + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' - set op type to 'num_flag()' - op_num(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' - set op type to 'oct_flag()' - op_oct(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: op_offset(*args) -> 'bool' - See 'op_offset_ex()' - op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool - @param ea (C++: ea_t) - @param n (C++: int) - @param type_and_flags (C++: uint32) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -92297,25 +89035,25 @@ op_plain_offset(ea, n, base) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - op_seg(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - op_stkvar(ea, n) -> bool - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success Help on function op_stroff in module idc: @@ -92354,79 +89092,75 @@ parse_decls(inputtype, flags=0) Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - patch_byte(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool Change one byte of the debugged process memory. - put_dbg_byte(ea, x) -> bool - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_dword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - patch_qword(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - patch_word(ea, x) -> bool - @param ea (C++: ea_t) - @param x (C++: uint64) - @retval: true - the database has been modified, - @retval: false - the debugger is running and the process' memory has - value 'x' at address 'ea', or the debugger is not - running, and the IDB has value 'x' at address 'ea - already. + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -92442,22 +89176,20 @@ plan_and_wait(sEA, eEA, final_pass=True) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int Add a signature file to the list of planned signature files. - plan_to_apply_idasgn(fname) -> int - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t Get previous address in the program. - prev_addr(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -92473,11 +89205,11 @@ prev_head(ea, minea=0) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t Get address of previous non-tail byte. - prev_not_tail(ea) -> ea_t - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -92562,20 +89294,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) - ea: ea_t - lnnum: int - x: short - y: short - slot: int32 - comment: char const * + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) -> 'void' + qexit(code) Call qatexit functions, shut down UI and kernel, and exit. - qexit(code) - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -92606,8 +89339,10 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -92654,43 +89389,45 @@ readstr(handle) Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int Rebase the whole program by 'delta' bytes. - rebase_program(delta, flags) -> int - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - recalc_spd(cur_ea) -> bool - @param cur_ea: linear address of the current instruction (C++: ea_t) - @retval: 1 - new stkpnt is added - @retval: 0 - nothing is changed + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -92720,15 +89457,14 @@ rename_array(array_id, newname) Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool Rename entry point. - rename_entry(ord, name, flags=0) -> bool - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success Help on function resume_process in module idc: @@ -92737,18 +89473,19 @@ resume_process() Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' + resume_thread(tid) -> int Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - resume_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes Get input file md5. Help on function rotate_byte in module idc: @@ -92780,19 +89517,15 @@ rotate_word(x, count) Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - run_to(ea, pid=pid_t(-1), tid=0) -> bool - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -92806,11 +89539,11 @@ save_database(idbname, flags=0) Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool Save the current trace in the specified file. - save_trace_file(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -92831,14 +89564,14 @@ sel2para(sel) Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - select_thread(tid) -> bool - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -92942,14 +89675,15 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool Set an indented comment. - set_cmt(ea, comm, rptble) -> bool - @param ea: linear address (C++: ea_t) - @param comm: comment string nullptr: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success Help on function set_color in module idc: @@ -92965,18 +89699,19 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(evcond) - @param evcond (C++: const char *) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - set_debugger_options(options) -> uint - @param options (C++: uint) - @return: the old debugger options + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -92992,76 +89727,76 @@ set_default_sreg_value(ea, reg, value) Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - set_enum_bf(id, bf) -> bool - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type. - set_enum_cmt(id, cmt, repeatable) -> bool - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool Set data representation flags. - set_enum_flag(id, flag) -> bool - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' - Set serial number of enum. Also see 'get_enum_idx()' . - set_enum_idx(id, idx) -> bool - @param id (C++: enum_t) - @param idx (C++: size_t) + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member. - set_enum_member_cmt(id, cmt, repeatable) -> bool - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool Set name of enum member. - set_enum_member_name(id, name) -> bool - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool Set name of enum type. - set_enum_name(id, name) -> bool - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' - See comment for 'get_enum_width()' - set_enum_width(id, width) -> bool - @param id (C++: enum_t) - @param width (C++: int) + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -93133,12 +89868,12 @@ set_func_cmt(ea, cmt, repeatable) Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool Move function chunk end address. - set_func_end(ea, newend) -> bool - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success Help on function set_func_flags in module idc: @@ -93175,11 +89910,11 @@ set_hash_string(hash_id, key, value) Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t Change IDA status indicator value - set_ida_state(st) -> idastate_t - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status Help on function set_inf_attr in module idc: @@ -93202,12 +89937,11 @@ set_local_type(ordinal, input, flags) Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) Set manual instruction string. - set_manual_insn(ea, manual_insn) - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. nullptr - do nothing - (C++: const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -93275,14 +90009,14 @@ set_name(ea, name, flags=0) Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - set_processor_type(procname, level) -> bool - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success Help on function set_reg_value in module idc: @@ -93299,22 +90033,21 @@ set_reg_value(value, name) Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' - Set remote debugging options. Should be used before starting the - debugger. - set_remote_debugger(host, _pass, port=-1) - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - pass: char const * - @param port: If -1, the default port number will be used (C++: int) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' + set_root_filename(file) Set full path of the input file. - set_root_filename(file) - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -93403,57 +90136,57 @@ set_segment_bounds(ea, startea, endea, flags) Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - set_selector(selector, paragraph) -> int - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - @retval: 1 - ok - @retval: 0 - failure (bad selector or too many mappings) + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) - @param ea (C++: ea_t) - @param lnnum (C++: uval_t) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - set_step_trace_options(options) - @param options (C++: int) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range. - change_storage_type(start_ea, end_ea, stt) -> error_t - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment. - set_struc_cmt(id, cmt, repeatable) -> bool - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -93471,11 +90204,11 @@ set_struc_idx(sid, index) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool Set structure name. - set_struc_name(id, name) -> bool - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -93492,21 +90225,20 @@ set_tail_owner(tailea, funcea) Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool Set target assembler. - set_target_assembler(asmnum) -> bool - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool Change the description of the specified trace file. - set_trace_file_desc(filename, description) -> bool - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -93525,42 +90257,44 @@ split_sreg_range(ea, reg, value, tag=2) Help on function start_process in module ida_dbg: start_process(*args) -> 'int' - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - start_process(path=None, args=None, sdir=None) -> int - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - @retval: -1 - impossible to create the process - @retval: 0 - the starting of the process was cancelled by the user - @retval: 1 - the process was properly started + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -93577,38 +90311,39 @@ substr(s, x1, x2) Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - suspend_thread(tid) -> int - @param tid: thread id (C++: thid_t) - @retval: -1 - network error - @retval: 0 - failed - @retval: 1 - ok + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(only_loader_segs) -> bool Take a memory snapshot of the running process. - take_memory_snapshot(only_loader_segs) -> bool - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + @param only_loader_segs: (C++: bool) only is_loader_segm() segments will be affected + @return: success Help on function to_ea in module idc: @@ -93629,20 +90364,21 @@ toggle_bnot(ea, n) Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - toggle_sign(ea, n) -> bool - @param ea (C++: ea_t) - @param n (C++: int) + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) - ea: ea_t - what: int - str: char const * + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -93701,16 +90437,15 @@ value_is_string(var) Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: @@ -93751,3 +90486,15670 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + only 32/16bit functions can be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block (after a tail call) + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + empty ? function_mode : snippet mode + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + R-records. + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_IF_ENABLED in module ida_kernwin: + + add item only if it is enabled (prevents unusable, greyed-out items) + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom popup menu names. Used to replace labels for the standard + handlers (Insert, Delete, Edit, Refresh). + An empty name means that the default name will be used. + @note: Availability of items in the popup menu is determined by the `CH_CAN_...` + flags. + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_NOCHECK in module ida_name: + + Don't fail if the name contains invalid characters. If this bit is clear, all + invalid chars (those !is_ident_cp()) will be replaced by SUBSTCHAR List of valid + characters is defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v7.7. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/swig/bytes.i b/swig/bytes.i index 6658e38..cacf0b6 100644 --- a/swig/bytes.i +++ b/swig/bytes.i @@ -2,10 +2,9 @@ #include <bytes.hpp> %} +%apply (testf_t *func, void *ud) { (testf_t *testf, void *ud=nullptr) }; + // Unexported and kernel-only declarations -%ignore testf_t; -%ignore next_that; -%ignore prev_that; %ignore adjust_visea; %ignore visit_patched_bytes; %ignore is_first_visea; @@ -49,6 +48,8 @@ %template(compiled_binpat_vec_t) qvector<compiled_binpat_t>; +%apply size_t * OUTPUT { size_t *out_matched_idx }; // bin_search3 + // TODO: This could be fixed (if needed) %ignore set_dbgmem_source; @@ -118,12 +119,6 @@ __real__init__ = __init__ def __init__(self, *args): self.__real__init__(self, *args) # pass 'self' as part of args -#ifdef BC695 - if _BC695: - def __init__(self, name, value_size = 0, menu_name = None, hotkey = None, asm_keyword = None, props = 0): - args = (name, value_size, menu_name, hotkey, asm_keyword, props) - self.__real__init__(self, *args) # pass 'self' as part of args -#endif } } @@ -162,12 +157,6 @@ __real__init__ = __init__ def __init__(self, *args): self.__real__init__(self, *args) # pass 'self' as part of args -#ifdef BC695 - if _BC695: - def __init__(self, name, value_size = 0, menu_name = None, props = 0, hotkey = None, text_width = 0): - args = (name, value_size, menu_name, props, hotkey, text_width) - self.__real__init__(self, *args) # pass 'self' as part of args -#endif } } @@ -191,9 +180,6 @@ %clear(opinfo_t *); %rename (visit_patched_bytes) py_visit_patched_bytes; -%rename (next_that) py_next_that; -%rename (prev_that) py_prev_that; - %rename (get_bytes) py_get_bytes; %rename (get_bytes_and_mask) py_get_bytes_and_mask; %rename (get_strlit_contents) py_get_strlit_contents; diff --git a/swig/dirtree.i b/swig/dirtree.i index b290af2..8cd1385 100644 --- a/swig/dirtree.i +++ b/swig/dirtree.i @@ -8,4 +8,23 @@ %template(direntry_vec_t) qvector<direntry_t>; %template(dirtree_cursor_vec_t) qvector<dirtree_cursor_t>; +// +// compat +// +%ignore dirtree_get_nodename; +%ignore dirtree_set_nodename; + +%extend dirspec_t { + %pythoncode { + nodename = id + } +} + +%extend dirtree_t { + %pythoncode { + get_nodename = get_id + set_nodename = set_id + } +} + %include "dirtree.hpp" diff --git a/swig/funcs.i b/swig/funcs.i index 01ae82b..49570fb 100644 --- a/swig/funcs.i +++ b/swig/funcs.i @@ -79,7 +79,25 @@ %rename (__next__) next; -%define %make_python2_iterator(TYPE) +%define %def_simple_generator(TYPE, FUNC_NAME, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC) +%extend TYPE +{ + %pythoncode { + def FUNC_NAME(self): + """ + Provide an iterator on PYDOC + """ + ok = self.START_FUNC() + while ok: + yield self.OBJ_FUNC() + ok = self.NEXT_FUNC() + } +} +%enddef + +%define %def_simple_iterator_generator(TYPE, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC) +%def_simple_generator(TYPE, __iter__, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC); +// KLUDGE: Keep the 'next' attribute available %extend TYPE { %pythoncode { @@ -87,9 +105,49 @@ } } %enddef -%make_python2_iterator(func_tail_iterator_t); -%make_python2_iterator(func_item_iterator_t); -%make_python2_iterator(func_parent_iterator_t); +%def_simple_iterator_generator(func_tail_iterator_t, main, next, chunk, function tails); +%def_simple_iterator_generator(func_item_iterator_t, first, next_code, current, code items); +%def_simple_iterator_generator(func_parent_iterator_t, first, next, parent, function parents); + +%define %def_simple_func_item_iterator_t_generator(FUNC_NAME, NEXT_NAME, PYDOC) +%def_simple_generator(func_item_iterator_t, FUNC_NAME, first, NEXT_NAME, current, PYDOC); +%enddef +%def_simple_func_item_iterator_t_generator(addresses, next_addr, addresses contained within the function); +%def_simple_func_item_iterator_t_generator(code_items, next_code, code items contained within the function); +%def_simple_func_item_iterator_t_generator(data_items, next_data, data items contained within the function); +%def_simple_func_item_iterator_t_generator(head_items, next_head, item heads contained within the function); +%def_simple_func_item_iterator_t_generator(not_tails, next_not_tail, non-tail addresses contained within the function); + +#ifdef PY3 +%define %alias_func_item_iterator(PROP_NAME) +%extend func_t +{ + %pythoncode { + def PROP_NAME(self): + """ + Alias for func_item_iterator_t(self).PROP_NAME() + """ + yield from func_item_iterator_t(self).PROP_NAME() + } +} +%enddef +%alias_func_item_iterator(addresses); +%alias_func_item_iterator(code_items); +%alias_func_item_iterator(data_items); +%alias_func_item_iterator(head_items); +%alias_func_item_iterator(not_tails); +#endif + +%extend func_t +{ + %pythoncode { + def __iter__(self): + """ + Alias for func_item_iterator_t(self).__iter__() + """ + return func_item_iterator_t(self).__iter__() + } +} //<typemaps(funcs)> //</typemaps(funcs)> diff --git a/swig/hexrays.i b/swig/hexrays.i index 9c9704b..501b3eb 100644 --- a/swig/hexrays.i +++ b/swig/hexrays.i @@ -484,77 +484,89 @@ public: }; %enddef -#define ___MEMBER_REF_BASE__ACCESSORS(Type, PName, Setexpr) \ - Type _get_##PName() const { return self->##PName; } \ - void _set_##PName(Type _v) { self->##PName = Setexpr; } +%define %define_node_property_accessors(TNAME, PNAME, PTYPE) + %extend TNAME { + PTYPE _get_##PNAME() const { return $self->PNAME; } + void _set_##PNAME(PTYPE _v) { $self->PNAME = _v; } + } +%enddef -#define ___MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval, Acquire) \ - %pythoncode { \ - PName = property( \ - lambda self: self._get_##PName() if Cond else Defval, \ - lambda self, v: \ - self._ensure_cond(Cond, #Cond) \ - and self._ensure_no_obj(self._get_##PName(), #PName, Acquire) \ - and self._acquire_ownership(v, Acquire) \ - and self._set_##PName(v)) \ +%define %define_node_cstring_property_accessors(TNAME, PNAME) + %extend TNAME { + const char *_get_##PNAME() const { return $self->PNAME; } + void _set_##PNAME(const char *_v) + { + if ( $self->PNAME != NULL ) + { + ::qfree($self->PNAME); + $self->PNAME = NULL; } + $self->PNAME = ::qstrdup(_v); + } + } +%enddef -//------------------------------------------------------------------------- -#define ___MEMBER_REF_BASE(Type, PName, Cond, Defval, Acquire, Setexpr) \ - ___MEMBER_REF_BASE__ACCESSORS(Type, PName, Setexpr) \ - ___MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval, Acquire) +%define %define_node_obj_property(TNAME, COND, PNAME, DEFVAL, ACQUIRE) + %extend TNAME { + %pythoncode { + PNAME = property( + lambda self: self._get_##PNAME() if COND else DEFVAL, + lambda self, v: self._ensure_cond(COND, #COND) \ + and self._ensure_no_obj(self._get_##PNAME(), #PNAME, ACQUIRE) \ + and self._acquire_ownership(v, ACQUIRE) \ + and self._set_##PNAME(v)) + } + } +%enddef -//------------------------------------------------------------------------- -#define ___SCALAR_MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval) \ - %pythoncode { \ - PName = property( \ - lambda self: self._get_##PName() if Cond else Defval, \ - lambda self, v: \ - self._ensure_cond(Cond, #Cond) \ - and self._set_##PName(v)) \ - } +%define %define_node_scalar_property(TNAME, COND, PNAME, DEFVAL) + %extend TNAME { + %pythoncode { + PNAME = property( + lambda self: self._get_##PNAME() if COND else DEFVAL, + lambda self, v: self._ensure_cond(COND, #COND) and self._set_##PNAME(v)) + } + } +%enddef + +// ------------------------------ + +%define %override_node_obj_property(TNAME, COND, PNAME, PTYPE, DEFVAL, ACQUIRE) + %define_node_property_accessors(TNAME, PNAME, PTYPE); + %define_node_obj_property(TNAME, COND, PNAME, DEFVAL, ACQUIRE); + %ignore TNAME::PNAME; +%enddef + +%define %override_node_scalar_property(TNAME, COND, PNAME, PTYPE, DEFVAL) + %define_node_property_accessors(TNAME, PNAME, PTYPE); + %define_node_scalar_property(TNAME, COND, PNAME, DEFVAL); + %ignore TNAME::PNAME; +%enddef + +%define %override_node_cstring_property(TNAME, COND, PNAME) + %define_node_cstring_property_accessors(TNAME, PNAME); + %define_node_obj_property(TNAME, COND, PNAME, None, False); + %ignore TNAME::PNAME; +%enddef //------------------------------------------------------------------------- // mop_t //------------------------------------------------------------------------- -#define MOP_MEMBER_REF(Type, PName, Mopt) \ - ___MEMBER_REF_BASE(Type, PName, self.t == Mopt, None, True, _v) -#define MOP_SCALAR_MEMBER_REF(Type, PName, Mopt) \ - ___MEMBER_REF_BASE__ACCESSORS(Type, PName, _v) \ - ___SCALAR_MEMBER_REF_BASE__PROPERTY(PName, self.t == Mopt, None) +%define %override_mop_t_obj_property(MOP_OP, PNAME, PTYPE) + %override_node_obj_property(mop_t, self.t == MOP_OP, PNAME, PTYPE, None, True); +%enddef -#define MOP_CSTRING_MEMBER_REF(PName, Mopt) \ - const char *_get_##PName() const { return self->PName; } \ - void _set_##PName(const char *_v) \ - { \ - if ( $self->PName != NULL ) \ - { \ - ::qfree($self->PName); \ - $self->PName = NULL; \ - } \ - $self->PName = ::qstrdup(_v); \ - } \ - ___MEMBER_REF_BASE__PROPERTY(PName, self.t == Mopt, None, False) +%define %override_mop_t_scalar_property(MOP_OP, PNAME, PTYPE) + %override_node_scalar_property(mop_t, self.t == MOP_OP, PNAME, PTYPE, None); +%enddef +%define %override_mop_t_cstring_property(MOP_OP, PNAME) + %override_node_cstring_property(mop_t, self.t == MOP_OP, PNAME); +%enddef %extend mop_t { - MOP_SCALAR_MEMBER_REF(mreg_t, r, mop_r); - MOP_MEMBER_REF(mnumber_t*, nnn, mop_n); - MOP_CSTRING_MEMBER_REF(cstr, mop_str); - MOP_MEMBER_REF(minsn_t*, d, mop_d) - MOP_MEMBER_REF(stkvar_ref_t*, s, mop_S); - MOP_SCALAR_MEMBER_REF(ea_t, g, mop_v); - MOP_SCALAR_MEMBER_REF(int, b, mop_b); - MOP_MEMBER_REF(mcallinfo_t*, f, mop_f); - MOP_MEMBER_REF(lvar_ref_t*, l, mop_l); - MOP_MEMBER_REF(mop_addr_t*, a, mop_a); - MOP_CSTRING_MEMBER_REF(helper, mop_h); - MOP_MEMBER_REF(mcases_t*, c, mop_c); - MOP_MEMBER_REF(fnumber_t*, fpc, mop_fn); - MOP_MEMBER_REF(mop_pair_t*, pair, mop_p); - MOP_MEMBER_REF(scif_t*, scif, mop_sc); mopt_t _get_t() const { return self->t; } void _set_t(mopt_t v) { self->t = v; } @@ -575,9 +587,26 @@ public: return s; } } -#undef MOP_MEMBER_REF + %monitored_lifecycle_object_t(mop_t); +%override_mop_t_obj_property(mop_n, nnn, mnumber_t *); +%override_mop_t_obj_property(mop_d, d, minsn_t *); +%override_mop_t_obj_property(mop_S, s, stkvar_ref_t *); +%override_mop_t_obj_property(mop_f, f, mcallinfo_t *); +%override_mop_t_obj_property(mop_l, l, lvar_ref_t *); +%override_mop_t_obj_property(mop_a, a, mop_addr_t *); +%override_mop_t_obj_property(mop_c, c, mcases_t *); +%override_mop_t_obj_property(mop_fn, fpc, fnumber_t *); +%override_mop_t_obj_property(mop_p, pair, mop_pair_t *); +%override_mop_t_obj_property(mop_sc, scif, scif_t *); +%override_mop_t_obj_property(mop_sc, scif, scif_t *); +%override_mop_t_scalar_property(mop_r, r, mreg_t); +%override_mop_t_scalar_property(mop_v, g, ea_t); +%override_mop_t_scalar_property(mop_b, b, int); +%override_mop_t_cstring_property(mop_str, cstr); +%override_mop_t_cstring_property(mop_h, helper); + //------------------------------------------------------------------------- // minsn_t //------------------------------------------------------------------------- @@ -623,10 +652,6 @@ public: } }; -//------------------------------------------------------------------------- -// Have SWiG generate constructors/destructors for the bitset_t::iterator -%feature("flatnested") bitset_t::iterator; - //------------------------------------------------------------------------- // //------------------------------------------------------------------------- @@ -679,22 +704,8 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } //--------------------------------------------------------------------- // cinsn_t //--------------------------------------------------------------------- -#define CINSN_MEMBER_REF(Name) \ - ___MEMBER_REF_BASE(c##Name##_t*, c##Name, self.op == cit_##Name, None, True, _v) - %define_hexrays_lifecycle_object(cinsn_t); %extend cinsn_t { - CINSN_MEMBER_REF(block); - CINSN_MEMBER_REF(expr); - CINSN_MEMBER_REF(if); - CINSN_MEMBER_REF(for); - CINSN_MEMBER_REF(while); - CINSN_MEMBER_REF(do); - CINSN_MEMBER_REF(switch); - CINSN_MEMBER_REF(return); - CINSN_MEMBER_REF(goto); - CINSN_MEMBER_REF(asm); - static bool insn_is_epilog(const cinsn_t *insn) { return insn == INS_EPILOG; } %pythoncode { @@ -702,38 +713,58 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } return cinsn_t.insn_is_epilog(self) } }; -#undef CINSN_MEMBER_REF + + +%define %override_cinsn_t_obj_property(CIT_OP, PNAME, PTYPE) + %override_node_obj_property(cinsn_t, self.op == CIT_OP, PNAME, PTYPE, None, True); +%enddef +%override_cinsn_t_obj_property(cit_block, cblock, cblock_t *); +%override_cinsn_t_obj_property(cit_expr, cexpr, cexpr_t *); +%override_cinsn_t_obj_property(cit_if, cif, cif_t *); +%override_cinsn_t_obj_property(cit_for, cfor, cfor_t *); +%override_cinsn_t_obj_property(cit_while, cwhile, cwhile_t *); +%override_cinsn_t_obj_property(cit_do, cdo, cdo_t *); +%override_cinsn_t_obj_property(cit_switch, cswitch, cswitch_t *); +%override_cinsn_t_obj_property(cit_return, creturn, creturn_t *); +%override_cinsn_t_obj_property(cit_goto, cgoto, cgoto_t *); +%override_cinsn_t_obj_property(cit_asm, casm, casm_t *); //------------------------------------------------------------------------- // cexpr_t //------------------------------------------------------------------------- -#define CEXPR_MEMBER_REF(Type, PName, Cond, Defval, Acquire) \ - ___MEMBER_REF_BASE(Type, PName, Cond, Defval, Acquire, _v) - -#define CEXPR_MEMBER_REF_STR(Type, PName, Cond, Defval) \ - ___MEMBER_REF_BASE(Type, PName, Cond, Defval, False, ::qstrdup(_v)) - %define_hexrays_lifecycle_object(cexpr_t); %extend cexpr_t { - CEXPR_MEMBER_REF(cnumber_t*, n, self.op == cot_num, None, True); - CEXPR_MEMBER_REF(fnumber_t*, fpc, self.op == cot_fnum, None, True); var_ref_t* get_v() { if ( self->op == cot_var ) { return &self->v; } else { return NULL; } } void set_v(const var_ref_t *v) { if ( self->op == cot_var ) { self->v = *v; } } %pythoncode { v = property(lambda self: self.get_v(), lambda self, v: self.set_v(v)) } - CEXPR_MEMBER_REF(ea_t, obj_ea, self.op == cot_obj, ida_idaapi.BADADDR, False); - CEXPR_MEMBER_REF(int, refwidth, True, 0, False); - CEXPR_MEMBER_REF(cexpr_t*, x, op_uses_x(self.op), None, True); - CEXPR_MEMBER_REF(cexpr_t*, y, op_uses_y(self.op), None, True); - CEXPR_MEMBER_REF(carglist_t*, a, self.op == cot_call, None, True); - CEXPR_MEMBER_REF(int, m, (self.op == cot_memptr or self.op == cot_memref), 0, False); - CEXPR_MEMBER_REF(cexpr_t*, z, op_uses_z(self.op), None, True); - CEXPR_MEMBER_REF(int, ptrsize, (self.op == cot_ptr or self.op == cot_memptr), 0, False); - CEXPR_MEMBER_REF(cinsn_t*, insn, self.op == cot_insn, None, True); - CEXPR_MEMBER_REF_STR(char*, helper, self.op == cot_helper, None); - CEXPR_MEMBER_REF_STR(char*, string, self.op == cot_str, None); }; +%ignore cexpr_t::v; + +%define %override_cexpr_t_obj_property(COND, PNAME, PTYPE, DEFVAL, ACQUIRE) + %override_node_obj_property(cexpr_t, COND, PNAME, PTYPE, DEFVAL, ACQUIRE); +%enddef +%define %override_cexpr_t_scalar_property(COND, PNAME, PTYPE, DEFVAL) + %override_node_scalar_property(cexpr_t, COND, PNAME, PTYPE, DEFVAL); +%enddef +%define %override_cexpr_t_cstring_property(COND, PNAME) + %override_node_cstring_property(cexpr_t, COND, PNAME); +%enddef + +%override_cexpr_t_obj_property(self.op == cot_num, n, cnumber_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_fnum, fpc, fnumber_t *, None, True); +%override_cexpr_t_obj_property(op_uses_x(self.op), x, cexpr_t *, None, True); +%override_cexpr_t_obj_property(op_uses_y(self.op), y, cexpr_t *, None, True); +%override_cexpr_t_obj_property(op_uses_z(self.op), z, cexpr_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_call, a, carglist_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_insn, insn, cinsn_t *, None, True); +%override_cexpr_t_scalar_property(self.op == cot_memptr or self.op == cot_memref, m, int, 0); +%override_cexpr_t_scalar_property(self.op == cot_ptr or self.op == cot_memptr, ptrsize, int, 0); +%override_cexpr_t_scalar_property(self.op == cot_obj, obj_ea, ea_t, ida_idaapi.BADADDR); +%override_cexpr_t_scalar_property(True, refwidth, int, 0); +%override_cexpr_t_cstring_property(self.op == cot_helper, helper); +%override_cexpr_t_cstring_property(self.op == cot_str, string); %feature("pythonprepend") cexpr_t::cexpr_t %{ for arg in args[1:]: # skip copy constructor's arg @@ -746,9 +777,6 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } self._acquire_ownership(arg, True) %} -#undef CEXPR_MEMBER_REF_STR -#undef CEXPR_MEMBER_REF - //------------------------------------------------------------------------- // ctree_item_t //------------------------------------------------------------------------- @@ -798,6 +826,8 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } treeloc_t *loc const; }; +%ignore ctree_item_t::loc; + %{ treeloc_t *ctree_item_t_loc_get(ctree_item_t *item) { return item->citype == VDI_TAIL ? &item->loc : NULL; } %} @@ -889,42 +919,9 @@ inline const ReturnType &py_ ## NameBase ## _second(NameBase ## _iterator_t p) { %template(history_t) qstack<history_item_t>; typedef int iterator_word; -/* no support for nested classes in swig means we need to wrap - this iterator and do some magic... +%qlist_template(cinsn_list_t, cinsn_t); - to use it, call qlist< cinsn_t >::begin() which will return the - proper iterator type which can then be used to get the current item. -*/ -%{ -typedef qlist<cinsn_t>::iterator qlist_cinsn_t_iterator; -%} -class qlist_cinsn_t_iterator {}; -%extend qlist_cinsn_t_iterator { - const cinsn_t &cur { return *(*self); } - void __next__(void) { (*self)++; } - bool operator==(const qlist_cinsn_t_iterator *x) const { return &(self->operator*()) == &(x->operator*()); } - bool operator!=(const qlist_cinsn_t_iterator *x) const { return &(self->operator*()) != &(x->operator*()); } - %pythoncode { - next = __next__ - } -}; - -%extend qlist<cinsn_t> { - qlist_cinsn_t_iterator begin() { return self->begin(); } - qlist_cinsn_t_iterator end(void) { return self->end(); } - qlist_cinsn_t_iterator insert(qlist_cinsn_t_iterator p, const cinsn_t& x) { return self->insert(p, x); } - void erase(qlist_cinsn_t_iterator p) { self->erase(p); } -}; -%ignore qlist< cinsn_t >::insert(); -%ignore qlist< cinsn_t >::erase(); -%ignore qlist< cinsn_t >::begin(); -%ignore qlist< cinsn_t >::begin() const; -%ignore qlist< cinsn_t >::end(); -%ignore qlist< cinsn_t >::end() const; - -//%template(qvector_meminfo_t) qvector<meminfo_t>; %template(qvector_lvar_t) qvector<lvar_t>; -%template(qlist_cinsn_t) qlist<cinsn_t>; %template(qvector_carg_t) qvector<carg_t>; %template(qvector_ccase_t) qvector<ccase_t>; %template(lvar_saved_infos_t) qvector<lvar_saved_info_t>; diff --git a/swig/ida.i b/swig/ida.i index 4a7fd9f..23b19f9 100644 --- a/swig/ida.i +++ b/swig/ida.i @@ -40,21 +40,12 @@ return buf; } -#ifdef BC695 - // Compat 6.95; since inf is a cvar, I can't just add properties to it.. - ea_t get_minEA() const { return $self->min_ea; } - void set_minEA(ea_t ea) { $self->min_ea = ea; } - ea_t get_maxEA() const { return $self->max_ea; } - void set_maxEA(ea_t ea) { $self->max_ea = ea; } - qstring get_procName() const { return $self->procname; } -#endif - %pythoncode { abiname = property(get_abiname) -#ifdef BC695 - minEA = property(get_minEA, set_minEA) - maxEA = property(get_maxEA, set_maxEA) - procName = property(get_procName) +#ifdef MISSED_BC695 + minEA = ida_idaapi._make_missed_695bwcompat_property("minEA", "min_ea", has_setter=True) + maxEA = ida_idaapi._make_missed_695bwcompat_property("maxEA", "max_ea", has_setter=True) + procName = ida_idaapi._make_missed_695bwcompat_property("procName", "procname", has_setter=False) #endif } } diff --git a/swig/idp.i b/swig/idp.i index 98c096a..6dd09f4 100644 --- a/swig/idp.i +++ b/swig/idp.i @@ -5,6 +5,7 @@ #include <auto.hpp> #include <fixup.hpp> #include <tryblks.hpp> +#include <idacfg.hpp> struct undo_records_t; %} @@ -33,6 +34,9 @@ struct undo_records_t; %ignore cfgopt_t; %ignore cfgopt_t__apply; %ignore cfgopt_t__apply2; +%ignore cfgopt_t__apply3; +%ignore cfgopt_set_t; +%ignore cfgopt_set_vec_t; %ignore parse_config_value; %define_Hooks_class(IDP); @@ -59,6 +63,7 @@ struct undo_records_t; %ignore plugmod_t; %ignore get_hexdsp; %ignore set_hexdsp; +%ignore remove_event_listener; // @arnaud %ignore notify__calc_next_eas; @@ -113,6 +118,7 @@ struct undo_records_t; %include "idp.hpp" %include "config.hpp" +%include "idacfg.hpp" #ifndef SWIGIMPORTED // see above // prevent tinfo_t * check in some functions (e.g., '_wrap_IDP_Hooks_ev_adjust_argloc') diff --git a/swig/ieee.i b/swig/ieee.i index fc02337..ac683bd 100644 --- a/swig/ieee.i +++ b/swig/ieee.i @@ -110,7 +110,9 @@ void _set_10bytes(const bytevec10_t &in) { - memmove($self->w, (const void *) in.begin(), sizeof($self->w)); + CASSERT(sizeof($self) == 10); + memmove($self->w, (const void *) in.begin(), in.size()); // guaranteed to be 10 bytes long, thanks to %typemap(check) (const bytevec10_t) + $self->w[FPVAL_NWORDS-1] = 0; } // yes, it's called '_get_float', but we return a 'double' because diff --git a/swig/kernwin.i b/swig/kernwin.i index 6b62961..fc74dee 100644 --- a/swig/kernwin.i +++ b/swig/kernwin.i @@ -78,6 +78,7 @@ struct dirspec_t; %define_Hooks_class(UI); +%ignore ida_checkmem; %ignore vnomem; %ignore vmsg; %ignore show_wait_box_v; @@ -199,6 +200,40 @@ struct dirspec_t; %ignore msg_get_lines; %rename (msg_get_lines) py_msg_get_lines; +%extend input_event_t { + + size_t _source_as_size() const { return size_t($self->source); } + size_t _target_as_size() const { return size_t($self->target); } + + %pythoncode { + def get_source_QEvent(self): + ptr = self._source_as_size(); + if ptr: + from PyQt5 import sip + if self.kind in [iek_key_press, iek_key_release]: + from PyQt5.QtGui import QInputEvent + return sip.wrapinstance(ptr, QInputEvent) + elif self.kind in [ + iek_mouse_button_press, + iek_mouse_button_release]: + from PyQt5.QtGui import QMouseEvent + return sip.wrapinstance(ptr, QMouseEvent) + elif self.kind == iek_mouse_wheel: + from PyQt5.QtGui import QWheelEvent + return sip.wrapinstance(ptr, QWheelEvent) + else: + from PyQt5.QtCore import QEvent + return sip.wrapinstance(ptr, QEvent) + + def get_target_QWidget(self): + ptr = self._target_as_size() + if ptr: + from PyQt5 import sip + from PyQt5.QtWidgets import QWidget, QAbstractScrollArea + return sip.wrapinstance(ptr, QWidget) + } +} + %feature("director") UI_Hooks; //------------------------------------------------------------------------- @@ -376,18 +411,12 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %extend action_ctx_base_t { -#ifdef BC695 - TWidget *_get_form() const { return $self->widget; } - twidget_type_t _get_form_type() const { return $self->widget_type; } - qstring _get_form_title() const { return $self->widget_title; } -#endif - %pythoncode { cur_extracted_ea = cur_value -#ifdef BC695 - form = property(_get_form) - form_type = property(_get_form_type) - form_title = property(_get_form_title) +#ifdef MISSED_BC695 + form = ida_idaapi._make_missed_695bwcompat_property("form", "widget", has_setter=False) + form_type = ida_idaapi._make_missed_695bwcompat_property("form_type", "widget_type", has_setter=False) + form_title = ida_idaapi._make_missed_695bwcompat_property("form_title", "widget_title", has_setter=False) #endif } } diff --git a/swig/lumina.i b/swig/lumina.i index 13fbd3b..1947b26 100644 --- a/swig/lumina.i +++ b/swig/lumina.i @@ -68,10 +68,6 @@ %rpc_packet_data_t(pkt_push_md_result_t, PKT_PUSH_MD_RESULT); %rpc_packet_data_t(pkt_get_pop_t, PKT_GET_POP); %rpc_packet_data_t(pkt_get_pop_result_t, PKT_GET_POP_RESULT); -%rpc_packet_data_t(pkt_dump_md_t, PKT_DUMP_MD); -%rpc_packet_data_t(pkt_dump_md_result_t, PKT_DUMP_MD_RESULT); -%rpc_packet_data_t(pkt_clean_db_t, PKT_CLEAN_DB); -%rpc_packet_data_t(pkt_debugctl_t, PKT_DEBUGCTL); %template(lumina_op_res_vec_t) qvector<lumina_op_res_t>; diff --git a/swig/pro.i b/swig/pro.i index 4aaf9c1..599be6d 100644 --- a/swig/pro.i +++ b/swig/pro.i @@ -53,6 +53,8 @@ %rename (BADDIFF) _BADDIFF; %constant diffpos_t _BADDIFF = diffpos_t(-1); +%ignore SSF_DROP_EMPTY; + //<typemaps(pro)> //</typemaps(pro)> diff --git a/swig/struct.i b/swig/struct.i index 82706b8..c150f0f 100644 --- a/swig/struct.i +++ b/swig/struct.i @@ -10,6 +10,8 @@ %ignore get_innermost_member; %rename (get_innermost_member) py_get_innermost_member; +%ignore MF_RESERVED1; + //------------------------------------------------------------------------- // For 'get_member_by_id()' %typemap(in,numinputs=0) qstring *out_mname (qstring temp) { diff --git a/swig/typeinf.i b/swig/typeinf.i index f96a044..f3a9471 100644 --- a/swig/typeinf.i +++ b/swig/typeinf.i @@ -228,13 +228,13 @@ %ignore tinfo_t::~tinfo_t(void); %template(funcargvec_t) qvector<funcarg_t>; -%template(udtmembervec_t) qvector<udt_member_t>; %template(reginfovec_t) qvector<reg_info_t>; %template(enum_member_vec_t) qvector<enum_member_t>; %template(argpartvec_t) qvector<argpart_t>; %uncomparable_elements_qvector(valstr_t, valstrvec_t); %uncomparable_elements_qvector(regobj_t, regobjvec_t); %uncomparable_elements_qvector(type_attr_t, type_attrs_t); +%template(udtmembervec_template_t) qvector<udt_member_t>; %extend tinfo_t { PyObject *get_attr(const qstring &key, bool all_attrs=true) diff --git a/swig/ua.i b/swig/ua.i index 0da3714..116b131 100644 --- a/swig/ua.i +++ b/swig/ua.i @@ -78,10 +78,6 @@ %pythoncode { ops = property(__get_ops__) -#ifdef BC695 - if _BC695: - Operands = ops -#endif Op1 = property(lambda self: self.__get_operand__(0)) Op2 = property(lambda self: self.__get_operand__(1)) Op3 = property(lambda self: self.__get_operand__(2)) diff --git a/swig/xref.i b/swig/xref.i index c034baf..fd28afd 100644 --- a/swig/xref.i +++ b/swig/xref.i @@ -19,6 +19,59 @@ // 'from' is a reserved Python keyword %rename (frm) from; + +%define %def_simple_generator(FUNC_NAME, START_FUNC, NEXT_FUNC, PYDOC) +%extend xrefblk_t +{ + %pythoncode { + def FUNC_NAME(self, ea): + """ + Provide an iterator on PYDOC + """ + ref = START_FUNC(ea) + while ref != ida_idaapi.BADADDR: + yield ref + ref = NEXT_FUNC(ea, ref) + } +} +%enddef + +%def_simple_generator(crefs_to, get_first_cref_to, get_next_cref_to, code references to ea including flow references); +%def_simple_generator(fcrefs_to, get_first_fcref_to, get_next_fcref_to, code references to ea); +%def_simple_generator(crefs_from, get_first_cref_from, get_next_cref_from, code references from ea including flow references); +%def_simple_generator(fcrefs_from, get_first_fcref_from, get_next_fcref_from, code references from ea); +%def_simple_generator(drefs_to, get_first_dref_to, get_next_dref_to, data references to ea); +%def_simple_generator(drefs_from, get_first_dref_from, get_next_dref_from, data references from ea); + + +%define %def_generic_generator(FUNC_NAME, START_FUNC, NEXT_FUNC, PYDOC) +%extend xrefblk_t +{ + %pythoncode { + def FUNC_NAME(self, ea, flag): + """ + Provide an iterator on PYDOC + """ + def _copy_xref(): + """ Make a private copy of the xref class to preserve its contents """ + class _xref(object): + pass + + xr = _xref() + for attr in [ 'frm', 'to', 'iscode', 'type', 'user' ]: + setattr(xr, attr, getattr(self, attr)) + return xr + + if self.START_FUNC(ea, flag): + yield _copy_xref() + while self.NEXT_FUNC(): + yield _copy_xref() + } +} +%enddef +%def_generic_generator(refs_from, first_from, next_from, from reference represented by flag ); +%def_generic_generator(refs_to, first_to, next_to, to reference represented by flag ); + %inline %{ //<inline(py_xref)> //</inline(py_xref)> diff --git a/tools/chkapi.py b/tools/chkapi.py index b574532..90ac3ba 100644 --- a/tools/chkapi.py +++ b/tools/chkapi.py @@ -386,6 +386,7 @@ def check_python(args): "simpleline_place_t" : { "mustinherit" : "place_t" }, "structplace_t" : { "mustinherit" : "place_t" }, "textctrl_info_t" : { "mustinherit" : "ida_idaapi.py_clinked_object_t" }, + "udtmembervec_t" : { "mustinherit" : "udtmembervec_template_t" }, "udt_type_data_t" : { "mustinherit" : "udtmembervec_t" }, "call_stack_t" : { "mustinherit" : "call_stack_info_vec_t" }, "abstract_graph_t" : { "mustinherit" : "ida_gdl.gdl_graph_t" }, @@ -399,7 +400,7 @@ def check_python(args): "DecompilationFailure" : { "mustinherit" : "Exception" }, "carg_t" : { "mustinherit" : "cexpr_t" }, "carglist_t" : { "mustinherit" : "qvector_carg_t" }, - "cblock_t" : { "mustinherit" : "qlist_cinsn_t" }, + "cblock_t" : { "mustinherit" : "cinsn_list_t" }, "ccase_t" : { "mustinherit" : "cinsn_t" }, "ccases_t" : { "mustinherit" : "qvector_ccase_t" }, "cdo_t" : { "mustinherit" : "cloop_t" }, diff --git a/tools/collect_traces.py b/tools/collect_traces.py new file mode 100755 index 0000000..3e7abad --- /dev/null +++ b/tools/collect_traces.py @@ -0,0 +1,325 @@ +#!/usr/bin/python3 + +# A tool to merge all the /tmp files produced by +# t2/phases/tests/trace_idapython_calls_idapythonrc.py, +# into a persisted file (in P4, not in /tmp) +# that can be read to improve the IDAPython documentation. + +import sys +import os +import tempfile +import ast + +tools_dir = os.path.dirname(__file__) +output_file = os.path.join(tools_dir, "collected_traces.txt") +input_files = "trace_idapython_calls_output.txt" # on each test directory + +stats_tests_added = 0 +stats_funcs_added = 0 +stats_lines_added = 0 + +#------------------------------------------------------------------------ +def load_existing(pathname): + if not os.path.exists(pathname): + return {} + + with open(pathname, "r") as f: + collected = ast.literal_eval(f.read()) + + # turn lists into sets for easier merging + + for key in collected: + if key == "#empty": + empty_data = collected[key] + for fun in empty_data: + empty_data[fun] = matcher_t(empty_data[fun]) + else: + fun_data = collected[key] + fun_data["return"] = matcher_t(fun_data["return"]) + fun_data["tests"] = set(fun_data["tests"]) + + return collected + +#------------------------------------------------------------------------ +def load_from_test(collected_data, test_name, pathname): + global stats_tests_added, stats_funcs_added, stats_lines_added + + with open(pathname, "r") as f: + content = ast.literal_eval(f.read()) + + if "#empty" in collected_data: + common = collected_data["#empty"] + else: + stats_tests_added += 1 + collected_data["#empty"] = common = {} + + for key in content: + # ida_* modules only + prefix = "ida_" + if not key.startswith(prefix): + continue + fun = key[len(prefix):] + + # presently we remove all dictionary content except for return values; + # we'll see in the future if we use the rest of info, + # or if we don't use a dictionary at all in the idapythonrc + # note: return values in /tmp traces were collected as repr() + content_rets = [ast.literal_eval(x["return"]) for x in content[key]] + + if test_name == "empty": + # entry with a special format + if fun not in common: + common[fun] = matcher_t(content_rets) + stats_funcs_added += 1 + stats_lines_added += common[fun].count() + continue + + for line in content_rets: + if fun in common: + if common[fun].add(line): + stats_lines_added += 1 + continue + + if fun in collected_data: + fun_data = collected_data[fun] + rets = fun_data["return"] + tests = fun_data["tests"] + else: + stats_funcs_added += 1 + rets = matcher_t() + tests = set() + fun_data = { "return":rets, "tests":tests } + collected_data[fun] = fun_data + + if test_name not in tests: + stats_tests_added += 1 + tests.add(test_name) + + if rets.add(line): + stats_lines_added += 1 + +#------------------------------------------------------------------------ +# Stores different return values of functions collected at runtime, +# and simplifies repetitions like [str, str, str] into a pattern [str, ...] + +class matcher_t: + def __init__(self, initial_content=[]): + self.patterns = [] + + for value in initial_content: + self.add(value) + + def add(self, value): + if any(pat.match(value) for pat in self.patterns): + return False # another instance of what we already have + + # something new + self.patterns.append(pattern_t(value)) + return True + + def count(self): + return len(self.patterns) + + def sorted(self): + return sorted(repr(pat) for pat in self.patterns) + +#------------------------------------------------------------------------ +class pattern_t: + def __init__(self, value): + self.expr = self._build(value) + + def _build(self, value): + if isinstance(value, list) and len(value) > 0: + # recognize a special form of lists as a repetition_t object + # that we stored (via repetition_t.__repr__) in a previous run + # (saved into, and now reloaded from, the "tools/collected_traces.txt" file) + if len(value) == 2 and value[1] == "...": + return repetition_t(value[0]) + + first = value[0] + if all(x == first for x in value[1:]): + return repetition_t(first) + + # heterogeneous list - treated as separate values + return value + + if isinstance(value, tuple): + build = [] + for x in value: + build.append(self._build(x)) + return tuple(build) + + return value + + def match(self, value): + # "match" may update the pattern when receiving new values: + # replace the pattern if it was converted into a repetition + + m = self._match(self.expr, value) + if isinstance(m, bool): + return m + + self.expr = m + return True + + def _match(self, pat, val): + if isinstance(pat, tuple) and isinstance(val, tuple): + if len(pat) != len(val): + return False + + return self._maybe_replace_parts(pat, val) + + if pat == [] and isinstance(val, list) and len(val) > 0: + # convert [] into a repetition (we didn't before, + # because with an empty list we couldn't know WHAT was repeated) + return repetition_t(val[0]) + + if isinstance(pat, repetition_t): + return pat.match(val) + + return pat == val + + def _maybe_replace_parts(self, pat_tuple, val_tuple): + ret = [] + + all_bool = True + for p, v in zip(pat_tuple, val_tuple): + m = self._match(p, v) + + if isinstance(m, bool): + if not m: + return False + # keep the previous part + ret.append(p) + else: + # new part + ret.append(m) + all_bool = False + if all_bool: + return True # good match but no replacements + + return tuple(ret) + + def __repr__(self): + return repr(self.expr) + +#------------------------------------------------------------------------ +class repetition_t: + def __init__(self, core): + self.core = pattern_t(core) + + def match(self, value): + if not isinstance(value, list): + return False + + return all(self.core.match(item) for item in value) + + def __repr__(self): + return "[" + repr(self.core) + ", '...']" + +#------------------------------------------------------------------------ +def dump_data(collected_data): + content = "{\n" + + for fun_name in sorted(collected_data): + content += " \"{}\": {{\n".format(fun_name) + + fun_data = collected_data[fun_name] + if fun_name == "#empty": + # "empty test" entry, different format that the rest + + for fun_in_empty in fun_data: + content += " \"{}\": [\n".format(fun_in_empty) + + for line in fun_data[fun_in_empty].sorted(): + content += " {},\n".format(line) # return values + content += " ],\n" + else: + # data per function + + rets = fun_data["return"] + tests = fun_data["tests"] + + content += " \"return\": [\n" + for line in rets.sorted(): + content += " {},\n".format(line) + content += " ],\n" + + content += " \"tests\": [\n" + for test_name in sorted(tests): + content += " \"{}\",\n".format(test_name) + content += " ]\n" + + content += " },\n" + content += "}\n" + + return content + +#------------------------------------------------------------------------ +def test_dir(): + username = os.path.basename(os.path.expanduser("~")) + # or more reliably: + # import getpass + # username = getpass.getuser() + # but the above works nearly always, with one less dependency + + return "/tmp/{}/uitests".format(username) + +#------------------------------------------------------------------------ +def all_test_trace_files(): + testdir = test_dir() + emptydir = os.path.join(testdir, "empty") + + if os.path.isdir(emptydir): + test_output = os.path.join(emptydir, input_files) + if os.path.exists(test_output): + yield "empty", test_output # process the "empty" test first + + for entry in os.scandir(testdir): + if entry.name == "empty": + continue # already read + + if entry.is_dir(): + test_output = os.path.join(entry.path, input_files) + + if os.path.exists(test_output): + yield entry.name, test_output + +#------------------------------------------------------------------------ +def main(): + # check for p4 edit + # (otherwise os.replace below would replace the output file silently) + if os.path.exists(output_file) and not os.access(output_file, os.W_OK): + print("{}: not writable".format(output_file)) + sys.exit(1) + + collected_data = load_existing(output_file) + + first = True + for test_name, pathname in all_test_trace_files(): + if first: + first = False + if test_name != "empty" and not collected_data: + print("Please run the \"empty\" test" + " when collecting for the first time.") + sys.exit(1) + + load_from_test(collected_data, test_name, pathname) + + fout, fileout = tempfile.mkstemp() + + success = False + try: + os.write(fout, dump_data(collected_data).encode("ascii")) + os.close(fout) + os.replace(fileout, output_file) + + print ("Tests added: {}, functions added: {}, lines added: {}".format( + stats_tests_added, stats_funcs_added, stats_lines_added)) + success = True + finally: + if not success: + os.remove(fileout) + +#------------------------------------------------------------------------ +main() diff --git a/tools/collected_traces.txt b/tools/collected_traces.txt new file mode 100644 index 0000000..7f11559 --- /dev/null +++ b/tools/collected_traces.txt @@ -0,0 +1,18564 @@ +{ + "#empty": { + "ida.inf_get_privrange_start_ea": [ + 'int', + ], + "idaapi.IDAPython_ExecScript": [ + 'NoneType', + 'str', + ], + "idaapi.IDAPython_LoadProcMod": [ + ('NoneType', 'ClemencyProcessor'), + ('NoneType', 'clunky_processor_t'), + ('NoneType', 'cyci_processor_t'), + ('NoneType', 'ebc_processor_t'), + ('NoneType', 'msp430_processor_t'), + ('NoneType', 'sample_processor_t'), + ('NoneType', 'spu_processor_t'), + ], + "idaapi.IDAPython_UnLoadProcMod": [ + 'NoneType', + ], + "idp.IDP_Hooks.hook": [ + 'bool', + ], + "idp.processor_t.get_idpdesc": [ + 'str', + ], + "kernwin.attach_action_to_menu": [ + 'bool', + ], + "kernwin.msg": [ + 'int', + ], + "kernwin.register_action": [ + 'bool', + ], + "loader.get_plugin_options": [ + 'NoneType', + ], + "netnode.netnode.create": [ + 'bool', + ], + }, + "auto.auto_make_code": { + "return": [ + 'NoneType', + ], + "tests": [ + "frview-center_in_window", + "frview-scrollbar", + "grview-navigate_nodes_endless_analysis", + "hexrays-navigate5__ndis_arrow_down_constantly_modified_idb", + "prview-paths2", + ] + }, + "auto.auto_make_proc": { + "return": [ + 'NoneType', + ], + "tests": [ + "frview-scrollbar", + ] + }, + "auto.auto_wait": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "idapython-big_spd_bug", + "idapython-examples__produce_c_file", + "idapython-examples__produce_lst_file", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + ] + }, + "auto.may_create_stkvars": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "auto.may_trace_sp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "auto.plan_ea": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-big_spd_bug", + ] + }, + "bitrange.bitrange_t.apply_mask": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__bitrange", + "idapython-api__idp", + ] + }, + "bitrange.bitrange_t.bitoff": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.bitsize": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.extract": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.inject": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.intersect": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.mask64": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.shift_down": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.shift_up": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bytes.add_mapping": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.attach_custom_data_format": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.bin_search": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "idapython-examples__bin_search", + ] + }, + "bytes.byte_flag": { + "return": [ + 'int', + ], + "tests": [ + "stackview-misc", + "structs-members", + ] + }, + "bytes.create_strlit": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + ] + }, + "bytes.create_struct": { + "return": [ + 'bool', + ], + "tests": [ + "strlits-borland", + ] + }, + "bytes.del_hidden_range": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "bytes.del_items": { + "return": [ + 'bool', + ], + "tests": [ + "frview-center_in_window", + "frview-scrollbar", + "grview-navigate_nodes_endless_analysis", + "hexrays-navigate5__ndis_arrow_down_constantly_modified_idb", + "idaview-hints__instruction_gets_deleted", + "prview-paths2", + "undo-widgets__snippets", + ] + }, + "bytes.del_mapping": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.dword_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "structs-members", + ] + }, + "bytes.find_custom_data_format": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.find_custom_data_type": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.free_chunk": { + "return": [ + 'int', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "bytes.get_byte": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "training-test__CallStackWalk_py", + ] + }, + "bytes.get_bytes": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-misc3", + "plugins-procext_py", + ] + }, + "bytes.get_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-snapshots", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "bytes.get_custom_data_type": { + "return": [ + 'data_type_t', + ], + "tests": [ + "idapython-custom_data", + ] + }, + "bytes.get_dword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "idapython-custom_fixup", + "training-test__CallStackWalk_py", + ] + }, + "bytes.get_flags": { + "return": [ + 'int', + ], + "tests": [ + "debugger-breakpoints2__bpt_perf", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-custom_data", + "idapython-examples__list_stkvar_xrefs", + "idapython-examples__operand_changed", + "idapython-execute_sync", + "idapython-misc3", + "idapython-opinfo", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__sol_cyci_py", + ] + }, + "bytes.get_full_flags": { + "return": [ + 'int', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "bytes.get_hidden_range": { + "return": [ + 'hidden_range_t', + ], + "tests": [ + "idapython-misc2", + ] + }, + "bytes.get_item_size": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + ] + }, + "bytes.get_mapping": { + "return": [ + ('bool', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.get_mappings_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.get_max_strlit_length": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "i18n-strlits__get_strlit_contents_utf8_with_bom", + "idapython-examples__operand_changed", + "idapython-get_ascii_contents", + "idapython-misc4", + ] + }, + "bytes.get_octet": { + "return": [ + ('int', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-misc3", + ] + }, + "bytes.get_opinfo": { + "return": [ + 'NoneType', + 'opinfo_t', + ], + "tests": [ + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-custom_data", + "idapython-examples__operand_changed", + "idapython-misc3", + "idapython-opinfo", + ] + }, + "bytes.get_original_qword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.get_predef_insn_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-misc3", + ] + }, + "bytes.get_qword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.get_strlit_contents": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "i18n-strlits__get_strlit_contents_utf8_with_bom", + "idapython-examples__operand_changed", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-get_ascii_contents", + "idapython-misc4", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "bytes.get_wide_dword": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + ] + }, + "bytes.get_wide_word": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_mem", + "training-test__sol_cyci_py", + ] + }, + "bytes.get_word": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.has_value": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "bytes.is_code": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "bytes.is_defarg": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "bytes.is_enum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.is_loaded": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-execute_sync", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.is_off": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "bytes.is_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__list_stkvar_xrefs", + ] + }, + "bytes.is_strlit": { + "return": [ + 'bool', + ], + "tests": [ + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-examples__operand_changed", + "idapython-misc3", + ] + }, + "bytes.is_stroff": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.is_struct": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.next_addr": { + "return": [ + 'int', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "bytes.next_head": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "debugger-breakpoints2__bpt_perf", + "hexrays-misc2", + "idapython-examples__jump_next_comment", + "idapython-examples__lines_rendering", + ] + }, + "bytes.next_visea": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search2__idaview_across_hidden_function", + ] + }, + "bytes.off_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + ] + }, + "bytes.op_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.op_stroff": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + ] + }, + "bytes.parse_binpat_str": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-examples__bin_search", + ] + }, + "bytes.patch_byte": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + "eaview-patch_bytes__chooser", + ] + }, + "bytes.patch_dword": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.patch_qword": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.patch_word": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.prev_head": { + "return": [ + 'int', + ], + "tests": [ + "training-test__find_mgen_key_py", + ] + }, + "bytes.print_strlit_type": { + "return": [ + ('str', 'str'), + ], + "tests": [ + "i18n-strlits__change_default_string_style", + ] + }, + "bytes.put_byte": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-hints__instruction_gets_deleted", + ] + }, + "bytes.put_bytes": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "screenshots-misc__proc_dsp56k", + ] + }, + "bytes.put_dword": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-bfld", + ] + }, + "bytes.qword_flag": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "bytes.register_custom_data_format": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.register_custom_data_type": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.register_data_types_and_formats": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idaview-context_menu", + ] + }, + "bytes.revert_byte": { + "return": [ + 'bool', + ], + "tests": [ + "eaview-patch_bytes__basic", + "eaview-patch_bytes__chooser", + ] + }, + "bytes.set_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "bytes.stroff_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + "structs-members", + ] + }, + "bytes.unregister_custom_data_format": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.unregister_custom_data_type": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.unregister_data_types_and_formats": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + ] + }, + "bytes.update_hidden_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "bytes.use_mapping": { + "return": [ + 'int', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.visit_patched_bytes": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_patched_bytes", + ] + }, + "bytes.word_flag": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "dbg.DBG_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "debugger-exceptions", + "idapython-debugger", + ] + }, + "dbg.DBG_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "debugger-exceptions", + "idapython-debugger", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.DBG_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + "idapython-debugger", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.add_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "debugger-breakpoints2__bpt_perf", + "hexrays-move_undo_bpt", + "idapython-api__dbg", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.bpt_t.is_low_level": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + ] + }, + "dbg.bpt_t.set_src_bpt": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-move_undo_bpt", + ] + }, + "dbg.collect_stack_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.continue_process": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.dbg_can_query": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "debugger-memory", + ] + }, + "dbg.del_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-api__dbg", + "idapython-breakpoints", + ] + }, + "dbg.del_bptgrp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.enable_func_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "dbg.enable_insn_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "dbg.enable_manual_regions": { + "return": [ + 'NoneType', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.enable_step_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.exist_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.get_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-breakpoints", + ] + }, + "dbg.get_bpt_group": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.get_bpt_qty": { + "return": [ + 'int', + ], + "tests": [ + "debugger-breakpoints", + "debugger-breakpoints2__bpt_perf", + "idapython-api__dbg", + "idapython-breakpoints", + ] + }, + "dbg.get_current_source_file": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "hexrays-move_undo_bpt", + "idapython-api__dbg", + ] + }, + "dbg.get_current_thread": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-misc_debugger", + "training-test__CallStackWalk_py", + ] + }, + "dbg.get_dbg_reg_info": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__registers_context_menu", + ] + }, + "dbg.get_first_module": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-memory", + "idapython-modules", + ] + }, + "dbg.get_grp_bpts": { + "return": [ + 'int', + ], + "tests": [ + "idapython-bptgrp", + ] + }, + "dbg.get_insn_tev_reg_mem": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.get_insn_tev_reg_val": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.get_manual_regions": { + "return": [ + 'NoneType', + [('int', 'int', 'str', 'str', 'int', 'int', 'int'), '...'], + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.get_module_info": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.get_next_module": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-memory", + "idapython-modules", + ] + }, + "dbg.get_process_options": { + "return": [ + ('str', 'str', 'str', 'str', 'str', 'int'), + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.get_process_state": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__show_debug_names", + "training-test__CallStackWalk_py", + ] + }, + "dbg.get_reg_val": { + "return": [ + 'bool', + 'float', + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__registers_context_menu", + ] + }, + "dbg.get_step_trace_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.get_tev_info": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.getn_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "bptgrp-remove_from_group", + "debugger-breakpoints", + "idapython-api__dbg", + "idapython-bptgrp", + "idapython-breakpoints", + ] + }, + "dbg.internal_get_sreg_base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc_debugger", + ] + }, + "dbg.is_debugger_on": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__show_debug_names", + "training-test__CallStackWalk_py", + ] + }, + "dbg.list_bptgrps": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.load_debugger": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-misc2", + ] + }, + "dbg.memreg_infos_t.size": { + "return": [ + 'int', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.move_bpt_to_grp": { + "return": [ + 'NoneType', + ], + "tests": [ + "bptgrp-remove_from_group", + "idapython-bptgrp", + ] + }, + "dbg.refresh_debugger_memory": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.rename_bptgrp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.request_continue_process": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_enable_step_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_exit_process": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.request_run_to": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.request_set_step_trace_options": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_step_into": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-debugger", + ] + }, + "dbg.request_step_over": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.retrieve_exceptions": { + "return": [ + 'excvec_t', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.run_requests": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-debugger", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.run_to": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.set_bpt_group": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.set_bptloc_group": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.set_debugger_options": { + "return": [ + 'int', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.set_manual_regions": { + "return": [ + 'NoneType', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.set_reg_val": { + "return": [ + 'bool', + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "tracing-misc", + ] + }, + "dbg.set_step_trace_options": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.start_process": { + "return": [ + 'int', + ], + "tests": [ + "idapython-debugger", + ] + }, + "dbg.store_exceptions": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.update_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-breakpoints", + ] + }, + "dbg.wait_for_next_event": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.write_dbg_memory": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + ] + }, + "dirtree.dirtree_t.change_rank": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.findfirst": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.findnext": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_abspath": { + "return": [ + 'str', + ], + "tests": [ + "dirtree-load", + "idapython-api__dirtree", + ] + }, + "dirtree.dirtree_t.get_dir_size": { + "return": [ + 'int', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_entry_attrs": { + "return": [ + 'str', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_entry_name": { + "return": [ + 'str', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "dirtree.dirtree_t.get_rank": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.getcwd": { + "return": [ + 'str', + ], + "tests": [ + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + ] + }, + "dirtree.dirtree_t.isdir": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + "dirtree-load", + ] + }, + "dirtree.dirtree_t.link": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "dirtree.dirtree_t.mkdir": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__programmatically_add_folder", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + ] + }, + "dirtree.dirtree_t.notify_dirtree": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.rename": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__programmatically_add_folder", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + ] + }, + "dirtree.dirtree_t.resolve_cursor": { + "return": [ + 'direntry_t', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.resolve_path": { + "return": [ + 'direntry_t', + ], + "tests": [ + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.traverse": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__dirtree", + ] + }, + "dirtree.dirtree_t.unlink": { + "return": [ + 'int', + ], + "tests": [ + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + ] + }, + "dirtree.get_std_dirtree": { + "return": [ + 'dirtree_t', + ], + "tests": [ + "dirtree-load", + "idapython-api__dirtree", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + ] + }, + "diskio.close_linput": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-base2file", + "idapython-misc3", + ] + }, + "diskio.create_bytearray_linput": { + "return": [ + 'linput_t *', + ], + "tests": [ + "idapython-misc3", + ] + }, + "diskio.eclose": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "diskio.fopenM": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-savefile", + ] + }, + "diskio.fopenWB": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "diskio.get_ida_subdirs": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-misc4", + ] + }, + "diskio.get_linput_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc3", + ] + }, + "diskio.idadir": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc2", + "plugins-hexrayspytools", + ] + }, + "diskio.open_linput": { + "return": [ + 'linput_t *', + ], + "tests": [ + "idapython-base2file", + ] + }, + "entry.add_entry": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "enum.add_enum": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + ] + }, + "enum.del_enum": { + "return": [ + 'NoneType', + ], + "tests": [ + "stddirtrees-misc__cut_and_paste_enums", + ] + }, + "enum.for_all_enum_members": { + "return": [ + 'int', + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_enum": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + "idapython-enums_api", + "stddirtrees-misc__cut_and_paste_enums", + ] + }, + "enum.get_enum_member_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_enum_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "enum.get_first_enum_member": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + ] + }, + "enum.get_first_serial_enum_member": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_next_serial_enum_member": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-enums_api", + ] + }, + "expr.add_idc_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__expr", + "idapython-examples__extend_idc", + ] + }, + "expr.compile_idc_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "expr.eval_idc_expr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "idapython-misc4", + "idapython-switch_info", + "ppc-analysis_options", + "structs-asm_and_c", + "structs-create", + ] + }, + "expr.idc_value_t.c_str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.qstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.set_int64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.set_string": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc4", + ] + }, + "fixup.fixup_data_t.get": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.get_desc": { + "return": [ + 'str', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.get_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.set": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-bfld", + ] + }, + "fpro.qfile_t.close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__produce_lst_file", + "loadfile-archive_locked_idb", + ] + }, + "fpro.qfile_t.get_fp": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-examples__produce_lst_file", + ] + }, + "fpro.qfile_t.open": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__produce_lst_file", + "loadfile-archive_locked_idb", + ] + }, + "fpro.qfile_t.puts": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__gen_map_file", + ] + }, + "fpro.qfile_t_from_fp": { + "return": [ + 'qfile_t', + ], + "tests": [ + "idapython-idp_hooks2__gen_map_file", + ] + }, + "frame.add_auto_stkpnt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "frame.build_stkvar_xrefs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-xrefs", + ] + }, + "frame.calc_stkvar_struc_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_stkvar_xrefs", + ] + }, + "frame.get_frame": { + "return": [ + 'NoneType', + 'struc_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__frame", + "idapython-examples__list_stkvar_xrefs", + "idapython-funcs", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "stackview-misc", + ] + }, + "frame.get_spd": { + "return": [ + 'int', + ], + "tests": [ + "idapython-big_spd_bug", + ] + }, + "frame.get_stkvar": { + "return": [ + 'NoneType', + ('member_t', 'int'), + ], + "tests": [ + "idapython-funcs", + "idapython-processor_module__error_in_ev_is_sp_based", + ] + }, + "frame.set_frame_size": { + "return": [ + 'bool', + ], + "tests": [ + "funstack-misc", + ] + }, + "funcs.apply_idasgn_to": { + "return": [ + 'int', + ], + "tests": [ + "config-idausr_subdirs", + ] + }, + "funcs.del_func": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "funcs.func_item_iterator_t.current": { + "return": [ + 'int', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_item_iterator_t.next_code": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_item_iterator_t.set": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_t.does_return": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.func_t.is_far": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.get_fchunk": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "grview-api", + "idapython-api__frame", + "idapython-examples__dump_func_info", + "idapython-examples__list_segment_functions_using_idautils", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__double_click_ids", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.get_fchunk_qty": { + "return": [ + 'int', + ], + "tests": [ + "areas-misc", + ] + }, + "funcs.get_func": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "functions_window-misc__updating_func_causes_refresh", + "funstack-misc", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "hexrays-misc2", + "hexrays-rename-misc__make_library_function_and_undo", + "hexrays-rename_lvars", + "idapython-api__frame", + "idapython-api__funcs", + "idapython-big_spd_bug", + "idapython-cleanup", + "idapython-examples__colorize_disassembly", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dump_flowchart", + "idapython-examples__func_chooser_coloring", + "idapython-examples__list_segment_functions", + "idapython-examples__list_stkvar_xrefs", + "idapython-examples__replay_prototypes_changes", + "idapython-execute_sync", + "idapython-flow_chart", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-misc2", + "idapython-misc4", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-user_graphs", + "idapython-xrefs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-decompile2__DecompilationFailure", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds4", + "idapython_hr-hexrays_callback", + "idapython_hr-misc__cexpr_ctor", + "idaview-hints__instruction_gets_deleted", + "lumina-view_and_apply_metadata", + "plugins-hexrayspytools", + "plugins-lucid", + "screenshots-misc__idapython_snippets", + "stackview-misc", + "training-test__CallStackWalk_py", + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + "training-test__find_ret_py", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.get_func_name": { + "return": [ + 'str', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-user_graphs", + "screenshots-misc__idapython_snippets", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__ImpRef_py", + ] + }, + "funcs.get_idasgn_desc": { + "return": [ + ('str', 'str'), + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_idasgn_desc_with_matches": { + "return": [ + ('str', 'str', 'int'), + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_idasgn_qty": { + "return": [ + 'int', + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_next_fchunk": { + "return": [ + 'func_t', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "funcs.get_next_func": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "grview-api", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__double_click_ids", + "screenshots-misc__idapython_snippets", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.getn_fchunk": { + "return": [ + 'func_t', + ], + "tests": [ + "areas-misc", + ] + }, + "funcs.is_func_entry": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.is_func_tail": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.set_func_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "funcs.set_func_end": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module__error_in_set_func_end", + ] + }, + "funcs.set_func_start": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_set_func_start", + ] + }, + "funcs.update_func": { + "return": [ + 'bool', + ], + "tests": [ + "functions_window-misc__updating_func_causes_refresh", + "idapython-big_spd_bug", + "idapython-examples__colorize_disassembly", + "idapython-idb_hooks", + ] + }, + "gdl.BasicBlock.preds": { + "return": [ + 'generator', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.BasicBlock.succs": { + "return": [ + 'generator', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.FlowChart.refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-flow_chart", + ] + }, + "gdl.display_gdl": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "gdl.gdl_graph_t.entry": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.exists": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_edge": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_graph_attributes": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_node": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_node_attributes": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gen_gdl": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + "idapython-api__graph", + ] + }, + "gdl.qflow_chart_t.calc_block_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.npred": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.nsucc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.pred": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.succ": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "graph.GraphViewer.AddCommand": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + ] + }, + "graph.GraphViewer.AddEdge": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "grview-gruser", + "i18n-basic", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.AddNode": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.Clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.OnPopup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + ] + }, + "graph.GraphViewer.Show": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.UI_Hooks_Trampoline.populating_widget_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.abstract_graph_t.get_edge": { + "return": [ + 'NoneType', + 'edge_info_t', + ], + "tests": [ + "grview-rendering", + "idapython-api__graph", + ] + }, + "graph.create_disasm_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.create_mutable_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.get_graph_viewer": { + "return": [ + 'TWidget *', + ], + "tests": [ + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + ] + }, + "graph.get_viewer_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "grview-api", + "grview-rendering", + ] + }, + "graph.mutable_graph_t.add_edge": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.add_node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.create_digraph_layout": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.set_edge": { + "return": [ + 'bool', + ], + "tests": [ + "grview-rendering", + ] + }, + "graph.node_ordering_t.clr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.order": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.resize": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.set": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.pointvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-rendering", + ] + }, + "graph.viewer_del_node_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "graph.viewer_get_node_info": { + "return": [ + 'bool', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "graph.viewer_get_selection": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + ] + }, + "graph.viewer_set_node_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "hexrays.Hexrays_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + ] + }, + "hexrays.Hexrays_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-plugin_actions", + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__forget_unregistering", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.Hexrays_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.bitset_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.begin": { + "return": [ + 'iterator', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.compare": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.count": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.fill_with_ones": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.has": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.bitset_t.inc": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.intersect": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.itv": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.sub": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + ] + }, + "hexrays.block_chains_begin": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_end": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_get": { + "return": [ + 'chain_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_next": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_t.get_chain": { + "return": [ + 'NoneType', + 'chain_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.boundaries_t.begin": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.end": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.find": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.first": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.items": { + "return": [ + [('cinsn_t', 'rangeset_t'), '...'], + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.iterkeys": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.keys": { + "return": [ + ['cinsn_t', '...'], + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.keytype.insn_is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.boundaries_t.keytype.is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.boundaries_t.next": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.second": { + "return": [ + 'rangeset_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.valuetype.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc4", + ] + }, + "hexrays.boundaries_t.valuetype.getrange": { + "return": [ + 'range_t', + ], + "tests": [ + "idapython-misc4", + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.valuetype.nranges": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.call_helper": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.assign": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cexpr_t.get_const_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.get_v": { + "return": [ + 'NoneType', + 'var_ref_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.cexpr_t.is_const_value": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.numval": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cexpr_t.print1": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.cexpr_t.set_v": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.cfunc_t.get_boundaries": { + "return": [ + 'boundaries_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cfunc_t.get_func_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfunc_t.get_lvars": { + "return": [ + 'lvars_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfunc_t.get_pseudocode": { + "return": [ + 'strvec_t', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "hexrays.cfuncptr_t.find_item_coords": { + "return": [ + 'bool', + ('int', 'int'), + ], + "tests": [ + "idapython_hr-ea", + ] + }, + "hexrays.cfuncptr_t.get_eamap": { + "return": [ + 'eamap_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.cfuncptr_t.get_func_type": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfuncptr_t.get_line_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.get_lvars": { + "return": [ + 'lvars_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfuncptr_t.get_pseudocode": { + "return": [ + 'strvec_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-examples__vds1", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-lucid", + ] + }, + "hexrays.cfuncptr_t.print_func": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__vc_printer_t", + ] + }, + "hexrays.cfuncptr_t.save_user_cmts": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.save_user_unions": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.cfuncptr_t.set_user_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.set_user_union_selection": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.chain_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.cinsn_t.insn_is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.cinsn_t.is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.citem_t.find_closest_addr": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython_hr-ea", + ] + }, + "hexrays.citem_t.find_parent_of": { + "return": [ + 'NoneType', + 'citem_t', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + "plugins-hexrayspytools", + ] + }, + "hexrays.citem_t.is_expr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.citem_t.print1": { + "return": [ + 'str', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.clear_cached_cfuncs": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-caching__clear_after_decompilation", + "hexrays-caching__clear_on_start", + "hexrays-global_xrefs", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds19", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.create_cfunc": { + "return": [ + 'cfuncptr_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.create_helper": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.create_typedef": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_anchor_t.is_citem_anchor": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + ] + }, + "hexrays.ctree_item_t.get_lvar": { + "return": [ + 'NoneType', + 'lvar_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_item_t.is_citem": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_items_t.at": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_hooks__create_hint2", + ] + }, + "hexrays.ctree_items_t.back": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_items_t.front": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + ] + }, + "hexrays.ctree_items_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "hexrays.ctree_items_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_visitor_t.apply_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds7", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.apply_to_exprs": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "hexrays.ctree_visitor_t.leave_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.parent_expr": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.visit_expr": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds7", + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.visit_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.decompile": { + "return": [ + 'cfuncptr_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds4", + "idapython_hr-hexrays_callback", + "idapython_hr-misc__cexpr_ctor", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "hexrays.decompile_many": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__produce_c_file", + "idapython_hr-decompile", + ] + }, + "hexrays.dereference": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.dummy_ptrtype": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.eamap_t.begin": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.end": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.eamap_t.find": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.eamap_t.first": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.next": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.second": { + "return": [ + 'cinsnptrvec_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.gco_info_t.append_to_list": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gco_info_t.is_def": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gco_info_t.is_use": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gen_microcode": { + "return": [ + 'NoneType', + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "plugins-lucid", + ] + }, + "hexrays.get_ctype_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "hexrays.get_current_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.get_float_type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "hexrays.get_hexrays_version": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds17", + "idapython_hr-gssincla_sample5", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.get_mreg_name": { + "return": [ + 'str', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.get_unk_type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.get_widget_vdui": { + "return": [ + 'NoneType', + 'vdui_t', + ], + "tests": [ + "hexrays-misc3__get_vdui_by_api", + "idapython-examples__colorize_pseudocode_lines", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.getf_reginsn": { + "return": [ + 'NoneType', + 'minsn_t', + ], + "tests": [ + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.hexrays_failure_t.desc": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-decompile2__DecompilationFailure", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "hexrays.init_hexrays_plugin": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-global_xrefs", + "idapython-plugin__plugin_fix", + "idapython-tinfo_manip", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds19", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds4", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-examples__vds_modify_user_lvars", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.install_hexrays_callback": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-plugin_actions", + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + ] + }, + "hexrays.install_microcode_filter": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-codegen", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + ] + }, + "hexrays.is_mcode_jcond": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.is_mcode_set": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.lnot": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-examples__vds3", + ] + }, + "hexrays.lvar_locator_t.get_reg1": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.get_stkoff": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.is_reg1": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.is_stk_var": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_mapping_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.lvar_saved_infos_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.lvar_t.type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.make_num": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.make_ref": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.mark_cfunc_dirty": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mba_t.analyze_calls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.build_graph": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.deserialize": { + "return": [ + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mba_t.find_mop": { + "return": [ + 'NoneType', + 'mop_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.for_all_topinsns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mba_t.get_graph": { + "return": [ + 'mbl_graph_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.get_mblock": { + "return": [ + 'mblock_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mba_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mba_t.verify": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.analyze_calls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.build_graph": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.deserialize": { + "return": [ + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mbl_array_t.find_mop": { + "return": [ + 'NoneType', + 'mop_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.for_all_topinsns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.get_graph": { + "return": [ + 'mbl_graph_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.get_mblock": { + "return": [ + 'mblock_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mbl_array_t.verify": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_graph_t.get_du": { + "return": [ + 'graph_chains_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_graph_t.get_ud": { + "return": [ + 'graph_chains_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mblock_t.append_use_list": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.build_def_list": { + "return": [ + 'mlist_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.build_use_list": { + "return": [ + 'mlist_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mblock_t.for_all_insns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.insert_into_block": { + "return": [ + 'minsn_t', + ], + "tests": [ + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.is_call_block": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.make_nop": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.mark_lists_dirty": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.needs_propagation": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mblock_t.npred": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.nsucc": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.optimize_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.pred": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.preds": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mblock_t.remove_from_block": { + "return": [ + 'NoneType', + 'minsn_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mblock_t.succ": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.succs": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mcallargs_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.mcallargs_t.push_back": { + "return": [ + 'mcallarg_t', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.mcases_t.resize": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.minsn_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds21", + ] + }, + "hexrays.minsn_t.equal_insns": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + ] + }, + "hexrays.minsn_t.find_num_op": { + "return": [ + ('NoneType', 'NoneType'), + ('mop_t', 'mop_t'), + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.minsn_t.for_all_insns": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.minsn_t.is_helper": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.minsn_t.optimize_solo": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.has_common": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.includes": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.sub": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mnumber_t.update_value": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.modify_user_lvars": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.mop_t.assign": { + "return": [ + 'mop_t', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.equal_mops": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.for_all_ops": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.has_side_effects": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds19", + ] + }, + "hexrays.mop_t.is_arglist": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.is_constant": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.is_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.make_fpnum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.make_number": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.negate_mcode_relation": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + ] + }, + "hexrays.new_block": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.op_uses_x": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-decompile", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.op_uses_y": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.op_uses_z": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.open_pseudocode": { + "return": [ + 'vdui_t', + ], + "tests": [ + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-tinfo_func", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.optblock_t.install": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optblock_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optinsn_t.install": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optinsn_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.qlist_cinsn_t.at": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t.back": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.begin": { + "return": [ + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t.end": { + "return": [ + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + ] + }, + "hexrays.qlist_cinsn_t.find": { + "return": [ + 'NoneType', + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.front": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.insert": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.pop_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.pop_front": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.push_back": { + "return": [ + 'NoneType', + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t_iterator.next": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + ] + }, + "hexrays.qswap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.remove_hexrays_callback": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + ] + }, + "hexrays.rename_lvar": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.restore_user_cmts": { + "return": [ + 'NoneType', + 'user_cmts_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_iflags": { + "return": [ + 'NoneType', + 'user_iflags_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_labels": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_lvar_settings": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_numforms": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.save_user_lvar_settings": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.select_udt_by_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.term_hexrays_plugin": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.udc_filter_t.init": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-codegen", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + ] + }, + "hexrays.ui_stroff_ops_t.push_back": { + "return": [ + 'ui_stroff_op_t', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.user_cmts_free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.begin": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.end": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.first": { + "return": [ + 'treeloc_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.items": { + "return": [ + [('treeloc_t', 'citem_cmt_t'), '...'], + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.next": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.second": { + "return": [ + 'citem_cmt_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.begin": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.end": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.first": { + "return": [ + 'citem_locator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.items": { + "return": [ + [('citem_locator_t', 'int'), '...'], + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.next": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.second": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_unions_t.valuetype.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds17", + ] + }, + "hexrays.user_unions_t.valuetype.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.user_unions_t.valuetype.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.uval_ivl_ivlset_t.getivl": { + "return": [ + 'ivl_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.uval_ivl_ivlset_t.nivls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.valrng_t.all_values": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.cvt_to_cmp": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.cvt_to_single_value": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.get_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.has": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.intersect_with": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.is_unknown": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.max_svalue": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.max_value": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.min_svalue": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.set_cmp": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.set_eq": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.vc_printer_t.oneliner": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__vc_printer_t", + ] + }, + "hexrays.vdui_t.get_current_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + ] + }, + "hexrays.vdui_t.refresh_cpos": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + ] + }, + "hexrays.vdui_t.refresh_ctext": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.vdui_t.refresh_view": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_func", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + ] + }, + "hexrays.vdui_t.set_lvar_type": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.vdui_t.visible": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + ] + }, + "ida.idainfo.is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "ida.idainfo.set_be": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ida.idainfo.set_gen_tryblks": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "ida.inf_get_af": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ida", + ] + }, + "ida.inf_get_cc": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython__ida_ida", + ] + }, + "ida.inf_get_filetype": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "ida.inf_get_max_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "idapython-examples__bin_search", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__produce_lst_file", + "idapython-examples__show_debug_names", + ] + }, + "ida.inf_get_min_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_problems", + "idapython-examples__produce_lst_file", + "idapython-examples__show_debug_names", + ] + }, + "ida.inf_get_start_ip": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "ida.inf_get_xrefnum": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc5__bad_inf_set_xrefnum", + ] + }, + "ida.inf_is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__modified_vds13_twice", + ] + }, + "ida.inf_set_af": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__ida", + ] + }, + "ida.inf_set_xrefnum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc5__bad_inf_set_xrefnum", + ] + }, + "idaapi.CustomIDAMemo.CreateGroups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.DelNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.DeleteGroups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.GetCurrentRendererType": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + ] + }, + "idaapi.CustomIDAMemo.GetNodeInfo": { + "return": [ + 'NoneType', + 'bool', + ('int', 'int', 'int', 'str'), + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "idaapi.CustomIDAMemo.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.SetCurrentRendererType": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.SetGroupsVisibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "idaapi.CustomIDAMemo.SetNodeInfo": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.SetNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + ] + }, + "idaapi.CustomIDAMemo.view_activated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_click": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_curpos": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_dblclick": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "idaapi.CustomIDAMemo.view_deactivated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_keydown": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-on_view_keydown", + "idapython-examples__custom_graph_with_actions", + ] + }, + "idaapi.CustomIDAMemo.view_loc_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_mouse_moved": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_mouse_over": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "idaapi.CustomIDAMemo.view_switched": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "grview-on_view_click", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.IDAPython_FormatExc": { + "return": [ + 'str', + ], + "tests": [ + "actions-script_actions_no_interr", + "bptgrp-multiline", + "debugger-breakpoints", + "debugger-breakpoints2__compat_760", + "debugger-breakpoints2__python_from_future_cond", + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_refreshes", + "idapython-addHotkey", + "idapython-breakpoints", + "idapython-plugin__broken_plugin_init", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-python_as_primary_interpreter", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "pyqt-tform2", + ] + }, + "idaapi.IDAPython_displayhook.format_item": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__get_action_attributes", + "api-actions__register_unregister_lifecycle", + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "api-idapython__get_set_numbered_type", + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__ida_kernwin", + "api-put_patch_get", + "bptgrp-create_and_move", + "chooser-attrs__choose_name", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__ex_choose_multi", + "coloredview-highlight", + "config-idausr_subdirs", + "console-actions", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "customidamemo-navigate__dump_imported_bookmarks", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "dbg_restore_snapshot", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints2__bpt_perf", + "debugger-exceptions", + "debugger-manual_memory_regions", + "debugger-memory", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "eaview-navigate_rebase", + "enums-api", + "functions_window-misc__compat_find_widget", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref", + "grview-jumpto_xref_from_other_tab", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "hexrays-misc3__get_vdui_by_api", + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate", + "i18n-files", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__change_default_string_style", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-addHotkey", + "idapython-api__695bwcompat_misses", + "idapython-api__bitrange", + "idapython-api__dbg", + "idapython-api__dirtree", + "idapython-api__expr", + "idapython-api__funcs", + "idapython-api__gdl", + "idapython-api__graph", + "idapython-api__ida", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__search", + "idapython-api__segment", + "idapython-api__struct", + "idapython-api__typeinf", + "idapython-askusingform__direct_call", + "idapython-base2file", + "idapython-big_spd_bug", + "idapython-bptgrp", + "idapython-calc_switch_cases", + "idapython-custom_data", + "idapython-debugger", + "idapython-displayhook", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__no_implicit_imports", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-misc5__bad_inf_set_xrefnum", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-plugin_alternative_path__load_plugin", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__ph_object", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-srareas", + "idapython-structs", + "idapython-switch_info", + "idapython-timers", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_func", + "idapython-tinfo_manip", + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + "idapython-user_graphs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__fnumber_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idaview-misc__recreate_insn", + "idaview-misc__tryblocks", + "loadfile-dyld_shared_cache2", + "localtypes-misc__anonymous_union_members", + "localtypes-misc__manipulate_dirtree_programmatically", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__goto_end", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + "squishutils-evalpython", + "squishutils-msg", + "stackview-misc", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + "structs-members", + "structview-navigate2__custom_viewer_jump", + "til-loaded_til", + "til-misc", + "til-nonlocal_deps", + "til-redeclare_named_type", + "til-simple_export", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idaapi.IDAPython_displayhook.format_seq": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__get_action_attributes", + "customidamemo-highlight", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-manual_memory_regions", + "i18n-strlits__change_default_string_style", + "idapython-api__dbg", + "idapython-api__gdl", + "idapython-api__idc", + "idapython-api__kernwin", + "idapython-bptgrp", + "idapython-debugger", + "idapython-displayhook", + "idapython-misc2", + "idapython-misc3", + "idapython-names__get_name_value", + "idapython-processor_module__ph_object", + "idapython-read_selection_64", + "idapython-registry", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-ea", + "mainmsglist-misc__goto_end", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "registry-misc__strlist", + "structs-members", + "til-redeclare_named_type", + ] + }, + "idaapi.disable_script_timeout": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-command_palette", + ] + }, + "idaapi.format_basestring": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__get_action_attributes", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-manual_memory_regions", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "enums-api", + "functions_window-misc__compat_find_widget", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref_from_other_tab", + "hexrays-misc3__get_vdui_by_api", + "hexrays-navigate", + "i18n-strlits__change_default_string_style", + "idapython-api__695bwcompat_misses", + "idapython-api__dbg", + "idapython-api__expr", + "idapython-api__gdl", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__typeinf", + "idapython-bptgrp", + "idapython-debugger", + "idapython-displayhook", + "idapython-idb_hooks", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-processor_module__ph_object", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-structs", + "idapython-switch_info", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "localtypes-misc__anonymous_union_members", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "squishutils-msg", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "structs-members", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idaapi.get_inf_structure": { + "return": [ + 'idainfo', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "idaapi.loader_input_t.file2base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "idaapi.loader_input_t.gets": { + "return": [ + 'str', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "idaapi.loader_input_t.read": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.seek": { + "return": [ + 'int', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.size": { + "return": [ + 'int', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.tell": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "idaapi.notify_when": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-examples__custom_cli", + "idapython-notify_when__basic", + "plugins-hexrayspytools", + ] + }, + "idaapi.pycim_get_widget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pycim_view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_create_groups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_delete_groups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_set_groups_visibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "idd.Appcall__.get_appcall_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + ] + }, + "idd.Appcall__.set_appcall_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + ] + }, + "idd.dbg_write_memory": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "debugger-memory", + ] + }, + "idd.meminfo_vec_t.push_back": { + "return": [ + 'memory_info_t', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "idd.regval_t.set_int": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registers__linux", + "idapython-registers__linux_x64", + ] + }, + "idp.AssembleLine": { + "return": [ + 'bytes', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "idp.IDB_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__log_idb_events", + "idapython-idb_hooks2__compiler_changed", + "idapython-idb_hooks2__compiler_changed_compat", + "idapython-idb_hooks2__renamed", + "idapython-idb_hooks2__renamed_compat", + "idapython-idb_hooks2__sgr_changed_deleted", + ] + }, + "idp.IDB_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-examples__custom_cli", + "idapython-examples__log_idb_events", + "idapython-examples__operand_changed", + "idapython-examples__replay_prototypes_changes", + "idapython-extra_cmt", + "idapython-idb_hooks", + "idapython-idb_hooks2__bookmark_changed", + "idapython-idb_hooks2__bookmark_changed_compat", + "idapython-idb_hooks2__compiler_changed", + "idapython-idb_hooks2__compiler_changed_compat", + "idapython-idb_hooks2__renamed", + "idapython-idb_hooks2__renamed_compat", + "idapython-idb_hooks2__segm_deleted_compat", + "idapython-idb_hooks2__sgr_changed_deleted", + "idapython-notify_when__basic", + "plugins-hexrayspytools", + ] + }, + "idp.IDB_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "idp.IDP_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idp_hooks2__assemble", + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__gen_src_file_lnnum", + "idapython-idp_hooks2__get_autocmt", + "idapython-idp_hooks2__get_bg_color", + "idapython-idp_hooks2__get_bg_color_compat", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__get_operand_string", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-idp_hooks2__is_sp_based", + ] + }, + "idp.IDP_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + "idaview-hints__instruction_gets_deleted", + "plugins-procext_py", + ] + }, + "idp.get_ash": { + "return": [ + 'asm_t', + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.get_reg_info": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.is_call_insn": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_idp", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "training-test__CallStackWalk_py", + ] + }, + "idp.parse_reg_name": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-debugger", + ] + }, + "idp.ph_calcrel": { + "return": [ + ('bytes', 'int'), + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.ph_find_op_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "idp.ph_find_reg_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-idp_hooks", + "ppc-analysis_options", + ] + }, + "idp.ph_get_cnbits": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_dnbits": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_flag": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__get_action_attributes", + "api-actions__register_unregister_lifecycle", + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "api-idapython__get_set_numbered_type", + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__ida_kernwin", + "api-put_patch_get", + "bptgrp-create_and_move", + "chooser-attrs__choose_name", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__ex_choose_multi", + "coloredview-highlight", + "config-idausr_subdirs", + "console-actions", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "customidamemo-navigate__dump_imported_bookmarks", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "dbg_restore_snapshot", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints2__bpt_perf", + "debugger-exceptions", + "debugger-manual_memory_regions", + "debugger-memory", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "eaview-navigate_rebase", + "enums-api", + "functions_window-misc__compat_find_widget", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref", + "grview-jumpto_xref_from_other_tab", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "hexrays-misc3__get_vdui_by_api", + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate", + "i18n-files", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__change_default_string_style", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-addHotkey", + "idapython-api__695bwcompat_misses", + "idapython-api__bitrange", + "idapython-api__dbg", + "idapython-api__dirtree", + "idapython-api__expr", + "idapython-api__funcs", + "idapython-api__gdl", + "idapython-api__graph", + "idapython-api__ida", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__search", + "idapython-api__segment", + "idapython-api__struct", + "idapython-api__typeinf", + "idapython-askusingform__direct_call", + "idapython-base2file", + "idapython-big_spd_bug", + "idapython-bptgrp", + "idapython-calc_switch_cases", + "idapython-custom_data", + "idapython-debugger", + "idapython-displayhook", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__no_implicit_imports", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-misc5__bad_inf_set_xrefnum", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-plugin_alternative_path__load_plugin", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__ph_object", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-srareas", + "idapython-structs", + "idapython-switch_info", + "idapython-timers", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_func", + "idapython-tinfo_manip", + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + "idapython-user_graphs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__fnumber_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idaview-misc__recreate_insn", + "idaview-misc__tryblocks", + "loadfile-dyld_shared_cache2", + "localtypes-misc__anonymous_union_members", + "localtypes-misc__manipulate_dirtree_programmatically", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__goto_end", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + "squishutils-evalpython", + "squishutils-msg", + "stackview-misc", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + "structs-members", + "structview-navigate2__custom_viewer_jump", + "til-loaded_til", + "til-misc", + "til-nonlocal_deps", + "til-redeclare_named_type", + "til-simple_export", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idp.ph_get_icode_return": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_id": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "idapython-idp_hooks", + "idapython-processor_module__ph_object", + "plugins-procext_py", + ] + }, + "idp.ph_get_instruc": { + "return": [ + [('str', 'int'), '...'], + ], + "tests": [ + "idapython-processor_module__ph_object", + "training-test__AsmViewer_py", + ] + }, + "idp.ph_get_instruc_end": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_instruc_start": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_operand_info": { + "return": [ + 'NoneType', + ('int', 'int', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-debugger", + ] + }, + "idp.ph_get_reg_accesses": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__get_reg_accesses", + ] + }, + "idp.ph_get_reg_code_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_reg_data_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_reg_first_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + "idapython-srareas", + ] + }, + "idp.ph_get_reg_last_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_regnames": { + "return": [ + ['str', '...'], + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-processor_module__ph_object", + "training-test__AsmViewer_py", + ] + }, + "idp.ph_get_segreg_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_tbyte_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.processor_t.auto_empty": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.auto_empty_finally": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.closebase": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.deleting_func": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + ] + }, + "idp.processor_t.ev_ana_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_auto_queue_empty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_can_have_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + ] + }, + "idp.processor_t.ev_coagulate": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_coagulate_dref": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_create_func_frame": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_creating_segm": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_emu_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_endbinary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_func_bounds": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_align_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_is_basic_block_end": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_call_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_ret_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_is_sane_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_is_sp_based": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_switch": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_may_be_func": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_newbinary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_newfile": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_newprc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_oldfile": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + ] + }, + "idp.processor_t.ev_out_assumes": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_data": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_footer": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_header": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_label": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_mnem": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_segend": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_segstart": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_rename": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_str2reg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_treat_hindering_item": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_mem", + ] + }, + "idp.processor_t.ev_undefine": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_mem", + ] + }, + "idp.processor_t.func_added": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.get_auxpref": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.kernel_config_loaded": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.make_code": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.make_data": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.renamed": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.savebase": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.set_func_end": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.set_func_start": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.sgr_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.reg_access_vec_t.push_back": { + "return": [ + 'reg_access_t', + ], + "tests": [ + "idapython-idp_hooks2__get_reg_accesses", + ] + }, + "idp.set_processor_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "idp.str2reg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "stackview-misc", + ] + }, + "ieee.fpvalue_t.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.eabs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fadd": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fdiv": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fmul": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_int64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_str": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_sval": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_uint64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fsub": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.get_kind": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.is_negative": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.mul_pow2": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.negate": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_int64": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_sval": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_uint64": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "kernwin.Choose.AddCommand": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_kernwin", + ] + }, + "kernwin.Choose.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-actions__action_destroys_chooser", + "chooser-dirtree__modal", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose_multi", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-quick_filter", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-choosers", + "idapython_hr-examples__vds12", + "mainmsglist-misc__carriage_return_after_form", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.Choose.Embedded": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Choose.GetWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc__ex_choose", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "squishutils-menus", + ] + }, + "kernwin.Choose.OnPopup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc__ex_choose", + "squishutils-menus", + ] + }, + "kernwin.Choose.Refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-keyboard", + ] + }, + "kernwin.Choose.Show": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-choosers", + "idapython_hr-examples__vds12", + "squishutils-menus", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.Choose.UI_Hooks_Trampoline.populating_widget_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc__ex_choose", + "squishutils-menus", + ] + }, + "kernwin.Choose.adjust_last_item": { + "return": [ + ['int', '...'], + ], + "tests": [ + "chooser-actions__actions_availability", + "chooser-misc__chooser_broken", + "idapython-choosers", + ] + }, + "kernwin.CustomIDAMemo.CreateGroups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.DelNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.DeleteGroups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.GetCurrentRendererType": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + ] + }, + "kernwin.CustomIDAMemo.GetNodeInfo": { + "return": [ + 'NoneType', + 'bool', + ('int', 'int', 'int', 'str'), + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "kernwin.CustomIDAMemo.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.SetCurrentRendererType": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.SetGroupsVisibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "kernwin.CustomIDAMemo.SetNodeInfo": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.SetNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + ] + }, + "kernwin.CustomIDAMemo.view_activated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_click": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_curpos": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_dblclick": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "kernwin.CustomIDAMemo.view_deactivated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_keydown": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-on_view_keydown", + "idapython-examples__custom_graph_with_actions", + ] + }, + "kernwin.CustomIDAMemo.view_loc_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_mouse_moved": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_mouse_over": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "kernwin.CustomIDAMemo.view_switched": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "grview-on_view_click", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.Form.Add": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.AddControls": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.ButtonInput.helper_cb": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + ] + }, + "kernwin.Form.ButtonInput.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + ] + }, + "kernwin.Form.Compile": { + "return": [ + ('MyChooserForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'c_char_Array_1024']), + ('MyForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType']), + ('MyForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p']), + ('MyForm3', ['bytes', 'CFunctionType', 'CFunctionType']), + ('MyNonModalForm', ['bytes', 'int', 'CFunctionType', 'CFunctionType']), + ('UpdateCollectiveIntelForm', ['bytes', 'CFunctionType', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_ushort', 'LP_c_long', 'LP_c_long']), + ('VirusTotalForm', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort', 'c_char_Array_512', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType']), + ('busy_form_t', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_512', 'c_char_Array_512', 'c_char_Array_512', 'LP_c_ulong', 'LP_c_ulong', 'LP_c_long', 'LP_c_ulong', 'c_char_Array_1024', 'CFunctionType', 'CFunctionType', 'LP_c_ushort', 'LP_c_ushort', 'LP_c_void_p', 'LP_c_void_p']), + ('enable_field_file_browser_t', ['bytes', 'CFunctionType', 'c_char_Array_512']), + ('jmp_to_form', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_void_p', 'LP_c_void_p']), + ('search_strlit_form_t', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort']), + ('test_plugin_form_t', ['bytes', 'int', 'CFunctionType', 'LP_c_void_p']), + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.CompileEx": { + "return": [ + ['bytes', 'CFunctionType', 'CFunctionType'], + ['bytes', 'CFunctionType', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_ushort', 'LP_c_long', 'LP_c_long'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'c_char_Array_1024'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_512', 'c_char_Array_512', 'c_char_Array_512', 'LP_c_ulong', 'LP_c_ulong', 'LP_c_long', 'LP_c_ulong', 'c_char_Array_1024', 'CFunctionType', 'CFunctionType', 'LP_c_ushort', 'LP_c_ushort', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort', 'c_char_Array_512', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_512'], + ['bytes', 'int', 'CFunctionType', 'CFunctionType'], + ['bytes', 'int', 'CFunctionType', 'LP_c_void_p'], + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Compiled": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.get_arg": { + "return": [ + 'CFunctionType', + 'LP_c_long', + 'LP_c_ulong', + 'LP_c_ushort', + 'LP_c_void_p', + 'c_char_Array_1024', + 'c_char_Array_512', + ('LP_c_void_p', 'LP_c_void_p'), + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__refresh_and_check_selection", + "idapython-askusingform__close_on_click", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.DropdownListControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython_hr-examples__modified_vds13_twice", + ] + }, + "kernwin.Form.EmbeddedChooserControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.EnableField": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__enable_field_file_browser", + ] + }, + "kernwin.Form.Execute": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FindControlById": { + "return": [ + 'ButtonInput', + 'ChkGroupControl', + 'ChkGroupItemControl', + 'EmbeddedChooserControl', + 'FileInput', + 'FormChangeCb', + 'StringInput', + ], + "tests": [ + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + ] + }, + "kernwin.Form.FormChangeCb.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FormChangeCb.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__refresh_and_check_selection", + "idapython-askusingform__close_on_click", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FormChangeCb.helper_cb": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupControl.next_child_pos": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.assign_pos": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.InputControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.InputControl.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.LabelControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.MultiLineTextControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__multiline", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.Form.Open": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.Form.RefreshField": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + ] + }, + "kernwin.Form.create_string_buffer": { + "return": [ + 'c_char_Array_10', + 'c_char_Array_1024', + 'c_char_Array_512', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.fieldtype_to_ctype": { + "return": [ + 'PyCSimpleType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.IDAViewWrapper.Bind": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + "grview-groups__api", + "grview-mouseOver", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.IDAViewWrapper.Unbind": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + ] + }, + "kernwin.PluginForm.FormToPyQtWidget": { + "return": [ + 'QAbstractScrollArea', + 'QWidget', + ], + "tests": [ + "hexrays-misc3__get_vdui_by_api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "plugins-hexrayspytools", + "pyqt-qabstractitemdelegate", + "pyqt-raw_widgets_in_tree", + "squishutils-drag", + ] + }, + "kernwin.PluginForm.GetWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_pluginform", + ] + }, + "kernwin.PluginForm.OnClose": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-set_dock_pos_empty_dst", + ] + }, + "kernwin.PluginForm.OnCreate": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-set_dock_pos_empty_dst", + ] + }, + "kernwin.PluginForm.QtWidgetToTWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + ] + }, + "kernwin.PluginForm.Show": { + "return": [ + 'bool', + ], + "tests": [ + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-set_dock_pos_empty_dst", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "plugins-hexrayspytools", + "pyqt-tform2", + ] + }, + "kernwin.PluginForm.TWidgetToPyQtWidget": { + "return": [ + 'QAbstractScrollArea', + 'QWidget', + ], + "tests": [ + "idapython-examples__inject_command", + "idapython-ui_hooks__misc", + "plugins-lucid", + ] + }, + "kernwin.TWidget__from_ptrval__": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + ] + }, + "kernwin.UI_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__database_closed", + "idapython-ui_hooks__debugger_menu_change_default_impl", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "idapython-ui_hooks__term", + ] + }, + "kernwin.UI_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__path_part_name_starts_like_action", + "api-actions__separators", + "api-actions__tooltips", + "api-actions__unused_action_desc", + "api-actions__updating_actions_notif", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__missing_attributes", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-api__graph", + "idapython-api__kernwin", + "idapython-choosers", + "idapython-cleanup", + "idapython-custom_viewer", + "idapython-customidamemo", + "idapython-example_add_menu_item", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__func_chooser_coloring", + "idapython-examples__lines_rendering", + "idapython-examples__prevent_jump", + "idapython-examples__registers_context_menu", + "idapython-examples__uihook", + "idapython-tform", + "idapython-tform_type", + "idapython-ui_hooks__attach_action_to_any_popup", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__database_closed", + "idapython-ui_hooks__debugger_menu_change_default_impl", + "idapython-ui_hooks__desktop_applied", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "idapython-ui_hooks__saving_saved", + "idapython-ui_hooks__saving_saved_bwcompat", + "idapython-ui_hooks__term", + "idapython-user_graphs", + "idapython_hr-codegen", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "plugins-lucid", + "squishutils-menus", + "training-test__AsmViewer_py", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.UI_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__separators", + "api-actions__tooltips", + "api-actions__updating_actions_notif", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-choosers", + "idapython-examples__prevent_jump", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__misc", + "idapython_hr-examples__vds12", + "plugins-lucid", + "squishutils-menus", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.View_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.View_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + "idapython-user_graphs", + ] + }, + "kernwin.action_ctx_base_t.has_flag": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.action_handler_t.update": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_toolbar", + "api-actions__register_actions_before_exit", + ] + }, + "kernwin.activate_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-gruser", + "grview-nodepropsUser", + ] + }, + "kernwin.add_hotkey": { + "return": [ + 'PyCapsule', + ], + "tests": [ + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "idapython-addHotkey", + "idapython-examples__add_hotkey", + "idapython-misc2", + ] + }, + "kernwin.add_idc_hotkey": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "kernwin.add_spaces": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.ask_addr": { + "return": [ + 'NoneType', + ], + "tests": [ + "desktops-floating_dock__dis_forms", + "dialogs-misc__positioning", + "dialogs-misc__positioning_desktop_reset", + "dialogs-misc__positioning_prevented", + "forms-misc__regular_forms", + ] + }, + "kernwin.ask_file": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "filedlg-open_file__filters", + "idapython-misc3", + "idapython-waitdialog", + "training-test__AsmViewer_py", + ] + }, + "kernwin.ask_form": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__direct_call", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.ask_str": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + "idapython-askusingform__dropdown", + "idapython-help_function", + "idapython-help_shortcut", + "training-test__ImpRef_py", + ] + }, + "kernwin.ask_text": { + "return": [ + 'str', + ], + "tests": [ + "dialogs-asktext__sizes", + "plugins-hexrayspytools", + ] + }, + "kernwin.ask_yn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-uirequests", + ] + }, + "kernwin.attach_action_to_popup": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "actions-misc4", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__permanent_attach_to_chooser_popup", + "api-actions__permanent_attach_to_popup", + "api-actions__separators", + "api-actions__tooltips", + "chooser-actions__action_destroys_chooser", + "chooser-misc__ex_choose", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "grview-gruser", + "grview-nodepropsUser", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__dump_extra_comments", + "idapython-examples__registers_context_menu", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-plugin_actions", + "idapython-tform_type", + "idapython-ui_hooks__attach_action_to_any_popup", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + "squishutils-menus", + "training-test__AsmViewer_py", + ] + }, + "kernwin.attach_action_to_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_toolbar", + "api-actions__separators", + "api-actions__update_action", + "idapython-example_add_menu_item", + "toolbars-add_custom", + ] + }, + "kernwin.attach_dynamic_action_to_popup": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__path_part_name_starts_like_action", + "api-actions__unused_action_desc", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-misc2__recreate_chooser_context_menu", + "idapython-examples__custom_graph_with_actions", + "idapython-tform_type", + "idapython-user_graphs", + ] + }, + "kernwin.call_nav_colorizer": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.choose_find": { + "return": [ + 'MyChoose', + 'NoneType', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.choose_name": { + "return": [ + 'int', + ], + "tests": [ + "chooser-attrs__choose_name", + ] + }, + "kernwin.choose_segm": { + "return": [ + 'NoneType', + ], + "tests": [ + "segs-manip", + ] + }, + "kernwin.chooser_base_t.get_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__func_chooser_coloring", + ] + }, + "kernwin.chooser_base_t.get_row": { + "return": [ + (['str', '...'], 'int', 'chooser_item_attrs_t'), + ], + "tests": [ + "chooser-misc__colorize_chooser", + ] + }, + "kernwin.cli_t.register": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__custom_cli", + ] + }, + "kernwin.cli_t.unregister": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__custom_cli", + ] + }, + "kernwin.close_chooser": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-columns__modify_number_of_columns_recreate_chooser", + "desktops-misc__compat_old_window_titles", + "functions_window-misc__compat_close_chooser", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.close_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "console-restore", + "debugger-regviews", + "docks-close_with_middle_button", + "eaview-sync_pseudocode", + "enums-asm_and_c", + "forms-massiveclose", + "frview-resize", + "funstack-navigate", + "gruser-misc__node_info", + "grview-grida", + "grview-gruser", + "grview-on_view_click", + "hexrays-navigate", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-customidamemo", + "miniview-close", + "miniview-tracefile_node_colors", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_1", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__exit_after_sorting_functions", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_imports_mangling", + "stddirtrees-misc__persisted_state_imports_mangling_2", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + "structs-asm_and_c", + ] + }, + "kernwin.create_empty_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__desktop_applied", + "plugins-lucid", + ] + }, + "kernwin.create_menu": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__add_menus", + "menus-add_custom", + ] + }, + "kernwin.create_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "toolbars-add_custom", + ] + }, + "kernwin.custom_viewer_jump": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.del_hotkey": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "idapython-examples__add_hotkey", + "idapython-misc2", + ] + }, + "kernwin.del_idc_hotkey": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "kernwin.delete_menu": { + "return": [ + 'bool', + ], + "tests": [ + "menus-add_custom", + ] + }, + "kernwin.delete_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "toolbars-add_custom", + ] + }, + "kernwin.detach_action_from_menu": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_menu", + "api-actions__detach_unexisting_from_menu", + "api-actions__run_edit_menu_populating_script_from_recent_scripts", + ] + }, + "kernwin.detach_action_from_popup": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__permanent_attach_to_popup", + ] + }, + "kernwin.detach_action_from_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_toolbar", + ] + }, + "kernwin.display_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-ui_hooks__desktop_applied", + "plugins-lucid", + "structview-jump", + ] + }, + "kernwin.ea2str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc3", + ] + }, + "kernwin.enable_chooser_item_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__colorize_chooser", + "idapython-examples__func_chooser_coloring", + ] + }, + "kernwin.execute_sync": { + "return": [ + 'int', + ], + "tests": [ + "frview-scrollbar", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-examples__wrap_idaview", + "idapython-execute_sync", + ] + }, + "kernwin.execute_ui_requests": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-uirequests", + ] + }, + "kernwin.find_widget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "actions-misc2", + "actions-misc4", + "console-restore", + "customidamemo-highlight4__identifier_nocase", + "customidamemo-highlight4__register_nocase", + "customidamemo-highlight4__regular_nocase", + "customidamemo-navigate3__jump_from_incompatible_place", + "debugger-regviews", + "desktops-misc__compat_old_window_titles", + "docks-close_with_middle_button", + "eaview-sync_pseudocode", + "enums-asm_and_c", + "forms-massiveclose", + "frview-resize", + "functions_window-misc__compat_find_widget", + "funstack-navigate", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "gruser-misc__node_info", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-on_view_click", + "hexrays-misc3__get_vdui_by_api", + "hexrays-navigate", + "idapython-api__kernwin", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-customidamemo", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__dump_extra_comments", + "idapython-examples__inject_command", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "miniview-close", + "miniview-tracefile_node_colors", + "plugins-hexrayspytools", + "plugins-lucid", + "pyqt-qabstractitemdelegate", + "pyqt-raw_widgets_in_tree", + "squishutils-drag", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_1", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__exit_after_sorting_functions", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_imports_mangling", + "stddirtrees-misc__persisted_state_imports_mangling_2", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + "structs-asm_and_c", + "structview-jump", + ] + }, + "kernwin.free_custom_icon": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + ] + }, + "kernwin.gen_disasm_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-misc2", + "idapython-interrupt_long_op", + "idapython-misc", + "tryblocks__big_blob", + ] + }, + "kernwin.get_action_checkable": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_checked": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_icon": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_label": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__dump_actions_list", + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_shortcut": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__dump_actions_list", + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_state": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_tooltip": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_visibility": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_chooser_data": { + "return": [ + ['str', '...'], + ], + "tests": [ + "chooser-misc__chooser_selection", + "idapython-examples__show_selected_using_get_chooser_data", + ] + }, + "kernwin.get_current_viewer": { + "return": [ + 'TWidget *', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "grview-api", + "grview-contextmenu", + "grview-gruser", + "grview-nodepropsUser", + "grview-rendering", + "idapython-api__kernwin", + "idapython-examples__list_stkvar_xrefs", + "idapython-place", + "idapython-readsel2", + "idapython_hr-hexrays_callback", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.get_current_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "api-actions__permanent_attach_to_chooser_popup", + "api-actions__permanent_attach_to_popup", + "console-actions", + "hexrays-navigate", + "idapython-api__kernwin_dbg", + "idapython-tform_type", + "squishutils-menus", + "tracing-misc", + ] + }, + "kernwin.get_custom_viewer_curline": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.get_custom_viewer_location": { + "return": [ + 'bool', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.get_custom_viewer_place": { + "return": [ + ('place_t', 'int', 'int'), + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "idapython-place", + "idaview-misc__callback_for_click_on_registers", + "plugins-hexlight_2016", + ] + }, + "kernwin.get_highlight": { + "return": [ + 'NoneType', + ('str', 'int'), + ], + "tests": [ + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "grview-contextmenu", + "grview-gruser", + "idapython-examples__list_stkvar_xrefs", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython_hr-hexrays_callback", + ] + }, + "kernwin.get_key_code": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexlight_2016", + ] + }, + "kernwin.get_navband_pixel": { + "return": [ + ('int', 'bool'), + ], + "tests": [ + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + ] + }, + "kernwin.get_registered_actions": { + "return": [ + ['str', '...'], + ], + "tests": [ + "api-actions__get_registered_actions", + "plugins-command_palette", + ] + }, + "kernwin.get_screen_ea": { + "return": [ + 'int', + ], + "tests": [ + "areas-killcb", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "gruser-misc__get_graph_viewer_idapython", + "idapython-cleanup", + "idapython-examples__bin_search", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dump_extra_comments", + "idapython-examples__dump_flowchart", + "idapython-examples__dump_func_info", + "idapython-examples__lines_rendering", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-examples__list_stkvar_xrefs", + "idapython-ui_hooks__misc", + "idapython-user_graphs", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-decompile", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds4", + "plugins-lucid", + "screenshots-misc__idapython_snippets", + ] + }, + "kernwin.get_synced_group": { + "return": [ + 'NoneType', + 'synced_group_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.get_view_renderer_type": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-misc4", + ] + }, + "kernwin.get_viewer_place_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.get_viewer_user_data": { + "return": [ + 'NoneType', + 'void *', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "idapython-examples__dump_selection", + "idapython-place", + ] + }, + "kernwin.get_widget_title": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__separators", + "desktops-misc__compat_old_window_titles", + "functions_window-misc__compat_find_widget", + "hexrays-navigate", + "idapython-api__kernwin_dbg", + "idapython-tform", + "idapython-tform_type", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "tracing-misc", + ] + }, + "kernwin.get_widget_type": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "console-actions", + "debugger-regviews_actions", + "idapython-examples__registers_context_menu", + "idapython-tform", + "idapython-tform_type", + "idapython_hr-examples__vds8_crash", + "plugins-lucid", + ] + }, + "kernwin.get_window_id": { + "return": [ + 'int', + ], + "tests": [ + "idapython-get_window_id", + ] + }, + "kernwin.hide_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.is_chooser_widget": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__ex_choose", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "squishutils-menus", + ] + }, + "kernwin.jobj_wrapper_t.get_dict": { + "return": [ + 'dict', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + ] + }, + "kernwin.jumpto": { + "return": [ + 'bool', + ], + "tests": [ + "grview-api", + "idapython-examples__bin_search", + "idapython-place", + "plugins-hexlight_2016", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.l_compare2": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.line_rendering_output_entries_refs_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__lines_rendering", + "plugins-lucid", + ] + }, + "kernwin.linearray_t.down": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.linearray_t.get_place": { + "return": [ + 'place_t', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.linearray_t.set_place": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.load_custom_icon": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "idapython-example_add_menu_item", + ] + }, + "kernwin.lookup_key_code": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexlight_2016", + ] + }, + "kernwin.msg_clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.msg_get_lines": { + "return": [ + ['str', '...'], + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.msg_save": { + "return": [ + 'bool', + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.open_disasm_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-misc4", + ] + }, + "kernwin.open_form": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__direct_call", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.open_navband_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + ] + }, + "kernwin.open_strings_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + ] + }, + "kernwin.place_t.as_enumplace_t": { + "return": [ + 'enumplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.place_t.as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.place_t.as_simpleline_place_t": { + "return": [ + 'NoneType', + 'simpleline_place_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-examples__colorize_pseudocode_lines", + "idapython-place", + ] + }, + "kernwin.place_t.as_structplace_t": { + "return": [ + 'structplace_t', + ], + "tests": [ + "idapython-readsel2", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.place_t.clone": { + "return": [ + 'place_t', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-place", + "plugins-hexlight_2016", + ] + }, + "kernwin.place_t.deserialize": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + ] + }, + "kernwin.place_t.generate": { + "return": [ + (['str', '...'], 'int', 'int', 'int'), + ], + "tests": [ + "idapython-place", + ] + }, + "kernwin.place_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + ] + }, + "kernwin.place_t.toea": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__lines_rendering", + "idapython-ui_hooks__misc", + ] + }, + "kernwin.place_t_as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-examples__jump_next_comment", + ] + }, + "kernwin.place_t_as_simpleline_place_t": { + "return": [ + 'simpleline_place_t', + ], + "tests": [ + "plugins-hexlight_2016", + "plugins-lucid", + ] + }, + "kernwin.process_ui_action": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__buggy_handler", + "api-actions__register_unregister", + "api-actions__register_unregister_lifecycle", + "api-actions__run_plugin_check_actions_disappeared", + "console-cli", + "idapython-examples__inject_command", + "idapython-idp_hooks2__coagulate_dref", + "idapython-uirequests", + "plugins-command_palette", + "telemetry-misc__basic", + ] + }, + "kernwin.quick_widget_commands_t.add": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + ] + }, + "kernwin.quick_widget_commands_t.populate_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc__ex_choose", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + "squishutils-menus", + ] + }, + "kernwin.read_range_selection": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython-read_selection_64", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds13", + ] + }, + "kernwin.read_selection": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.refresh_chooser": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__colorize_chooser", + "chooser-misc__refresh_and_check_selection", + "squishutils-menus", + ] + }, + "kernwin.refresh_custom_viewer": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_pseudocode_lines", + ] + }, + "kernwin.refresh_idaview": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-misc__refresh_and_check_selection", + ] + }, + "kernwin.refresh_idaview_anyway": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "grview-copyToClipboard__debugger", + "grview-copyToClipboard__debugger_noprefix_graph", + "grview-copyToClipboard__programmatic", + "grview-non_displayable_node", + "i18n-produce_file", + "idapython-examples__lines_rendering", + "idapython-misc2", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-switch_info", + "idapython_hr-decompile", + "idapython_hr-plugin_hexlit", + "idaview-misc__tryblocks", + "plugins-hexlight_2016", + "plugins-lucid", + "structs-xrefs", + ] + }, + "kernwin.refresh_navband": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.register_addon": { + "return": [ + 'int', + ], + "tests": [ + "plugins-command_palette", + "plugins-hexlight_2016", + ] + }, + "kernwin.register_timer": { + "return": [ + 'PyCapsule', + ], + "tests": [ + "gruser-stress", + "idapython-examples__register_timer", + "idapython-timers", + "idapython-waitdialog", + ] + }, + "kernwin.replace_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.restore_database_snapshot": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "kernwin.set_dock_pos": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc", + "address_details-misc__desktop", + "bookmarks-basic__enums", + "bookmarks-basic__enums_add_refresh", + "bookmarks-basic__enums_add_to_folder", + "bookmarks-basic__enums_edit_through_tree", + "bookmarks-basic__enums_hints", + "bookmarks-basic__enums_open_and_jump", + "bookmarks-basic__enums_open_empty_then_add", + "bookmarks-basic__enums_selection_after_delete", + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__hexview_add_refresh", + "bookmarks-basic__hexview_add_to_folder", + "bookmarks-basic__hexview_edit_through_tree", + "bookmarks-basic__hexview_hints", + "bookmarks-basic__hexview_open_and_jump", + "bookmarks-basic__hexview_open_empty_then_add", + "bookmarks-basic__hexview_selection_after_delete", + "bookmarks-basic__idaview", + "bookmarks-basic__idaview_add_refresh", + "bookmarks-basic__idaview_add_to_folder", + "bookmarks-basic__idaview_adding_bookmark_opens_then_selects", + "bookmarks-basic__idaview_edit_through_tree", + "bookmarks-basic__idaview_hints", + "bookmarks-basic__idaview_jump_browse_bookmarks_no_focus_transfer", + "bookmarks-basic__idaview_open_and_jump", + "bookmarks-basic__idaview_open_empty_then_add", + "bookmarks-basic__idaview_selection_after_delete", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs", + "bookmarks-basic__structs_add_refresh", + "bookmarks-basic__structs_add_to_folder", + "bookmarks-basic__structs_edit_through_tree", + "bookmarks-basic__structs_hints", + "bookmarks-basic__structs_open_and_jump", + "bookmarks-basic__structs_open_empty_then_add", + "bookmarks-basic__structs_selection_after_delete", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "bookmarks-misc__broken_bookmarks", + "bookmarks-misc__create_from_listing_while_in_folder", + "bookmarks-misc__delete_from_modal", + "bookmarks-misc__desktop", + "bookmarks-misc__jumping", + "bookmarks-misc__non_modal_lifecycle", + "bookmarks-misc__rendering", + "bookmarks-misc__same_desc", + "bookmarks-misc__toggle_from_arrows", + "chooser-columns__hide_columns", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__reinit_after_search", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-search_and_keys", + "coloredview-basic", + "console-cli", + "customidamemo-sync", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints", + "debugger-dwarf_shared_elf", + "debugger-misc4__bpt_hit_selects_bpt", + "debugger-regviews_actions", + "debugger-regviews_actions2__modify", + "debugger-regviews_colors", + "desktops-icons_and_titles__debugger", + "desktops-icons_and_titles__normal", + "desktops-load_save__save_default", + "desktops-misc__restore_positions", + "docks-close_persistent", + "docks-close_splitter_in_last_tab_position", + "docks-complex_docks", + "docks-dock_btns", + "docks-empty_areas", + "docks-floating_tabs", + "docks-hidden__hsplitter_in_floating_area", + "docks-hidden__hsplitter_in_hsplitter", + "docks-hidden__hsplitter_in_vsplitter", + "docks-hidden__tabs_in_floating_area", + "docks-hidden__tabs_in_hsplitter", + "docks-hidden__tabs_in_vsplitter", + "docks-hidden__vsplitter_in_floating_area", + "docks-hidden__vsplitter_in_hsplitter", + "docks-hidden__vsplitter_in_vsplitter", + "docks-hint_mode", + "docks-massive_docking", + "docks-misc2__re_tabify", + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-root_widget_always_visible", + "docks-set_dock_pos_empty_dst", + "docks-show_existent", + "docks-sizes", + "docks-toggle_splitter_rightmost_dock__within_tab", + "docks-toggle_splitter_rightmost_dock__without_tab", + "docks-two_areas", + "eaview-navigate", + "eaview-patch_bytes__chooser_multi", + "eaview-sync", + "eaview-sync_pseudocode", + "eaview-sync_reg", + "fonts-basic__debugger_widgets", + "fonts-basic__regular_widgets", + "forms-massiveclose", + "frview-markPos", + "frview-scrollbar", + "functions_window-misc__hiding_or_unhiding_doesnt_trigger_refresh", + "gruser-misc__check_onactivate", + "gruser-misc__edge_hints", + "gruser-misc__node_hints", + "gruser-stress", + "grview-rendering", + "grview-testgraph", + "hexrays-navigate5__modify_struct_no_refresh", + "hexrays-refresh_crash__refresh", + "hexview-longbytes", + "hexview-stats_hidden", + "hexview-sync_base", + "hexview-sync_base_newfile", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__registers_context_menu", + "idapython-get_window_id", + "idapython-tform_type", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__desktop_applied", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__modified_vds13_twice", + "idaview-hide_unhide", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__colors", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__double_click_ids", + "mainmsglist-misc__lines_shown_in_full", + "merge-misc__basic_frame", + "merge-misc__basic_idaview", + "merge-misc__navigate_regions_idaview", + "miniview-current_node", + "miniview-docks", + "miniview-node_buttons", + "miniview-pull_out", + "miniview-tracefile_node_colors", + "plugins-lucid", + "pyqt-tform2", + "screenshots-misc__idapython_snippets", + "scriptsnippets-debugger", + "scriptsnippets-inherit_cli", + "scriptsnippets-misc2__clone", + "scriptsnippets-misc2__clone_reload", + "scriptsnippets-misc2__line_separator", + "scriptsnippets-misc2__typing_text_doesnt_refresh_list", + "scriptsnippets-misc2__typing_text_doesnt_refresh_sorted_list", + "scriptsnippets-misc2__unicode", + "scriptsnippets-misc__debugger", + "segregs-misc__delete_refreshes_view", + "snippets-insert", + "squishutils-menus", + "squishutils-sizer", + "srcdbg-bitfields", + "srcdbg-dwarf_misc__gcc_bool", + "srcdbg-hints", + "srcdbg-idaq_locals", + "srcdbg-reload_dll", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "structview-jump", + "stylesheets-envvar", + "textarrows-misc__debugger_no_infinite_loop", + "textedit-misc__restored", + "tracing-misc2__no_interference", + "typeeditor-misc__cancel_edit", + "undo-misc__restored_on_desktop_reload", + "undo-misc__undo_history_reset_on_new_idb", + "undo-widgets__snippets", + "waitdialog-misc", + "watchlist-misc__update_on_rename", + ] + }, + "kernwin.set_highlight": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-highlight", + "customidamemo-highlight4__identifier_nocase", + "customidamemo-highlight4__register_nocase", + "customidamemo-highlight4__regular_nocase", + "grview-nodepropsUser", + ] + }, + "kernwin.set_nav_colorizer": { + "return": [ + 'NoneType', + 'dict', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.set_view_renderer_type": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + "idapython-misc4", + ] + }, + "kernwin.show_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.simplecustviewer_t.AddLine": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.ClearLines": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-custom_viewer", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Create": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.EditLine": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetCurrentLine": { + "return": [ + 'str', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetLineNo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetPos": { + "return": [ + ('int', 'int', 'int'), + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Jump": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "kernwin.simplecustviewer_t.RefreshCurrent": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.Show": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "training-test__AsmViewer_py", + ] + }, + "kernwin.str2user": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "idapython-switch_info", + "ppc-analysis_options", + "structs-asm_and_c", + "structs-create", + ] + }, + "kernwin.sync_source_t.get_register": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.sync_source_t.get_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.sync_source_t.is_widget": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.take_database_snapshot": { + "return": [ + ('bool', 'NoneType'), + ], + "tests": [ + "idapython-snapshots", + ] + }, + "kernwin.twinpos_t.place": { + "return": [ + 'NoneType', + 'enumplace_t', + 'idaplace_t', + 'structplace_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_enumplace_t": { + "return": [ + 'enumplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_simpleline_place_t": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.twinpos_t.place_as_structplace_t": { + "return": [ + 'structplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.unregister_action": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_registered_actions", + "api-actions__register_unregister", + "api-actions__register_unregister_lifecycle", + "api-actions__run_plugin_check_actions_disappeared", + "api-actions__unregister_core_actions", + "chooser-misc__chooser_selection", + "chooser-misc__ex_choose", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-example_add_menu_item", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__dump_extra_comments", + "idapython-examples__dump_selection", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-ctree_visitor__force_all_calls", + "plugins-command_palette", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "kernwin.unregister_timer": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-timers", + "idapython-waitdialog", + ] + }, + "kernwin.update_action_checkable": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.update_action_checked": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.update_action_icon": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_label": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_shortcut": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_tooltip": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_visibility": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.user_cancelled": { + "return": [ + 'bool', + ], + "tests": [ + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.warning": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__register_with_hotkey", + "api-actions__register_with_shortcut", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds21", + "squishutils-shortcuts", + ] + }, + "lines.COLSTR": { + "return": [ + 'str', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-hexrays_hooks__create_hint2", + "training-test__AsmViewer_py", + ] + }, + "lines.add_sourcefile": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "lines.del_extra_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "lines.generate_disasm_line": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__lines", + "idapython-custom_data", + "idapython-custom_data3", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-processor_module_mem", + "idapython_hr-examples__vds12", + "idapython_hr-hexrays_hooks__create_hint2", + "training-test__FindInstructions_py", + ] + }, + "lines.generate_disassembly": { + "return": [ + ('int', ['str', '...']), + ], + "tests": [ + "idapython-examples__jump_next_comment", + ] + }, + "lines.get_extra_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-examples__dump_extra_comments", + "idapython-extra_cmt", + "idapython-idb_hooks", + ] + }, + "lines.get_first_free_extra_cmtidx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "lines.set_user_defined_prefix": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__install_user_defined_prefix_compat", + ] + }, + "lines.tag_advance": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "lines.tag_remove": { + "return": [ + 'str', + ], + "tests": [ + "api-idapython__tag_remove", + "hexrays-misc2", + "idapython-custom_data", + "idapython-custom_data3", + "idapython-custom_fixup", + "idapython-examples__automatic_steps", + "idapython-examples__dump_selection", + "idapython-misc", + "idapython-place", + "idapython-processor_module_mem", + "idapython_hr-decompile", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + "training-test__FindInstructions_py", + "tryblocks__big_blob", + ] + }, + "lines.tag_skipcodes": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "lines.tag_strlen": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__tag_strlen", + "idapython-examples__jump_next_comment", + "idapython-misc", + ] + }, + "lines.update_extra_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-extra_cmt", + "idapython-idb_hooks", + ] + }, + "loader.base2file": { + "return": [ + 'int', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "loader.build_snapshot_tree": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "loader.extract_module_from_archive": { + "return": [ + ('NoneType', 'NoneType'), + ('str', 'str'), + ], + "tests": [ + "idapython-api__loader", + ] + }, + "loader.file2base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-base2file", + "idapython-misc3", + ] + }, + "loader.gen_file": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__produce_lst_file", + ] + }, + "loader.get_file_type_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "loader.get_path": { + "return": [ + 'str', + ], + "tests": [ + "i18n-files", + "idapython-examples__produce_c_file", + "idapython-examples__produce_lst_file", + "idapython-misc", + ] + }, + "loader.load_and_run_plugin": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_cpp_plugin", + "api-actions__run_plugin_check_actions_disappeared", + "customidamemo-sync", + "forms-open", + "grview-gruser_centernode", + "grview-testgraph", + "i18n-basic", + "idapython-misc5__test_evalpython", + "idapython-plugin__misc", + "idapython-plugin_alternative_path__load_and_run_plugin", + "idapython-ui_hooks__misc", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds19", + "objc-deleted_segms", + "plugins-comhelper__activate_plugin", + "plugins-comhelper__plugin_after_reload", + "plugins-interr_1827", + "plugins-navcolor__72", + "plugins-navcolor__current", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "loader.load_plugin": { + "return": [ + 'NoneType', + 'PyCapsule', + ], + "tests": [ + "dbg_restore_snapshot", + "idapython-misc2", + "idapython-plugin_alternative_path__load_plugin", + ] + }, + "loader.save_database": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "lumina.calc_func_metadata": { + "return": [ + ('int', 'bytes'), + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.create_simple_idb_diff_handler": { + "return": [ + 'simple_idb_diff_handler_t', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.diff_metadata": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_frame_desc_from_metadata": { + "return": [ + 'NoneType', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_insn_cmts_from_metadata": { + "return": [ + 'NoneType', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_type_from_metadata": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.get_server_connection": { + "return": [ + 'lumina_client_t', + ], + "tests": [ + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "lumina.lumina_client_t.push_md": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "lumina.score_metadata": { + "return": [ + 'int', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.split_metadata": { + "return": [ + 'dict', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "moves.bookmarks_t.erase": { + "return": [ + 'bool', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + ] + }, + "moves.lochist_entry_t.acquire_place": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "moves.lochist_entry_t.place": { + "return": [ + 'place_t', + ], + "tests": [ + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__jump_next_comment", + "structview-navigate2__custom_viewer_jump", + ] + }, + "moves.lochist_entry_t.renderer_info": { + "return": [ + 'renderer_info_t', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "gruser-misc__get_graph_viewer_idapython", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__jump_next_comment", + "idapython-user_graphs", + ] + }, + "moves.lochist_entry_t.set_place": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-examples__jump_next_comment", + ] + }, + "nalt.add_encoding": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "hexview-basic", + "hexview-edit2__outside_of_token", + "hexview-edit2__set_value_ff_to_undefined_bytes", + "hexview-edit2__text_eol_click_next_line_bytes", + "hexview-edit2__undo", + "hexview-edit2__undo_partial_edit", + "i18n-produce_file", + "i18n-strlits__set_default_strtype_to_specific_termchar", + "strings-misc__min_len", + "strlits-borland", + ] + }, + "nalt.clr_abits": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "nalt.del_encoding": { + "return": [ + 'bool', + ], + "tests": [ + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + ] + }, + "nalt.del_switch_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-switch_info", + ] + }, + "nalt.ea2node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "nalt.enum_import_names": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_imports", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_aflags": { + "return": [ + 'int', + ], + "tests": [ + "dwarf-load_options_fprots", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "nalt.get_alignment": { + "return": [ + 'int', + ], + "tests": [ + "idapython-alignment", + ] + }, + "nalt.get_archive_path": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_default_encoding_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__bin_search", + "idapython-examples__operand_changed", + ] + }, + "nalt.get_encoding_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_ida_notepad_text": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_imagebase": { + "return": [ + 'int', + ], + "tests": [ + "eaview-navigate_rebase", + "plugins-hexrayspytools", + ] + }, + "nalt.get_import_module_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__list_imports", + "idapython-import_modules", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_import_module_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_imports", + "idapython-import_modules", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_initial_ida_version": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_initial_idb_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_initial_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_item_color": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + ] + }, + "nalt.get_loader_format_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_op_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds21", + ] + }, + "nalt.get_refinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "nalt.get_srcdbg_paths": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_srcdbg_undesired_paths": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_str_encoding_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_strid": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_strtype_bpu": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_switch_info": { + "return": [ + 'NoneType', + 'switch_info_t', + ], + "tests": [ + "idapython-calc_switch_cases", + "idapython-processor_module_mem", + "idapython-switch_info", + ] + }, + "nalt.get_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-dwarf_shared_elf", + "idapython-funcs", + "idapython-tinfo_func", + ] + }, + "nalt.make_str_type": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "i18n-strlits__set_default_strtype_to_specific_termchar", + ] + }, + "nalt.retrieve_input_file_md5": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.retrieve_input_file_sha256": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_abits": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "nalt.set_alignment": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-alignment", + ] + }, + "nalt.set_archive_path": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_default_encoding_idx": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "hexview-basic", + "hexview-edit2__outside_of_token", + "hexview-edit2__set_value_ff_to_undefined_bytes", + "hexview-edit2__text_eol_click_next_line_bytes", + "hexview-edit2__undo", + "hexview-edit2__undo_partial_edit", + "i18n-produce_file", + "strings-misc__min_len", + "strlits-borland", + ] + }, + "nalt.set_ida_notepad_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_item_color": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + "themes-misc__produce_html", + "training-test__color_to_py", + ] + }, + "nalt.set_loader_format_name": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_op_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "nalt.set_source_linnum": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "nalt.set_srcdbg_paths": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_srcdbg_undesired_paths": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_switch_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-switch_info", + ] + }, + "nalt.set_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "name.NearestName.find": { + "return": [ + 'NoneType', + ], + "tests": [ + "training-test__CallStackWalk_py", + ] + }, + "name.NearestName.update": { + "return": [ + 'NoneType', + ], + "tests": [ + "training-test__CallStackWalk_py", + ] + }, + "name.append_struct_fields": { + "return": [ + 'int', + ('str', 'int'), + ], + "tests": [ + "structs-members", + ] + }, + "name.del_global_name": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "name.del_local_name": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "name.demangle_name": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-idp_hooks", + "idapython-names__compat", + "idapython-names__ida68", + "plugins-hexrayspytools", + ] + }, + "name.extract_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__compat", + ] + }, + "name.get_colored_demangled_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_long_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_short_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_debug_names": { + "return": [ + 'NoneType', + 'dict', + ], + "tests": [ + "idapython-examples__show_debug_names", + "idapython-modules", + "training-test__CallStackWalk_py", + ] + }, + "name.get_demangled_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__compat", + "idapython-names__ida68", + ] + }, + "name.get_ea_name": { + "return": [ + 'str', + ], + "tests": [ + "grview-jumpto_xref_from_other_tab", + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + "idapython-names__compat", + "idapython-names__ida68", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "name.get_long_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + "mainmsglist-misc__double_click_ids", + ] + }, + "name.get_name_ea": { + "return": [ + 'int', + ], + "tests": [ + "grview-jumpto_xref", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-appcall", + "idapython-breakpoints", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-misc3", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-examples__vds13", + "training-test__find_mgen_key_py", + ] + }, + "name.get_name_value": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-names__get_name_value", + ] + }, + "name.get_nice_colored_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "name.get_nlist_ea": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_nlist_name": { + "return": [ + 'str', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_nlist_size": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_short_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + "plugins-hexrayspytools", + ] + }, + "name.get_visible_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.is_ident": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.set_cp_validity": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-i18n", + "exportdata-basic", + "mainmsglist-misc__double_click_addresses_space", + ] + }, + "name.set_name": { + "return": [ + 'bool', + ], + "tests": [ + "undo-widgets__recent_scripts", + ] + }, + "netnode.exist": { + "return": [ + 'bool', + ], + "tests": [ + "prview-paths", + ] + }, + "netnode.netnode.altdel": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.altfirst": { + "return": [ + 'int', + ], + "tests": [ + "prview-paths", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + ] + }, + "netnode.netnode.altlast": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "netnode.netnode.altnext": { + "return": [ + 'int', + ], + "tests": [ + "prview-paths", + ] + }, + "netnode.netnode.altset": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "netnode.netnode.altshift": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.altval": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "idapython-misc2", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.charval_ea": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-toggle", + ] + }, + "netnode.netnode.get_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-netnode", + "plugins-hexrayspytools", + "prview-paths", + ] + }, + "netnode.netnode.getblob": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-netnode", + "prview-paths", + ] + }, + "netnode.netnode.getclob": { + "return": [ + 'str', + ], + "tests": [ + "notepad-misc", + ] + }, + "netnode.netnode.index": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "netnode.netnode.kill": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-netnode", + ] + }, + "netnode.netnode.setblob": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-netnode", + "idapython_hr-examples__vds3", + "notepad-misc", + ] + }, + "netnode.netnode.supset": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_full_tree", + "idapython-netnode", + "plugins-hexrayspytools", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.supshift": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.supstr": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "idapython-netnode", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.supval": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-netnode", + ] + }, + "offset.get_offset_expr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "offset.op_plain_offset": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "pro.boolvec_t.at": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.back": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.front": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.ea_pointer.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + ] + }, + "pro.ea_pointer.cast": { + "return": [ + 'ea_t *', + ], + "tests": [ + "idapython-misc4", + ] + }, + "pro.ea_pointer.frompointer": { + "return": [ + 'ea_pointer', + ], + "tests": [ + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "pro.ea_pointer.value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-misc4", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "pro.eavec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.eavec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.eavec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.eavec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.eavec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.eavec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds12", + ] + }, + "pro.int64vec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int_pointer.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__is_sp_based", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-ea", + ] + }, + "pro.int_pointer.frompointer": { + "return": [ + 'int_pointer', + ], + "tests": [ + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__is_sp_based", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "pro.int_pointer.value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-ea", + ] + }, + "pro.intvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds17", + ] + }, + "pro.intvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "pro.intvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "pro.longlongvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.str2user": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__pro", + "idapython_hr-examples__vds5", + ] + }, + "pro.strvec_t.push_back": { + "return": [ + 'simpleline_t', + ], + "tests": [ + "idapython-misc", + ] + }, + "pro.strvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + ] + }, + "pro.svalvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "pro.svalvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "pro.svalvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.tid_array.cast": { + "return": [ + 'ea_t *', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + ] + }, + "pro.uint64vec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uint64vec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uintvec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.uintvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + ] + }, + "pro.uintvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + ] + }, + "pro.uintvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uintvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.uintvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-examples__vds12", + ] + }, + "pro.ulonglongvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.ulonglongvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.uvalvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uvalvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.uvalvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds12", + ] + }, + "problems.forget_problem": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc", + ] + }, + "problems.get_problem": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_problems", + ] + }, + "problems.get_problem_desc": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-misc", + ] + }, + "problems.get_problem_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__list_problems", + ] + }, + "problems.remember_problem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "range.array_of_rangesets.push_back": { + "return": [ + 'rangeset_t', + ], + "tests": [ + "idapython-misc4", + ] + }, + "range.range_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__func_chooser_coloring", + ] + }, + "range.rangeset_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc4", + ] + }, + "range.rangeset_t.getrange": { + "return": [ + 'range_t', + ], + "tests": [ + "idapython-misc4", + "idapython_hr-base_classes", + ] + }, + "range.rangeset_t.nranges": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "range.rangevec_base_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds13", + ] + }, + "registry.reg_data_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_exists": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_binary": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_int": { + "return": [ + 'int', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_string": { + "return": [ + 'str', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_strlist": { + "return": [ + ['str', '...'], + ], + "tests": [ + "registry-misc__strlist", + ] + }, + "registry.reg_subkey_subkeys": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_subkey_values": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_update_filestrlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-recent_scripts", + ] + }, + "registry.reg_update_strlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "registry-misc__strlist", + ] + }, + "registry.reg_write_binary": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_write_int": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_write_string": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "search.find_binary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "training-test__FindInstructions_py", + ] + }, + "search.find_text": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search2__idaview_across_hidden_function", + ] + }, + "segment.add_segm": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + ] + }, + "segment.add_segm_ex": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-base2file", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "segment.del_segm": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "segs-manip", + "segs-offset_xrefs", + ] + }, + "segment.get_defsr": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + ] + }, + "segment.get_first_seg": { + "return": [ + 'segment_t', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "segment.get_segm_by_name": { + "return": [ + 'segment_t', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + ] + }, + "segment.get_segm_class": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "segment.get_segm_name": { + "return": [ + 'str', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-breakpoints", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.get_segm_qty": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.get_selector_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc3", + ] + }, + "segment.get_visible_segm_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "segment.getn_selector": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython-misc3", + ] + }, + "segment.getnseg": { + "return": [ + 'segment_t', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.getseg": { + "return": [ + 'NoneType', + 'segment_t', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "api-idapython_nocompat_695__idc", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-api__segment", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__colorize_disassembly", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-savefile", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-api", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__idapython_snippets", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "segment.rebase_program": { + "return": [ + 'int', + ], + "tests": [ + "eaview-navigate_rebase", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + ] + }, + "segment.segment_t.is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__segment", + ] + }, + "segment.segment_t.update": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + "idapython-misc", + ] + }, + "segment.segment_t.use64": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__segment", + ] + }, + "segment.sel2para": { + "return": [ + 'int', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "segment.set_defsr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "segment.set_segm_addressing": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + ] + }, + "segment.set_segment_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "segment.setup_selector": { + "return": [ + 'int', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "segregs.get_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + ] + }, + "segregs.get_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.get_sreg_ranges_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.getn_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.split_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "strlist.build_strlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + "strings-misc__idapython1", + "strings-misc__idapython3", + ] + }, + "strlist.get_strlist_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__idautils", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "strlist.get_strlist_options": { + "return": [ + 'strwinsetup_t', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "strlist.get_strlist_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + ] + }, + "struct.add_struc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "structs-create", + "structs-members", + ] + }, + "struct.add_struc_member": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "stackview-misc", + "structs-members", + ] + }, + "struct.del_struc": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + "stddirtrees-misc__cut_and_paste_structures", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + "structview-navigate", + ] + }, + "struct.del_struc_member": { + "return": [ + 'bool', + ], + "tests": [ + "stroff-misc", + "structs-asm_and_c", + ] + }, + "struct.get_first_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_innermost_member": { + "return": [ + ('member_t', 'struc_t', 'int'), + ], + "tests": [ + "idapython-structs", + ] + }, + "struct.get_last_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_member": { + "return": [ + 'NoneType', + 'member_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__idautils", + "idapython-idb_hooks", + "idapython-misc", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "stackview-misc", + "structs-members", + ] + }, + "struct.get_member_by_fullname": { + "return": [ + 'NoneType', + ('member_t', 'struc_t'), + ], + "tests": [ + "structs-members", + ] + }, + "struct.get_member_by_id": { + "return": [ + 'NoneType', + ('member_t', 'str', 'struc_t'), + ], + "tests": [ + "structs-members", + ] + }, + "struct.get_member_by_name": { + "return": [ + 'NoneType', + 'member_t', + ], + "tests": [ + "funstack-misc", + "idapython-examples__list_stkvar_xrefs", + "structs-members", + "structs-xrefs", + ] + }, + "struct.get_member_cmt": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.get_member_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__idautils", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "structs-members", + ] + }, + "struct.get_member_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idautils", + "idapython-structs", + ] + }, + "struct.get_member_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "funstack-misc", + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + ] + }, + "struct.get_next_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_or_guess_member_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-print_tinfo", + ] + }, + "struct.get_struc": { + "return": [ + 'NoneType', + 'struc_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__idautils", + "idapython-api__struct", + "idapython-examples__create_structure_programmatically", + "idapython-examples__list_stkvar_xrefs", + "idapython-idb_hooks", + "idapython-misc", + "idapython-structs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "stddirtrees-misc__cut_and_paste_structures", + "stroff-misc", + "structs-asm_and_c", + "structs-deps", + "structs-members", + "structs-produce_file", + "structs-xrefs", + "structview-add_fields", + "structview-navigate", + ] + }, + "struct.get_struc_by_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + "structview-modify_align", + ] + }, + "struct.get_struc_cmt": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.get_struc_first_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-print_tinfo", + "idapython-xrefs", + ] + }, + "struct.get_struc_id": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + "idapython-api__struct", + "idapython-examples__create_structure_programmatically", + "idapython-idb_hooks", + "idapython-structs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "stddirtrees-misc__cut_and_paste_structures", + "strlits-borland", + "stroff-misc", + "structs-members", + "structview-navigate", + "structview-navigate2__custom_viewer_jump", + ] + }, + "struct.get_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-navigate2__custom_viewer_jump", + ] + }, + "struct.get_struc_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + "structs-members", + "structview-modify_align", + ] + }, + "struct.get_struc_next_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-print_tinfo", + "idapython-xrefs", + ] + }, + "struct.get_struc_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + ] + }, + "struct.get_struc_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + ] + }, + "struct.is_member_id": { + "return": [ + 'bool', + ], + "tests": [ + "structs-members", + ] + }, + "struct.member_t.get_soff": { + "return": [ + 'int', + ], + "tests": [ + "funstack-misc", + ] + }, + "struct.member_t.has_ti": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + ] + }, + "struct.set_member_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.set_member_name": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-funcs", + ] + }, + "struct.set_member_tinfo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + ] + }, + "struct.set_member_type": { + "return": [ + 'bool', + ], + "tests": [ + "structs-members", + ] + }, + "struct.set_struc_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.struc_t.get_member": { + "return": [ + 'member_t', + ], + "tests": [ + "idapython-api__struct", + ] + }, + "struct.visit_stroff_fields": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "structs-members", + ] + }, + "tryblks.add_tryblk": { + "return": [ + 'int', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "tryblks.del_tryblks": { + "return": [ + 'NoneType', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "tryblks.get_tryblks": { + "return": [ + 'int', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "typeinf.add_til": { + "return": [ + 'int', + ], + "tests": [ + "til-loaded_til", + ] + }, + "typeinf.alloc_type_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + "idapython-tinfo_manip", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.apply_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__replay_prototypes_changes", + "idapython-tinfo_manip", + ] + }, + "typeinf.apply_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__idc", + "idapython-api__typeinf", + "idapython-misc", + "structs-members", + ] + }, + "typeinf.argloc_t.atype": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_func", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "typeinf.argloc_t.consume_scattered": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + ] + }, + "typeinf.argloc_t.is_ea": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_reg1": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_reg2": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_rrel": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_stkoff": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.reg1": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks", + "idapython-tinfo_func", + ] + }, + "typeinf.argloc_t.set_reg1": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks", + "idapython_hr-examples__vds21", + ] + }, + "typeinf.argloc_t.set_reg2": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.argloc_t.set_stkoff": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + "idapython_hr-examples__vds4", + ] + }, + "typeinf.argloc_t.stkoff": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argpartvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + ] + }, + "typeinf.argpartvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.choose_named_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.del_numbered_type": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-misc__manipulate_programmatically", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__cut_and_paste_local_types", + ] + }, + "typeinf.enum_member_vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.for_all_arglocs": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.get_idainfo_by_type": { + "return": [ + ('bool', 'int', 'int', 'NoneType', 'int'), + ('bool', 'int', 'int', 'opinfo_t *', 'int'), + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.get_idati": { + "return": [ + 'til_t', + ], + "tests": [ + "dirtree-misc__manipulate_programmatically", + "idapython-examples__replay_prototypes_changes", + "idapython-idb_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + ] + }, + "typeinf.get_named_type": { + "return": [ + ('int', 'bytes', 'bytes', 'NoneType', 'NoneType', 'int', 'int'), + ], + "tests": [ + "idapython-tinfo_manip", + "stddirtrees-misc__cut_and_paste_local_types", + ] + }, + "typeinf.get_named_type64": { + "return": [ + ('int', 'bytes', 'NoneType', 'NoneType', 'NoneType', 'int', 'int'), + ], + "tests": [ + "til-redeclare_named_type", + ] + }, + "typeinf.get_numbered_type": { + "return": [ + ('bytes', 'NoneType', 'NoneType', 'NoneType', 'int'), + ('bytes', 'bytes', 'NoneType', 'NoneType', 'int'), + ], + "tests": [ + "api-idapython__get_set_numbered_type", + "idapython-tinfo_udt", + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.get_numbered_type_name": { + "return": [ + 'str', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + ] + }, + "typeinf.get_stock_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.get_type_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.guess_tinfo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.idc_get_local_type_name": { + "return": [ + 'str', + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_get_local_type_raw": { + "return": [ + ('bytes', 'bytes'), + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_parse_decl": { + "return": [ + 'NoneType', + ('str', 'bytes', 'bytes'), + ], + "tests": [ + "idapython-api__idc", + "idapython-misc", + "plugins-hexrayspytools", + ] + }, + "typeinf.idc_parse_types": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idc", + "structs-asm_and_c", + "til-loaded_til", + ] + }, + "typeinf.idc_print_type": { + "return": [ + 'str', + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_set_local_type": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.import_type": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + "til-redeclare_named_type", + ] + }, + "typeinf.load_til": { + "return": [ + 'til_t', + ], + "tests": [ + "til-redeclare_named_type", + ] + }, + "typeinf.parse_decl": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-idb_hooks", + "idapython-tinfo_manip", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds_modify_user_lvars", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.print_argloc": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.print_decls": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc4", + "til-misc", + "til-nonlocal_deps", + "til-simple_export", + ] + }, + "typeinf.print_tinfo": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "funstack-misc", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-print_tinfo", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-examples__vds17", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "typeinf.reginfovec_t.push_back": { + "return": [ + 'NoneType', + 'reg_info_t', + ], + "tests": [ + "idapython-funcs", + ] + }, + "typeinf.regobjvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.remove_pointer": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + ] + }, + "typeinf.remove_tinfo_pointer": { + "return": [ + ('bool', 'NoneType'), + ('bool', 'str'), + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.set_abi_name": { + "return": [ + 'bool', + ], + "tests": [ + "ppc-analysis_options", + ] + }, + "typeinf.set_numbered_type": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + ] + }, + "typeinf.tinfo_t.calc_udt_aligns": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.clr_const": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.copy": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.create_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.create_ptr": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.create_udt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.del_attr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.del_attrs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.deserialize": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__replay_prototypes_changes", + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_manip", + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.tinfo_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__typeinf", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "typeinf.tinfo_t.equals_to": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_array_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_attr": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_enum_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.tinfo_t.get_func_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-funcs", + "idapython-tinfo_func", + ] + }, + "typeinf.tinfo_t.get_named_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "structs-members", + ] + }, + "typeinf.tinfo_t.get_numbered_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + ] + }, + "typeinf.tinfo_t.get_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_pointed_object": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_ptrarr_objsize": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_rettype": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-tinfo_manip", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_stock": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds4", + ] + }, + "typeinf.tinfo_t.get_type_name": { + "return": [ + 'str', + ], + "tests": [ + "structs-members", + ] + }, + "typeinf.tinfo_t.get_udt_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "idapython-tinfo_udt", + ] + }, + "typeinf.tinfo_t.is_forward_decl": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.is_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "typeinf.tinfo_t.is_ptr": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.is_udt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "plugins-hexrayspytools", + "structs-members", + ] + }, + "typeinf.tinfo_t.is_union": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "typeinf.tinfo_t.serialize": { + "return": [ + ('bytes', 'NoneType', 'NoneType'), + ('bytes', 'bytes', 'NoneType'), + ], + "tests": [ + "idapython-tinfo_manip", + "structs-members", + ] + }, + "typeinf.tinfo_t.set_attr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_named_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_numbered_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.tinfo_visitor_t.apply_to": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "typeinf.type_attrs_t.push_back": { + "return": [ + 'type_attr_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.udtmembervec_template_t.push_back": { + "return": [ + 'NoneType', + 'udt_member_t', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-tinfo_manip", + "plugins-hexrayspytools", + ] + }, + "typeinf.valstrvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "ua.construct_macro": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.create_insn": { + "return": [ + 'int', + ], + "tests": [ + "idaview-hints__instruction_gets_deleted", + ] + }, + "ua.decode_insn": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__idc", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_stkvar_xrefs", + "idapython-funcs", + "idapython-idp_hooks", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-misc3", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-ui_hooks__misc", + "idapython-user_graphs", + "ppc-analysis_options", + "training-test__CallStackWalk_py", + "training-test__find_mgen_key_py", + "training-test__find_ret_py", + ] + }, + "ua.decode_preceding_insn": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-misc", + ] + }, + "ua.decode_prev_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-processor_module_mem", + ] + }, + "ua.get_dtype_by_size": { + "return": [ + 'int', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-debugger", + "idapython-misc", + ] + }, + "ua.get_dtype_size": { + "return": [ + 'int', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + ] + }, + "ua.get_immvals": { + "return": [ + ['int', '...'], + ], + "tests": [ + "idapython-misc2", + ] + }, + "ua.insn_t.add_cref": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.add_dref": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.add_off_drefs": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.create_op_data": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.create_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.get_canon_feature": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.get_canon_mnem": { + "return": [ + 'str', + ], + "tests": [ + "idapython-ui_hooks__misc", + ] + }, + "ua.insn_t.get_next_byte": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.get_next_dword": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.get_next_word": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.op_t.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.op_t.is_reg": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + ] + }, + "ua.outctx_base_t.flush_outbuf": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.gen_cmt_line": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "ua.outctx_base_t.out_btoa": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_char": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_name_expr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + ] + }, + "ua.outctx_base_t.out_printf": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + ] + }, + "ua.outctx_base_t.out_register": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_spaces": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + ] + }, + "ua.outctx_base_t.out_symbol": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_tagoff": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_tagon": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.set_gen_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_t.out_custom_mnem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "plugins-procext_py", + ] + }, + "ua.outctx_t.out_data": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + ] + }, + "ua.outctx_t.out_mnem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_t.out_mnemonic": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_t.out_one_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "xref.add_cref": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + ] + }, + "xref.add_dref": { + "return": [ + 'bool', + ], + "tests": [ + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + ] + }, + "xref.calc_switch_cases": { + "return": [ + 'cases_and_targets_t', + ], + "tests": [ + "idapython-calc_switch_cases", + ] + }, + "xref.del_cref": { + "return": [ + 'bool', + ], + "tests": [ + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + ] + }, + "xref.del_dref": { + "return": [ + 'NoneType', + ], + "tests": [ + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + ] + }, + "xref.get_first_cref_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "screenshots-misc__idapython_snippets", + ] + }, + "xref.get_next_cref_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "screenshots-misc__idapython_snippets", + ] + }, + "xref.xrefblk_t.first_from": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "xref.xrefblk_t.first_to": { + "return": [ + 'bool', + ], + "tests": [ + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + ] + }, + "xref.xrefblk_t.next_from": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "xref.xrefblk_t.next_to": { + "return": [ + 'bool', + ], + "tests": [ + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + ] + }, +} diff --git a/tools/compare_traces.py b/tools/compare_traces.py new file mode 100755 index 0000000..040bfe7 --- /dev/null +++ b/tools/compare_traces.py @@ -0,0 +1,169 @@ +#!/usr/bin/python3 + +import glob +import os +import sys +import ast +import re + +class args_t: + def __init__(self, static): + self.static = static + +try: + import idaapi + # running as f.i.: idat -B -t -Scompare_traces.py -Loutput.log + args = args_t(False) +except: + # running stand-alone - static analysis + args = args_t(True) + +#----------------------------------------------------------------------- +# used by default, if no option -s + +class runtime_analysis_t: + def load(self): + self._import_all_idapython() + + self.funcs = set() + for module in self._idapython_modules(): + self.level = [module.__name__] + self._examine(module) + + # a variation of tests/t2/phases/tests/trace_idapython_calls_idapythonrc.py, + # idapython_wrapper_t._wrap() + + def _examine(self, obj): + for name in dir(obj): + # ignore "internals" for now + if name.startswith("_"): + continue + if name not in obj.__dict__: + continue + + child = obj.__dict__[name] # different from getattr(...) + + if not hasattr(child, "__class__"): # f.i. SWIG's cvar, "C global variable" + continue + typename = child.__class__.__name__ + + if typename == "type": # class + self.level.append(name) + self._examine(child) + self.level.pop() + elif typename in ("function", "staticmethod"): + self.funcs.add(".".join(self.level + [name])) + + def _import_all_idapython(self): + for name in os.listdir(os.path.dirname(idaapi.__file__)): + name, ext = os.path.splitext(name) + if name.startswith("ida_") and ext == ".py": + __import__(name) + + def _idapython_modules(self): + for name in sorted(sys.modules): + if name.startswith("ida_"): + yield sys.modules[name] + +#----------------------------------------------------------------------- +# used only on option -s + +class static_analysis_t(ast.NodeVisitor): + def __init__(self): + super().__init__() + + def load(self, basedir): + self.funcs = set() + for pathname in glob.glob(os.path.join(basedir, "ida_*.py")): + self._examine(pathname) + + def _examine(self, pathname): + module, _ = os.path.splitext(os.path.basename(pathname)) + + with open(pathname, "r") as f: + tree = ast.parse(f.read()) + + self.level = [module] + self.generic_visit(tree) + + def visit_ClassDef(self, node): + self.level.append(node.name) + super().generic_visit(node) + self.level.pop() + + def visit_FunctionDef(self, node): + if node.name.startswith("_") and not node.name.startswith("__"): + return + + self.funcs.add(".".join(self.level + [node.name])) + # skip entering the node's body + +#----------------------------------------------------------------------- +class call_traces_t(object): + def load(self, path): + with open(path, "r") as f: + content = ast.literal_eval(f.read()) + + self.funcs = set() + prefix = "ida_" + for key in content: + if key == "#empty": + for fun in content[key]: + self.funcs.add(prefix + fun) + else: + self.funcs.add(prefix + key) + +#----------------------------------------------------------------------- +def compare(analysis_funcs, runtime_funcs): + check_diff = runtime_funcs - analysis_funcs + if check_diff: + print("? Strange, functions tested but not in the API:") + for func in sorted(check_diff): + print(" ", func) + + diff = analysis_funcs - runtime_funcs + print("Coverage: {:.1f}%".format( + 100 * (1 - len(diff) / len(analysis_funcs)) + )) + if diff: + print("Untested functions:") + for func in sorted(diff): + print(" ", func) + +#----------------------------------------------------------------------- +def get_dirs(): + # TODO + py_ver = 3 + this_dir = os.path.dirname(__file__) + api_dir = os.path.abspath(os.path.join( + this_dir, "..", "..", "..", + "bin", "x64_linux_gcc", "python", str(py_ver) + )) + + return this_dir, api_dir + +#----------------------------------------------------------------------- +def main(): + this_dir, api_dir = get_dirs() + + if args.static: + print("Static analysis...") + analysis = static_analysis_t() + analysis.load(api_dir) + else: + print("Runtime analysis...") + analysis = runtime_analysis_t() + analysis.load() + + print("Reading traces...") + call_traces = call_traces_t() + call_traces.load(os.path.join(this_dir, "collected_traces.txt")) + + print("Comparing...") + compare(analysis.funcs, call_traces.funcs) + + if "idaapi" in sys.modules: + # running inside idat - get out + idaapi.qexit(0) + +main() diff --git a/tools/deploy.py b/tools/deploy.py index 86cff53..09718de 100644 --- a/tools/deploy.py +++ b/tools/deploy.py @@ -23,7 +23,6 @@ parser.add_argument("-w", "--pywraps", required=True) parser.add_argument("-d", "--interface-dependencies", type=str, required=True) parser.add_argument("-l", "--lifecycle-aware", default=False, action="store_true") parser.add_argument("-v", "--verbose", default=False, action="store_true") -parser.add_argument("-b", "--bc695", default=False, action="store_true") parser.add_argument("-x", "--xml-doc-directory", required=True) args = parser.parse_args() @@ -90,31 +89,18 @@ def apply_tags(template_str, input_str, tags, verbose, path): print("Failed to match <%s> source expression against '%s', skipping...!" % (desc, expr_str)) continue - is_695_bwcompat = desc == "pycode_BC695" - - if not is_695_bwcompat: - # find pattern in destination - dest = expr.search(template_str) - if not dest: - raise Exception("Found <%s> for module '%s' in input (%s), but failed to match in destination" % ( - desc, expr_str, path)) + # find pattern in destination + dest = expr.search(template_str) + if not dest: + raise Exception("Found <%s> for module '%s' in input (%s), but failed to match in destination" % ( + desc, expr_str, path)) # accumulate all the strings to be replaced replaces = [] for src in matches: replaces.append(src) - if is_695_bwcompat: - if args.bc695: - r2 = [] - for r in replaces: - rlines = r.split("\n") - rlines = map(lambda l: " %s" % l, filter(lambda l: len(l.strip()), rlines)) - r2.append("\n".join(rlines)) - replaces = ["", "if _BC695:"] + r2 + ["\n"] - template_str = template_str + "%pythoncode %{" + "\n".join(replaces) + "%}" - else: - template_str = template_str[:dest.start(1)] + "\n".join(replaces) + template_str[dest.end(1):] + template_str = template_str[:dest.start(1)] + "\n".join(replaces) + template_str[dest.end(1):] return template_str @@ -142,8 +128,7 @@ def deploy(module, template, output, pywraps, iface_deps, lifecycle_aware, verbo ('inline', make_re('inline', tagname, '//')), ('decls', make_re('decls', tagname, '//')), ('init', make_re('init', tagname, '//')), - ('pycode_BC695', make_re('pycode_BC695', tagname, '#')), - ) + ) with open(path) as fin: input_str = fin.read() diff --git a/tools/deploy/header.i.in b/tools/deploy/header.i.in index 50946c1..5bf964e 100644 --- a/tools/deploy/header.i.in +++ b/tools/deploy/header.i.in @@ -1,5 +1,10 @@ #ifndef __HEADER_I__ #define __HEADER_I__ + +%begin %{ +#define PY_SSIZE_T_CLEAN 1 +%} + %{ #ifndef USE_DANGEROUS_FUNCTIONS #define USE_DANGEROUS_FUNCTIONS 1 @@ -15,6 +20,10 @@ #define SWIG_PYTHON_LEGACY_BOOL 1 +// Have SWiG flatten the hierarchy of types +// (instead of plain ignoring nested ones.) +%feature("flatnested"); + %{ class plugin_t; #ifdef __NT__ @@ -70,6 +79,19 @@ extern plugin_t PLUGIN; %ignore qlist::const_iterator::operator--; %ignore qlist::reverse_iterator::operator--; %ignore qlist::const_reverse_iterator::operator--; +%ignore qlist::iterator::operator==; +%ignore qlist::const_iterator::operator==; +%ignore qlist::reverse_iterator::operator==; +%ignore qlist::const_reverse_iterator::operator==; +%ignore qlist::iterator::operator!=; +%ignore qlist::const_iterator::operator!=; +%ignore qlist::reverse_iterator::operator!=; +%ignore qlist::const_reverse_iterator::operator!=; +%ignore qlist::iterator; +%ignore qlist::const_iterator; +%ignore qlist::reverse_iterator; +%ignore qlist::const_reverse_iterator; + // To be used e.g., when a '#define' in the source code // defines a uint32 value with the highest bit set, so that @@ -194,24 +216,6 @@ extern plugin_t PLUGIN; import ida_idaapi } -#ifdef BC695 -%pythoncode { -import sys -_BC695 = sys.modules["__main__"].IDAPYTHON_COMPAT_695_API - -if _BC695: - ## This is a helper for replacing an existing function, with a wrapper - ## providing backwards-compatibility for API 6.95 -- typically because - ## the number/types of arguments changed, while the function name itself - ## remained the same in 7.0. - ## (Note that this shouldn't be used for functions that don't exist - ## in the vanilla 7.0 API, such as 'choose_named_type2'.) - def bc695redef(func): - ida_idaapi._BC695.replace_fun(func) - return func -} -#endif // BC695 - //--------------------------------------------------------------------- %extend qvector { inline size_t __len__() const { return $self->size(); } @@ -322,6 +326,42 @@ if _BC695: } } +%define %qlist_template(QLIST_TYPE, ELEMENT_TYPE) +// a typedef for the C++ side +%{ +typedef qlist<ELEMENT_TYPE>::iterator QLIST_TYPE##_iterator; +%} +// we need a concrete type for the iterators, so SWiG properly +// generates type information, including a destructor (otherwise +// calling mylist.begin() will cause an ABORT for lack of dtor.) +class QLIST_TYPE##_iterator {}; +%extend QLIST_TYPE##_iterator { + const ELEMENT_TYPE &cur { return *(*self); } + void __next__(void) { (*self)++; } + bool operator==(const QLIST_TYPE##_iterator *x) const { return &(self->operator*()) == &(x->operator*()); } + bool operator!=(const QLIST_TYPE##_iterator *x) const { return &(self->operator*()) != &(x->operator*()); } + %pythoncode { + next = __next__ + } +}; +%extend qlist<ELEMENT_TYPE> { + QLIST_TYPE##_iterator begin() { return self->begin(); } + QLIST_TYPE##_iterator end(void) { return self->end(); } + QLIST_TYPE##_iterator insert(QLIST_TYPE##_iterator p, const ELEMENT_TYPE& x) { return self->insert(p, x); } + void erase(QLIST_TYPE##_iterator p) { self->erase(p); } +}; +%ignore qlist< ELEMENT_TYPE >::insert(iterator); +%ignore qlist< ELEMENT_TYPE >::insert(iterator, const ELEMENT_TYPE &); +%ignore qlist< ELEMENT_TYPE >::insert(iterator, iterator, iterator); +%ignore qlist< ELEMENT_TYPE >::erase(iterator); +%ignore qlist< ELEMENT_TYPE >::erase(iterator, iterator); +%ignore qlist< ELEMENT_TYPE >::begin(); +%ignore qlist< ELEMENT_TYPE >::begin() const; +%ignore qlist< ELEMENT_TYPE >::end(); +%ignore qlist< ELEMENT_TYPE >::end() const; +%template(QLIST_TYPE) qlist<ELEMENT_TYPE>; +%enddef + #if IDAPYTHON_MODULE_hexrays %define %ida_hexrays_wrapper_exception_catch() catch ( const vd_failure_t &e ) { __raise_vdf(e); SWIG_fail; } @@ -1141,7 +1181,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( if ( ok ) { insn_t tmp; - ok = decode_insn(&tmp, ea_t(ea)); + ok = decode_insn(&tmp, ea_t(ea)) > 0; if ( ok ) *out = tmp; } @@ -1833,6 +1873,8 @@ ${NONNULL_TYPEMAPS} bool call_py_testf_t(flags_t flags, void *ud) { PYW_GIL_CHECK_LOCKED_SCOPE(); + if ( PyErr_Occurred() ) + return false; PyObject *py_callable = (PyObject *) ud; QASSERT(0, PyCallable_Check(py_callable)); newref_t py_flags(PyLong_FromUnsignedLong(flags)); diff --git a/tools/docs/epytext.py b/tools/docs/epytext.py new file mode 100755 index 0000000..7116cd6 --- /dev/null +++ b/tools/docs/epytext.py @@ -0,0 +1,309 @@ + +import re + +class HR_Epytext: + def __init__(self, text): + self.html_translation = { + "&" : "&", + "<" : "<", + ">" : ">", + "\"": """, + "'" : "'" + } + + identifier = r"[a-zA-Z_][a-zA-Z_0-9]*" + parameter = r"{}(?:=[^,)]*)?".format(identifier) + macro_tail = r"(?:[^,}]+,)*(?:[^,}]+})?" + + self.re_non_blank = re.compile(r"[^ ]") + self.re_identifier = re.compile(r" *({})" \ + .format(identifier)) + self.re_signature = re.compile(r"^ *{} *\( *({} *(, *{} *)*)?\) *(->.*)?$" \ + .format(identifier, parameter, parameter)) + self.re_ident_list = re.compile(r" *({}(?: *, *{})*)" \ + .format(identifier, identifier)) + self.re_macro = re.compile(r"\\ *({}) *{{({})" \ + .format(identifier, macro_tail)) + self.re_macro_more = re.compile(macro_tail) + + self.blocks = self._blocks(text) + + def html(self): + text = "" + for block in self.blocks: + text += block.format() + return text + + def _blocks(self, text): + state = state_t() + blocks = [] + fields = False + flen = 0 + stack = [] + in_macro = False + + def end(): + # close the current paragraph (if it has text at all) + if state.text: + while stack and state.indent <= stack[-1][0]: # nest blocks + stack.pop() + + parent = stack[-1][1] if stack else None + block = parblock_t(parent, fields, flen, + state.indent, state.text, state.bullet) + + stack.append( (state.indent, block) ) + + blocks.append(block) + state.reset() + + lines = text.split("\n") + for line in lines: + m = self.re_non_blank.search(line) + start = m.start() if m else 0 + line = line[start:] + + if in_macro: + m = self.re_macro_more.match(line) + if m: + macro_tail = self._more_macro_tail(macro_tail, m.group(0)) + if not self._is_macro_end(macro_tail): + continue + else: + # broken macro end; finish it here + self._verb("broken macro \"{}\" {{ \"{}\", end: \"{}\"".format( + macro_name, macro_tail, line)) + in_macro = False + state.text += self._expand_macro(macro_name, macro_tail) + line = line[m.end():] + else: + m = self.re_macro.search(line) + if m: + self._process_line(start, line[:m.start()], state, end) + macro_name = m.group(1) + macro_tail = m.group(2) + in_macro = not self._is_macro_end(macro_tail) + if in_macro: + continue + state.text += self._expand_macro(macro_name, macro_tail) + line = line[m.end():] + + self._process_line(start, line, state, end) + + end() + blocks = self._collect_bullet_lists(blocks) + + # set up nested blocks + top_blocks = [] + for block in blocks: + if block.parent is None: + top_blocks.append(block) + else: + block.parent.add_child(block) + + return top_blocks + + def _process_line(self, start, line, state, end): + m = self.re_signature.match(line) + if m: + end() + state.text = "<strong class=\"epy_sig\">{}</strong>".format( + self._escape(line)) + end() + return + + if not line: + end() + return + + if line[0] == "@": + end() + # as per the EpyText spec, all lines from now on are fields + fields = True + flen = 1 + + m = self.re_identifier.match(line, 1) + if m: + mb = self.re_non_blank.search(line, m.end()) + flen = mb.start() if mb else m.end() + + if m.group(1) == "param": + cls = "epy_parameter" + mp = self.re_ident_list.match(line, m.end()) + if mp: + m = mp + else: + cls = "epy_tag" + line = "<strong class=\"{}\">{}</strong>" \ + .format(cls, m.group(1)) \ + + self._escape(line[m.end():]) + + # Require at least one blank after the "-"; + # f.i. "-1 (C++: int)" is not a bullet item. + # Allow also "* " as bullet marker. + elif line[:2] in ("- ", "* "): + end() + m = self.re_non_blank.search(line, 1) + line = self._escape(line[m.start():]) if m else "" + state.bullet = True + else: + line = self._escape(line) + + if start != state.indent: + end() + state.indent = start + + if state.text: + state.text += "\n" + state.text += line + + def _more_macro_tail(self, tail, more_tail): + # hack around textwrap + if tail[-1:] == "-": + return tail + more_tail + return tail + " " + more_tail + + def _is_macro_end(self, tail): + return tail[-1:] == "}" + + def _expand_macro(self, name, tail): + params = self._parse_macro_tail(tail) + + if name == "sq": + self._adjust_macro_params(params, 4, 4) + params = [p.strip() for p in params] + table = """ +<table border="1"> + <tr><td>{}</td><td>{}</td></tr> + <tr><td>{}</td><td>{}</td></tr> +</table> +""" + return table.format(*params) + + if name == "link": + self._adjust_macro_params(params, 1, 2) + if len(params) == 1: + params += params + return "<a href=\"{}\">{}</a>".format(*params) + + self._verb("Unimplemented macro {}, params {}".format(repr(name), repr(params))) + return "\\{}{{{}}}".format(name, ",".join(params)) + + def _parse_macro_tail(self, tail): + params = tail.split(",") + + if params[-1][-1:] == "}": + params[-1] = params[-1][:-1] + elif params[-1] == "": + params.pop() + + return params + + def _adjust_macro_params(self, params, n_min, n_max): + if len(params) < n_min: + params.extend( (4 - len(params)) * [''] ) + while len(params) > n_max: + params.pop() + + def _collect_bullet_lists(self, blocks): + out = [] + lists = [] + + for block in blocks: + if block.bullet: + while lists and lists[-1].start > block.start: + lists.pop() + if not lists or lists[-1].start != block.start: + lists.append(listblock_t(block.parent)) + out.append(lists[-1]) + lists[-1].add_child(block) + else: + if lists: + lists = [] + out.append(block) + + return out + + def _escape(self, text): + # avoid the multiple versions of html.escape + trans = "" + for c in text: + if c in self.html_translation: + trans += self.html_translation[c] + else: + trans += c + return trans + + def _verb(self, message): + print("VERBOSE:", message) + +class state_t: + def __init__(self, indent=None, text=None, bullet=None): + if indent is None: + self.reset() + else: + self.indent = indent + self.text = text + self.bullet = bullet + + def reset(self): + self.indent = -1 + self.text = "" + self.bullet = False + +class block_t: + def __init__(self, parent): + self.parent = parent + self.children = [] + + def add_child(self, block): + self.children.append(block) + +class parblock_t(block_t): + def __init__(self, parent, field, flen, start, text, bullet): + super().__init__(parent) + self.field = field + self.flen = flen + self.start = start + self.text = text + self.bullet = bullet + + def format(self): + start = self.start + if self.field: + start = max(0, start - self.flen) + if self.parent: + cls = "epy_nested" + start = max(0, start - self.parent.start) + elif self.field: + cls = "epy_field" + else: + cls ="epy_par" + + tag = "span" if self.bullet else "div" + text = "" + if self.text: + text += "<{} class=\"{}\">\n".format(tag, cls) + text += self.text + for child in self.children: + text += child.format() + if self.text: + text += "</{}>\n".format(tag) + + return text + +class listblock_t(block_t): + def __init__(self, parent): + super().__init__(parent) + + @property + def start(self): + return self.children[0].start + + def format(self): + text = "<ul class=\"epy_ul\">\n" + for child in self.children: + text += "<li class=\"epy_li\">" + child.format() + "</li>\n" + text += "</ul>\n" + + return text diff --git a/tools/docs/hrdoc.cfg b/tools/docs/hrdoc.cfg deleted file mode 100644 index 7502d7f..0000000 --- a/tools/docs/hrdoc.cfg +++ /dev/null @@ -1,147 +0,0 @@ -[epydoc] -# The list of objects to document. Objects can be named using -# dotted names, module filenames, or package directory names. -# Aliases for this option include "objects" and "values". -modules: idc, idautils, idaapi, ida_hexrays ida_allins ida_auto ida_bitrange ida_bytes ida_dbg ida_diskio ida_dirtree ida_entry ida_enum ida_expr ida_fixup ida_fpro ida_frame ida_funcs ida_gdl ida_graph ida_ida ida_idaapi ida_idc ida_idd ida_idp ida_ieee ida_kernwin ida_lines ida_loader ida_moves ida_nalt ida_name ida_netnode ida_offset ida_pro ida_problems ida_range ida_registry ida_search ida_segment ida_segregs ida_strlist ida_struct ida_tryblks ida_typeinf ida_ua ida_xref - -# The type of output that should be generated. Should be one -# of: html, text, latex, dvi, ps, pdf. -output: html - -# The path to the output directory. May be relative or absolute. -target: hr-html/ - -# An integer indicating how verbose epydoc should be. The default -# value is 0; negative values will supress warnings and errors; -# positive values will give more verbose output. -verbosity: 0 - -# A boolean value indicating that Epydoc should show a tracaback -# in case of unexpected error. By default don't show tracebacks -debug: 0 - -# If True, don't try to use colors or cursor control when doing -# textual output. The default False assumes a rich text prompt -simple-term: 0 - - -### Generation options - -# The default markup language for docstrings, for modules that do -# not define __docformat__. Defaults to epytext. -docformat: epytext - -# Whether or not parsing should be used to examine objects. -parse: yes - -# Whether or not introspection should be used to examine objects. -introspect: yes - -# Don't examine in any way the modules whose dotted name match this -# regular expression pattern. -#exclude - -# Don't perform introspection on the modules whose dotted name match this -# regular expression pattern. -#exclude-introspect - -# Don't perform parsing on the modules whose dotted name match this -# regular expression pattern. -#exclude-parse - -# The format for showing inheritance objects. -# It should be one of: 'grouped', 'listed', 'included'. -inheritance: listed - -# Whether or not to inclue private variables. (Even if included, -# private variables will be hidden by default.) -private: no - -# Whether or not to list each module's imports. -imports: no - -# Whether or not to include syntax highlighted source code in -# the output (HTML only). -sourcecode: no - -# Whether or not to includea a page with Epydoc log, containing -# effective option at the time of generation and the reported logs. -include-log: no - - -### Output options - -# The documented project's name. -name: IDAPython - -# The CSS stylesheet for HTML output. Can be the name of a builtin -# stylesheet, or the name of a file. -css: white - -# The documented project's URL. -url: http://code.google.com/p/idapython/ - -# HTML code for the project link in the navigation bar. If left -# unspecified, the project link will be generated based on the -# project's name and URL. -link: <a href="http://www.hex-rays.com/">Hex-Rays</a> - -# The "top" page for the documentation. Can be a URL, the name -# of a module or class, or one of the special names "trees.html", -# "indices.html", or "help.html" -#top: os.path - -# An alternative help file. The named file should contain the -# body of an HTML file; navigation bars will be added to it. -#help: my_helpfile.html - -# Whether or not to include a frames-based table of contents. -frames: yes - -# Whether each class should be listed in its own section when -# generating LaTeX or PDF output. -separate-classes: no - - -### API linking options - -# Define a new API document. A new interpreted text role -# will be created -#external-api: epydoc - -# Use the records in this file to resolve objects in the API named NAME. -#external-api-file: epydoc:api-objects.txt - -# Use this URL prefix to configure the string returned for external API. -#external-api-root: epydoc:http://epydoc.sourceforge.net/api - - -### Graph options - -# The list of graph types that should be automatically included -# in the output. Graphs are generated using the Graphviz "dot" -# executable. Graph types include: "classtree", "callgraph", -# "umlclass". Use "all" to include all graph types -#graph: classtree - -# The path to the Graphviz "dot" executable, used to generate -# graphs. -#dotpath: /usr/local/bin/dot - -# The name of one or more pstat files (generated by the profile -# or hotshot module). These are used to generate call graphs. -#pstat: profile.out - -# Specify the font used to generate Graphviz graphs. -# (e.g., helvetica or times). -graph-font: Helvetica - -# Specify the font size used to generate Graphviz graphs. -#graph-font-size: 10 - - -### Return value options - -# The condition upon which Epydoc should exit with a non-zero -# exit status. Possible values are error, warning, docstring_warning -#fail-on: error diff --git a/tools/docs/hrdoc.cfg.in b/tools/docs/hrdoc.cfg.in deleted file mode 100644 index 167ce99..0000000 --- a/tools/docs/hrdoc.cfg.in +++ /dev/null @@ -1,147 +0,0 @@ -[epydoc] -# The list of objects to document. Objects can be named using -# dotted names, module filenames, or package directory names. -# Aliases for this option include "objects" and "values". -modules: idc, idautils, idaapi, %IDA_MODULES% - -# The type of output that should be generated. Should be one -# of: html, text, latex, dvi, ps, pdf. -output: html - -# The path to the output directory. May be relative or absolute. -target: hr-html/ - -# An integer indicating how verbose epydoc should be. The default -# value is 0; negative values will supress warnings and errors; -# positive values will give more verbose output. -verbosity: 0 - -# A boolean value indicating that Epydoc should show a tracaback -# in case of unexpected error. By default don't show tracebacks -debug: 0 - -# If True, don't try to use colors or cursor control when doing -# textual output. The default False assumes a rich text prompt -simple-term: 0 - - -### Generation options - -# The default markup language for docstrings, for modules that do -# not define __docformat__. Defaults to epytext. -docformat: epytext - -# Whether or not parsing should be used to examine objects. -parse: yes - -# Whether or not introspection should be used to examine objects. -introspect: yes - -# Don't examine in any way the modules whose dotted name match this -# regular expression pattern. -#exclude - -# Don't perform introspection on the modules whose dotted name match this -# regular expression pattern. -#exclude-introspect - -# Don't perform parsing on the modules whose dotted name match this -# regular expression pattern. -#exclude-parse - -# The format for showing inheritance objects. -# It should be one of: 'grouped', 'listed', 'included'. -inheritance: listed - -# Whether or not to inclue private variables. (Even if included, -# private variables will be hidden by default.) -private: no - -# Whether or not to list each module's imports. -imports: no - -# Whether or not to include syntax highlighted source code in -# the output (HTML only). -sourcecode: no - -# Whether or not to includea a page with Epydoc log, containing -# effective option at the time of generation and the reported logs. -include-log: no - - -### Output options - -# The documented project's name. -name: IDAPython - -# The CSS stylesheet for HTML output. Can be the name of a builtin -# stylesheet, or the name of a file. -css: white - -# The documented project's URL. -url: http://code.google.com/p/idapython/ - -# HTML code for the project link in the navigation bar. If left -# unspecified, the project link will be generated based on the -# project's name and URL. -link: <a href="http://www.hex-rays.com/">Hex-Rays</a> - -# The "top" page for the documentation. Can be a URL, the name -# of a module or class, or one of the special names "trees.html", -# "indices.html", or "help.html" -#top: os.path - -# An alternative help file. The named file should contain the -# body of an HTML file; navigation bars will be added to it. -#help: my_helpfile.html - -# Whether or not to include a frames-based table of contents. -frames: yes - -# Whether each class should be listed in its own section when -# generating LaTeX or PDF output. -separate-classes: no - - -### API linking options - -# Define a new API document. A new interpreted text role -# will be created -#external-api: epydoc - -# Use the records in this file to resolve objects in the API named NAME. -#external-api-file: epydoc:api-objects.txt - -# Use this URL prefix to configure the string returned for external API. -#external-api-root: epydoc:http://epydoc.sourceforge.net/api - - -### Graph options - -# The list of graph types that should be automatically included -# in the output. Graphs are generated using the Graphviz "dot" -# executable. Graph types include: "classtree", "callgraph", -# "umlclass". Use "all" to include all graph types -#graph: classtree - -# The path to the Graphviz "dot" executable, used to generate -# graphs. -#dotpath: /usr/local/bin/dot - -# The name of one or more pstat files (generated by the profile -# or hotshot module). These are used to generate call graphs. -#pstat: profile.out - -# Specify the font used to generate Graphviz graphs. -# (e.g., helvetica or times). -graph-font: Helvetica - -# Specify the font size used to generate Graphviz graphs. -#graph-font-size: 10 - - -### Return value options - -# The condition upon which Epydoc should exit with a non-zero -# exit status. Possible values are error, warning, docstring_warning -#fail-on: error diff --git a/tools/docs/hrdoc.py b/tools/docs/hrdoc.py index e673fe9..ae064ca 100644 --- a/tools/docs/hrdoc.py +++ b/tools/docs/hrdoc.py @@ -2,144 +2,193 @@ from __future__ import print_function import os import sys import shutil +import json from glob import glob +from typing import Dict, List +from functools import lru_cache + +tools_docs_path = os.path.abspath(os.path.dirname(__file__)) +idapython_path = os.path.abspath(os.path.join(tools_docs_path, "..", "..")) +idasrc_path = os.path.abspath(os.path.join(idapython_path, "..", "..", "..")) + +import idc + +from argparse import ArgumentParser +parser = ArgumentParser() +parser.add_argument("-o", "--output", required=True) +parser.add_argument("-m", "--modules", required=True) +parser.add_argument("-s", "--include-source-for-modules", required=True) +parser.add_argument("-x", "--exclude-modules-from-searchable-index", required=True) +parser.add_argument("-v", "--verbose", default=False, action="store_true") + +args = parser.parse_args(idc.ARGV[1:]) + +args.modules = args.modules.split(",") +args.include_source_for_modules = args.include_source_for_modules.split(",") +args.exclude_modules_from_searchable_index = args.exclude_modules_from_searchable_index.split(",") try: - import epydoc.apidoc - import epydoc.cli +# pdoc location + pdoc_path = os.path.join(idasrc_path, "third_party", "pdoc", "pdoc-master") + sys.path.append(pdoc_path) + sys.path.append(tools_docs_path) # for the custom epytext + import pdoc except ImportError as e: - import idc import traceback idc.msg("Couldn't import module %s\n" % traceback.format_exc()) idc.qexit(-1) -# -------------------------------------------------------------------------- -DOC_DIR = 'hr-html' - -# -------------------------------------------------------------------------- -def log(msg): - #print msg - pass - -def add_header(lines): - S1 = 'href="epydoc.css"' - p = lines.find(S1) - if p < 0: - return None - p = lines.find('\n', p) - if p < 0: - return None - return lines[0:p] + '\n <link href="/style.css" rel="stylesheet" type="text/css">' + lines[p:] - - -# -------------------------------------------------------------------------- -def add_footer(lines): - S1 = 'Generated by Epydoc' - S2 = '</table>' - p = lines.find(S1) - if p < 0: - return None - p = lines.find(S2, p) - if p < 0: - return None - p += len(S2) - return lines[0:p] + '\n<!--#include virtual="../_footer.shtml" -->' + lines[p:] - -# -------------------------------------------------------------------------- -def define_idaapi_resolver(): - """ - Whenever a module named \"idaapi_<something>\" is - spotted, turn it into \"idaapi\". - """ - dn = epydoc.apidoc.DottedName.__init__ - def resolver(piece): - if piece is not None and isinstance(piece, basestring) and piece.startswith("idaapi_"): - res = "idaapi" - else: - res = piece - log("Resolver '%s' => '%s'" % (piece, res)) - return res - def wrapper(self, *pieces, **options): - return dn(self, *map(resolver, pieces), **options); - epydoc.apidoc.DottedName.__init__ = wrapper - # -------------------------------------------------------------------------- def gen_docs(): - import swigdocs + sys.path.insert(0, os.path.join(idapython_path, "tools")) - define_idaapi_resolver() + # trash existing doc + if os.path.isdir(args.output): + shutil.rmtree(args.output) - swigdocs.gen_docs(outfn = 'pywraps.py') - # append obj/x86_win_vc_32/idaapi.py to it -# os.system(r'copy /b idaapi.py+..\obj\x86_win_vc_32\idaapi.py idaapi.py') + # generate new doc + build_documentation() - # delete all output files - for fn in glob('hr-html/*'): - os.unlink(fn) - - epydoc.cli.optparse.sys.argv = [ 'epydoc', - '--config', '../tools/docs/hrdoc.cfg', - '--simple-term' - ] - - # Generate the documentation - epydoc.cli.cli() # -------------------------------------------------------------------------- -def patch_docs(): - shutil.copy('../../tools/docs/hrdoc.css', 'epydoc.css') - os.system('chmod +w epydoc.css') +# This is a ripoff of pdoc's cli.py, w/ minor adjustments +def gen_lunr_search(modules: List[pdoc.Module], + index_docstrings: bool, + template_config: dict): + """Generate index.js for search""" - for fn in glob('*.html'): - with open(fn, 'r') as f: - lines = f.read() + def trim_docstring(docstring): + return re.sub(r''' + \s+| # whitespace sequences + \s+[-=~]{3,}\s+| # title underlines + ^[ \t]*[`~]{3,}\w*$| # code blocks + \s*[`#*]+\s*| # common markdown chars + \s*([^\w\d_>])\1\s*| # sequences of punct of the same kind + \s*</?\w*[^>]*>\s* # simple HTML tags + ''', ' ', docstring, flags=re.VERBOSE | re.MULTILINE) - r = add_header(lines) - if r: - lines = r - r = add_footer(lines) - if not r: - print("-", end=' ') - continue + def recursive_add_to_index(dobj): + info = { + 'ref': dobj.refname, + 'url': to_url_id(dobj.module), + } + if index_docstrings: + info['doc'] = trim_docstring(dobj.docstring) + if isinstance(dobj, pdoc.Function): + info['func'] = 1 + index.append(info) + for member_dobj in getattr(dobj, 'doc', {}).values(): + recursive_add_to_index(member_dobj) - with open(fn, 'w') as f: - f.write(r) - print("+", end=' ') + @lru_cache() + def to_url_id(module): + url = module.url() + if url not in url_cache: + url_cache[url] = len(url_cache) + return url_cache[url] - print("\nDocumentation patched!") + index: List[Dict] = [] + url_cache: Dict[str, int] = {} + for top_module in modules: + recursive_add_to_index(top_module) + urls = sorted(url_cache.keys(), key=url_cache.__getitem__) + + main_path = args.output + with open(os.path.join(main_path, 'index.js'), "w", encoding="utf-8") as f: + f.write("URLS=") + json.dump(urls, f, indent=0, separators=(',', ':')) + f.write(";\nINDEX=") + json.dump(index, f, indent=0, separators=(',', ':')) + + # Generate search.html + with open(os.path.join(main_path, 'doc-search.html'), "w", encoding="utf-8") as f: + rendered_template = pdoc._render_template('/search.mako', **template_config) + f.write(rendered_template) + + +# -------------------------------------------------------------------------- +def build_documentation(): + + # import all modules + def docfilter(obj): + # print("OBJ: %s" % str(obj)) + if obj.name in [ + "thisown", + "SWIG_PYTHON_LEGACY_BOOL", + ]: + return False + return True + + modules = [] + for module in args.modules: + print("Loading: %s" % module) + modules.append(pdoc.Module(module, docfilter=docfilter)) + + print(" {} module{} in the list.".format( + len(modules), "" if len(modules) == 1 else "s")) + + pdoc.link_inheritance() + + # + # ida_*.html + # + pdoc.tpl_lookup.directories.insert(0, os.path.join(tools_docs_path, "templates")) + show_source_code = set(args.include_source_for_modules) + + def all_modules(module_collection): + for module in module_collection: + yield module + + yield from all_modules(module.submodules()) + + for module in all_modules(modules): + module.obj.__docformat__ = "hr_epy" + + print("Processing: %s" % module.name) + html = module.html( + show_source_code=module.name in show_source_code, + search_prefix=module.name) + + path = os.path.join(args.output, module.url()) + dirname = os.path.dirname(path) + os.makedirs(dirname, exist_ok=True) + + print("Writing: %s" % path) + with open(path, "w", encoding="utf-8") as f: + f.write(html) + + # + # doc-search.html, index.js + # + template_config = {} + gen_lunr_search( + [mod for mod in modules if mod.name not in args.exclude_modules_from_searchable_index], + index_docstrings=True, + template_config=pdoc._get_config(**template_config).get('lunr_search')) + + # + # index.html + # + path = os.path.join(args.output, "index.html") + class fake_module_t(object): + def __init__(self, name, url): + self.name = name + self._url = url + def url(self): + return self._url + + index_module = fake_module_t("index", "index.html") + html = pdoc._render_template('/index.mako', module=index_module, modules=modules) + with open(path, "w", encoding="utf-8") as f: + f.write(html) # -------------------------------------------------------------------------- def main(): - # Save old directory and adjust import path - curdir = os.getcwd() + os.sep - sys.path.append(curdir + 'python') - sys.path.append(curdir + 'tools') - sys.path.append(curdir + 'docs') - - old_dir = os.getcwd() - - try: - print("Generating documentation.....") - import ida_pro - try: - ida_pro._BC695 - print("'ida_pro._BC695' exists. Please recompile with BC695 undefined (see makefile). Bailing out.") - return -1 - except: - pass # ok - - os.chdir('docs') - gen_docs() - - os.chdir(DOC_DIR) - patch_docs() - - print("Documentation generated!") - - finally: - os.chdir(old_dir) + print("Generating documentation.....") + gen_docs() + print("Documentation generated!") # -------------------------------------------------------------------------- -if __name__ == '__main__': +if __name__ == "__main__": main() qexit(0) diff --git a/tools/docs/templates/config.mako b/tools/docs/templates/config.mako new file mode 100644 index 0000000..442c2ca --- /dev/null +++ b/tools/docs/templates/config.mako @@ -0,0 +1,3 @@ +<%! + lunr_search = {'fuzziness': 1, 'index_docstrings': True} +%> \ No newline at end of file diff --git a/tools/docs/templates/credits.mako b/tools/docs/templates/credits.mako new file mode 100644 index 0000000..816ec24 --- /dev/null +++ b/tools/docs/templates/credits.mako @@ -0,0 +1 @@ +<p>Copyright (c) 2021 Hex-Rays SA. <a href="/terms_of_use.shtml">Terms of use</a> and <a href="/privacy_policy.shtml">privacy policy</a>.</p> diff --git a/tools/docs/templates/head.mako b/tools/docs/templates/head.mako new file mode 100644 index 0000000..68d3418 --- /dev/null +++ b/tools/docs/templates/head.mako @@ -0,0 +1,6 @@ +<style> +#section-intro .epy_par +{ + margin-top: 18px; +} +</style> diff --git a/tools/docs/templates/html.mako b/tools/docs/templates/html.mako new file mode 100644 index 0000000..5061da5 --- /dev/null +++ b/tools/docs/templates/html.mako @@ -0,0 +1,463 @@ +<% + import os + + import pdoc + from pdoc.html_helpers import extract_toc, glimpse, to_html as _to_html + def format_git_link(t, x): + return None # function removed from htmp_helpers by clean.sh + + + def link(dobj: pdoc.Doc, name=None): + name = name or dobj.qualname + ('()' if isinstance(dobj, pdoc.Function) else '') + if isinstance(dobj, pdoc.External) and not external_links: + return name + url = dobj.url(relative_to=module, link_prefix=link_prefix, + top_ancestor=not show_inherited_members) + return f'<a title="{dobj.refname}" href="{url}">{name}</a>' + + + def to_html(text): + return _to_html(text, docformat=docformat, module=module, link=link, latex_math=latex_math) + + + def get_annotation(bound_method, sep=':'): + annot = show_type_annotations and bound_method(link=link) or '' + if annot: + annot = ' ' + sep + '\N{NBSP}' + annot + return annot +%> + +<%def name="ident(name)"><span class="ident">${name}</span></%def> + +<%def name="show_source(d)"> + % if (show_source_code or git_link_template) and d.source and d.obj is not getattr(d.inherits, 'obj', None): + <% git_link = format_git_link(git_link_template, d) %> + % if show_source_code: + <details class="source"> + <summary> + <span>Expand source code</span> + % if git_link: + <a href="${git_link}" class="git-link">Browse git</a> + %endif + </summary> + <pre><code class="python">${d.source | h}</code></pre> + </details> + % elif git_link: + <div class="git-link-div"><a href="${git_link}" class="git-link">Browse git</a></div> + %endif + %endif +</%def> + +<%def name="show_desc(d, short=False)"> + <% + inherits = ' inherited' if d.inherits else '' + docstring = glimpse(d.docstring) if short or inherits else d.docstring + %> + % if d.inherits: + <p class="inheritance"> + <em>Inherited from:</em> + % if hasattr(d.inherits, 'cls'): + <code>${link(d.inherits.cls)}</code>.<code>${link(d.inherits, d.name)}</code> + % else: + <code>${link(d.inherits)}</code> + % endif + </p> + % endif + <div class="desc${inherits}">${docstring | to_html}</div> + % if not isinstance(d, pdoc.Module): + ${show_source(d)} + % endif +</%def> + +<%def name="show_module_list(modules)"> +<h1>Python module list</h1> + +% if not modules: + <p>No modules found.</p> +% else: + <dl id="http-server-module-list"> + % for name, desc in modules: + <div class="flex"> + <dt><a href="${link_prefix}${name}">${name}</a></dt> + <dd>${desc | glimpse, to_html}</dd> + </div> + % endfor + </dl> +% endif +</%def> + +<%def name="show_column_list(items)"> + <% + two_column = len(items) >= 6 and all(len(i.name) < 20 for i in items) + %> + <ul class="${'two-column' if two_column else ''}"> + % for item in items: + <li><code>${link(item, item.name)}</code></li> + % endfor + </ul> +</%def> + +<%def name="show_module(module)"> + <% + variables = module.variables(sort=sort_identifiers) + classes = module.classes(sort=sort_identifiers) + functions = module.functions(sort=sort_identifiers) + submodules = module.submodules() + %> + + <%def name="show_func(f)"> + <dt id="${f.refname}"><code class="name flex"> + <% + params = ', '.join(f.params(annotate=show_type_annotations, link=link)) + return_type = get_annotation(f.return_annotation, '\N{non-breaking hyphen}>') + %> + <span>${f.funcdef()} ${ident(f.name)}</span>(<span>${params})${return_type}</span> + </code></dt> + <dd>${show_desc(f)}</dd> + </%def> + + <header> + % if http_server: + <nav class="http-server-breadcrumbs"> + <a href="/">All packages</a> + <% parts = module.name.split('.')[:-1] %> + % for i, m in enumerate(parts): + <% parent = '.'.join(parts[:i+1]) %> + :: <a href="/${parent.replace('.', '/')}/">${parent}</a> + % endfor + </nav> + % endif + <h1 class="title">${'Namespace' if module.is_namespace else \ + 'Package' if module.is_package and not module.supermodule else \ + 'Module'} <code>${module.name}</code></h1> + </header> + + <section id="section-intro"> + ${module.docstring | to_html} + ${show_source(module)} + </section> + + <section> + % if submodules: + <h2 class="section-title" id="header-submodules">Sub-modules</h2> + <dl> + % for m in submodules: + <dt><code class="name">${link(m)}</code></dt> + <dd>${show_desc(m, short=True)}</dd> + % endfor + </dl> + % endif + </section> + + <section> + % if variables: + <h2 class="section-title" id="header-variables">Global variables</h2> + <dl> + % for v in variables: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + </section> + + <section> + % if functions: + <h2 class="section-title" id="header-functions">Functions</h2> + <dl> + % for f in functions: + ${show_func(f)} + % endfor + </dl> + % endif + </section> + + <section> + % if classes: + <h2 class="section-title" id="header-classes">Classes</h2> + <dl> + % for c in classes: + <% + class_vars = c.class_variables(show_inherited_members, sort=sort_identifiers) + smethods = c.functions(show_inherited_members, sort=sort_identifiers) + inst_vars = c.instance_variables(show_inherited_members, sort=sort_identifiers) + methods = c.methods(show_inherited_members, sort=sort_identifiers) + mro = c.mro() + # filter out "__plugins/loaders/procs__XXX" subclasses + # ---------- + exclude = "__plugins__", "__loaders__", "__procs__" + subclasses = [] + for subc in c.subclasses(): + for prefix in exclude: + if subc.refname[:len(prefix)] == prefix: + break + else: + subclasses.append(subc) + # ---------- + params = ', '.join(c.params(annotate=show_type_annotations, link=link)) + %> + <dt id="${c.refname}"><code class="flex name class"> + <span>class ${ident(c.name)}</span> + % if params: + <span>(</span><span>${params})</span> + % endif + </code></dt> + + <dd>${show_desc(c)} + + % if mro: + <h3>Ancestors</h3> + <ul class="hlist"> + % for cls in mro: + <li>${link(cls)}</li> + % endfor + </ul> + %endif + + % if subclasses: + <h3>Subclasses</h3> + <ul class="hlist"> + % for sub in subclasses: + <li>${link(sub)}</li> + % endfor + </ul> + % endif + % if class_vars: + <h3>Class variables</h3> + <dl> + % for v in class_vars: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + % if smethods: + <h3>Static methods</h3> + <dl> + % for f in smethods: + ${show_func(f)} + % endfor + </dl> + % endif + % if inst_vars: + <h3>Instance variables</h3> + <dl> + % for v in inst_vars: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + % if methods: + <h3>Methods</h3> + <dl> + % for f in methods: + ${show_func(f)} + % endfor + </dl> + % endif + + % if not show_inherited_members: + <% + members = c.inherited_members() + %> + % if members: + <h3>Inherited members</h3> + <ul class="hlist"> + % for cls, mems in members: + <li><code><b>${link(cls)}</b></code>: + <ul class="hlist"> + % for m in mems: + <li><code>${link(m, name=m.name)}</code></li> + % endfor + </ul> + + </li> + % endfor + </ul> + % endif + % endif + + </dd> + % endfor + </dl> + % endif + </section> +</%def> + +<%def name="module_index(module)"> + <% + variables = module.variables(sort=sort_identifiers) + classes = module.classes(sort=sort_identifiers) + functions = module.functions(sort=sort_identifiers) + submodules = module.submodules() + supermodule = module.supermodule + %> + <nav id="sidebar"> + + <%include file="logo.mako"/> + + % if google_search_query: + <div class="gcse-search" style="height: 70px" + data-as_oq="${' '.join(google_search_query.strip().split()) | h }" + data-gaCategoryParameter="${module.refname | h}"> + </div> + % endif + + % if lunr_search is not None: + <%include file="_lunr_search.inc.mako"/> + % endif + + ${extract_toc(module.docstring) if extract_module_toc_into_sidebar else ''} + <ul id="index"> + % if supermodule: + <li><h3>Super-module</h3> + <ul> + <li><code>${link(supermodule)}</code></li> + </ul> + </li> + % endif + + % if submodules: + <li><h3><a href="#header-submodules">Sub-modules</a></h3> + <ul> + % for m in submodules: + <li><code>${link(m)}</code></li> + % endfor + </ul> + </li> + % endif + + % if variables: + <li><h3><a href="#header-variables">Global variables</a></h3> + ${show_column_list(variables)} + </li> + % endif + + % if functions: + <li><h3><a href="#header-functions">Functions</a></h3> + ${show_column_list(functions)} + </li> + % endif + + % if classes: + <li><h3><a href="#header-classes">Classes</a></h3> + <ul> + % for c in classes: + <li> + <h4><code>${link(c)}</code></h4> + <% + members = c.functions(sort=sort_identifiers) + c.methods(sort=sort_identifiers) + if list_class_variables_in_index: + members += (c.instance_variables(sort=sort_identifiers) + + c.class_variables(sort=sort_identifiers)) + if not show_inherited_members: + members = [i for i in members if not i.inherits] + if sort_identifiers: + members = sorted(members) + %> + % if members: + ${show_column_list(members)} + % endif + </li> + % endfor + </ul> + </li> + % endif + + </ul> + </nav> +</%def> + +<!doctype html> +<html lang="${html_lang}"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> + <meta name="generator" content="pdoc ${pdoc.__version__}" /> + +<% + module_list = 'modules' in context.keys() # Whether we're showing module list in server mode +%> + + % if module_list: + <title>Python module list + + % else: + ${module.name} API documentation + + % endif + + + + % if syntax_highlighting: + + %endif + + <%namespace name="css" file="css.mako" /> + + + + + % if google_analytics: + + % endif + + % if google_search_query: + + + + % endif + + % if latex_math: + + % endif + + % if syntax_highlighting: + + + % endif + + <%include file="head.mako"/> + + +
    + % if module_list: +
    + ${show_module_list(modules)} +
    + % else: + + ${module_index(module)} + % endif +
    + + + +% if http_server and module: ## Auto-reload on file change in dev mode + +% endif + + diff --git a/tools/docs/templates/index.mako b/tools/docs/templates/index.mako new file mode 100644 index 0000000..0b9b33b --- /dev/null +++ b/tools/docs/templates/index.mako @@ -0,0 +1,37 @@ + + + + + + + + + <%namespace name="css" file="css.mako" /> + + + + + + +
    +

    IDAPython documentation

    +
    +
    +
    +

    Defined modules:

    + +
    + +
    + + diff --git a/tools/dumpdoc.py b/tools/dumpdoc.py index e9815d3..a584220 100644 --- a/tools/dumpdoc.py +++ b/tools/dumpdoc.py @@ -3,8 +3,14 @@ import re import sys import inspect import types +import ast +import os import argparse +sys.stdout.write("### dumpdoc here!\n") +for key in os.environ: + sys.stdout.write("### %s = \"%s\"\n" % (key, os.environ[key])) + if sys.version_info[0] == 3: # for Python3, we always use the same pydoc module from Python3.5. this keeps the output consistent across different Python3 versions. import imp @@ -17,6 +23,10 @@ import pydoc import idc output, wrappers_dir, is_64 = idc.ARGV[1], idc.ARGV[2], idc.ARGV[3] == "True" +sys.stdout.write("### Parameter \"output\" = \"%s\"\n" % output) +sys.stdout.write("### Parameter \"wrappers_dir\" = \"%s\"\n" % wrappers_dir) +sys.stdout.write("### Parameter \"is_64\" = \"%s\"\n" % is_64) + try: from cStringIO import StringIO except: @@ -54,12 +64,14 @@ ignore_names = [ "svalvec_t", # aliased with intvec_t or longlongvec_t "uvalvec_t", # aliased with uintvec_t or ulonglongvec_t "eavec_t", # aliased with uvalvec_t + ("ida_ida", "__getattr__"), + ("idc", "__getattr__"), ] -def should_ignore_name(name): +def should_ignore_name(namespace_name, name): for ign in ignore_names: if isinstance(ign, tuple): - if ".".join(ign) == name: + if ign == (namespace_name, name): return True elif isinstance(ign, string_types): if ign == name: @@ -319,7 +331,7 @@ def dump_namespace(namespace, namespace_name, keys, vec_info=None): spotted_things = [] for thing_name in keys: # sys.stderr.write("THING NAME: %s\n" % thing_name) - if should_ignore_name(thing_name): + if should_ignore_name(namespace_name, thing_name): continue thing = getattr(namespace, thing_name) if isinstance(thing, ignore_types): @@ -342,6 +354,97 @@ def dump_namespace(namespace, namespace_name, keys, vec_info=None): pydoc.help(thing) spotted_things.append(thing) +class variable_collector_t(ast.NodeVisitor): + OUTSIDE = 0 + IN_CLASS = 1 + IN_FUNCTION = 2 + + def __init__(self, variables, module_name): + self.variables = variables + self.module_name = module_name + self.context = self.OUTSIDE + self.class_name = "" + self.assign_last_line = -1 + + super(variable_collector_t, self).__init__() + + def visit_FunctionDef(self, node): + old_context = self.context + self.context = self.IN_FUNCTION + self.generic_visit(node) + self.context = old_context + + def visit_ClassDef(self, node): + if self.context == self.IN_FUNCTION: + return + if self.context == self.IN_CLASS: + prefix = self.class_name + "." + else: + prefix = "" + self.class_name = prefix + node.name + + old_context = self.context + self.context = self.IN_CLASS + self.generic_visit(node) + self.context = old_context + + def visit_Assign(self, node): + if self.context == self.IN_FUNCTION: + return + if self.context == self.IN_CLASS: + prefix = self.class_name + "." + else: + prefix = "" + + if len(node.targets) == 1: + target = node.targets[0] + if isinstance(target, ast.Name): + self.assign_variable = prefix + target.id + self.assign_last_line = self._highest_lineno(node) + + def _highest_lineno(self, node): + if hasattr(node, "end_lineno"): + return node.end_lineno + + highest = node.lineno + for child in ast.walk(node): + if hasattr(child, "lineno") and child.lineno > highest: + highest = child.lineno + return highest + + def visit_Expr(self, node): + if not isinstance(node.value, ast.Str): + return + + if hasattr(node, "end_lineno"): + line_before = node.lineno - 1 # in this case, lineno = start + else: + # hack until Python 3.8; if <3.8, lineno = end + line_before = node.lineno - len(node.value.s.split("\n")) + + if line_before == self.assign_last_line: + self.variables.append( + "\nDocumentation on variable %s in module %s:\n\n%s\n" \ + % (self.assign_variable, + self.module_name, + self._cleandoc(node.value.s))) + + def _cleandoc(self, docstring): + if docstring: + docstring = inspect.cleandoc(docstring) + + # 4-blanks indent + docstring = "\n".join(" " + line for line in docstring.split("\n")) + + return docstring + +def collect_variables(variables, module_name, filename): + with open(filename, "r") as f: + tree = ast.parse(f.read()) + + visitor = variable_collector_t(variables, module_name) + visitor.visit(tree) + # By default, pydoc.help() hides members that start with "_" # unless they start and end with "__" (with an exception for # __doc__ and __module__) @@ -355,26 +458,47 @@ def my_visiblename(name, all=None, obj=None): return v pydoc.visiblename = my_visiblename +def iter_modules(): + for mname in sorted(sys.modules): + if mname.startswith("ida_") or mname == "idc": + yield mname, sys.modules[mname] + +sys.stdout.write("### Before collecting help\n") +old_stdout = sys.stdout ### debug + sys.stdout = StringIO() -for mname in sorted(sys.modules): - if mname.startswith("ida_") or mname == "idc": - module = sys.modules[mname] - dump_namespace(module, mname, sorted(dir(module))) - epydoc_path = os.path.join(wrappers_dir, "%s.epydoc_injection" % mname) - if os.path.isfile(epydoc_path): - with open(epydoc_path) as epydoc_f: - epydoc_injections = epydoc_f.read() - epydoc_injections = epydoc_injections.strip() - if epydoc_injections: - print("=== %s EPYDOC INJECTIONS ===" % mname) - print(epydoc_injections) - print("=== %s EPYDOC INJECTIONS END ===" % mname) +for mname, module in iter_modules(): + print("Module \"%s\"s docstring:\n\"\"\"%s\"\"\"\n" % (mname, module.__doc__)) + dump_namespace(module, mname, sorted(dir(module))) + +old_stdout.write("### After collecting help\n") final = apply_translations([], sys.stdout.getvalue()) + +old_stdout.write("### After applying translations\n") + +def module_file(module): + name, ext = os.path.splitext(module.__file__) + if ext == ".pyc": + ext = ".py" + return name + ext + +old_stdout.write("### Before collecting variables\n") + +variables = ["\n=== DOCUMENTATION FOR VARIABLES ===\n"] +for mname, module in iter_modules(): + collect_variables(variables, mname, module_file(module)) + +old_stdout.write("### After collecting variables (%d of them)\n" % len(variables)) + +final += "".join(variables) + with open(output, "wb") as f: if sys.version_info.major <= 2: f.write(final) else: f.write(final.encode("utf-8")) +old_stdout.write("### Wrote output (%d chars), end of script\n" % len(final)) + idaapi.qexit(0) diff --git a/tools/examples_index_template.html b/tools/examples_index_template.html index 528d884..fb60c42 100644 --- a/tools/examples_index_template.html +++ b/tools/examples_index_template.html @@ -1,3 +1,9 @@ + @@ -12,71 +18,86 @@

    IDAPython examples:

    - -

    Category:

    +% for category in sorted(examples): +

    Category: {{category}}

    - -
    + % for example in sorted(examples[category], key=lambda e: e.name): +
    - : + {{example.name}}: {{example.summary}}
    -
    +
    -
    +{{example.description if example.description else example.summary}}
     
      -
    • Category:
    • -
    • Summary:
    • -
    • View on GitHub
    • - +
    • Category: {{example.category}}
    • +
    • Summary: {{example.summary}}
    • +
    • View on GitHub
    • + % if example.keywords:
    • Keywords: - - - - - - - + % for keyword in example.keywords: + {{keyword}} + % endfor +
    • + % endif -
    • APIs used + % if example.shortcuts: +
    • Shortcut{{'s' if len(example.shortcuts) > 1 else ''}}: + % for shortcut in example.shortcuts: + {{shortcut}} + % endfor +
    • + % endif + + % if example.imports: +
    • Imports
        - -
      • - + % for imported in example.imports: +
      • {{imported}}
      • + % endfor
    • -
    • Summary:
    • + % endif - - - + % if example.uses: +
    • APIs used +
        + % for use in example.uses: +
      • {{use}}
      • + % endfor +
      +
    • + % endif + + % if example.see_also:
    • See also:
        - -
      • -
      • - + % for see in example.see_also: +
      • {{see}}
      • + % endfor
      -
    • - + % endif + + % if example.author: +
    • Author: {{example.author}}
    • + % endif
    - - + % endfor # examples of a category
    - - +% endfor # categories diff --git a/tools/examples_index_template.md b/tools/examples_index_template.md index 096baeb..ec57859 100644 --- a/tools/examples_index_template.md +++ b/tools/examples_index_template.md @@ -2,43 +2,64 @@ # IDAPython examples - -## Category: +% for category in sorted(examples): +## Category: {{category}} - -#### + % for example in sorted(examples[category], key=lambda e: e.name): +#### {{example.name}}
    - + {{example.summary}}
    #### Source code - +{{example.path}} #### Category - +{{example.category}} #### Description - +{{example.description if example.description else example.summary}} + % if example.shortcuts: +#### Shortcut{{'s' if len(example.shortcuts) > 1 else ''}} +{{' '.join(example.shortcuts)}} + + % endif + % if example.keywords: #### Keywords - - - +{{' '.join(example.keywords)}} + % endif + % if example.imports: +#### Imports + % for imported in example.imports: +* {{imported}} + % endfor + + % endif + % if example.uses: #### Uses - -* - + % for use in example.uses: +* {{use}} + % endfor + % endif + % if example.see_also: #### See also - -* [](#) - + % for see in example.see_also: +* [{{see}}](#{{see}}) + % endfor + % endif + % if example.author: +#### Author +{{example.author}} + + % endif
    - - + % endfor # examples of a category +% endfor # categories diff --git a/tools/gen_examples_index.cfg b/tools/gen_examples_index.cfg new file mode 100644 index 0000000..614ac49 --- /dev/null +++ b/tools/gen_examples_index.cfg @@ -0,0 +1,11 @@ +{ + "auto-keywords": [ + ["ctxmenu", [r"ida_kernwin\.attach_action_to_popup"]], + ["plugin", [r"ida_idaapi\.plugin_t"]], + ["%(1)s", [r"ida_.*\.(.*_Hooks)"]], + ], + "exclude": [ + "simple_appcall_common" + ], + "link-format": "%(1)s" +} diff --git a/tools/gen_examples_index.py b/tools/gen_examples_index.py index 3d003ed..299118d 100755 --- a/tools/gen_examples_index.py +++ b/tools/gen_examples_index.py @@ -1,5 +1,5 @@ """ -Generate the index.html for the examples subdirectory, +Generate the index.html/.md for the examples subdirectory, based on structured docstrings on each Python example """ @@ -9,61 +9,175 @@ import re import os import sys +prog_name, _ = os.path.splitext(os.path.basename(sys.argv[0])) +prog_dir = os.path.dirname(sys.argv[0]) + from argparse import ArgumentParser parser = ArgumentParser() -parser.add_argument("-e", "--examples-dir", required=True) -parser.add_argument("-t", "--template", required=True) -parser.add_argument("-o", "--output", required=True) +subparsers = parser.add_subparsers(dest="command") +subparsers.required = True +w_subparser = subparsers.add_parser("write") +s_subparser = subparsers.add_parser("show") + parser.add_argument("-v", "--verbose", default=False, action="store_true") +w_subparser.add_argument("-e", "--examples-dir", required=True) +w_subparser.add_argument("-t", "--template", required=True) +w_subparser.add_argument("-o", "--output", required=True) +s_subparser.add_argument("-k", "--keywords", default=False, action="store_true") +s_subparser.add_argument("-s", "--search", type=str) +s_subparser.add_argument("-e", "--examples-dir", required=True) + args = parser.parse_args() +# -------------------------------------------------------------------------- def verb(msg): if args.verbose: print(msg) +# -------------------------------------------------------------------------- class ProcessException(Exception): pass -#------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- +def python2(): + return sys.version_info.major == 2 +# -------------------------------------------------------------------------- +def read_config(): + global config + + config_path = os.path.join(prog_dir, prog_name + ".cfg") + with open(config_path, "r") as f: + config = ast.literal_eval(f.read()) + + config["exclude"] = set(config["exclude"]) + + for _, key_res in config["auto-keywords"]: + for i in range(len(key_res)): + key_res[i] = re.compile(key_res[i] + "$") # anchored for match() + +#------------------------------------------------------------------------------- class Examples(object): def __init__(self): - self.re_indent = re.compile(r'^ *') - self.re_tag = re.compile(r'^ *([a-zA-Z_][a-zA-Z_0-9]*):') + self.re_indent = re.compile(r"^ *") + self.re_tag = re.compile(r"^ *([a-zA-Z_][a-zA-Z_0-9]*):") + self.re_wspace = re.compile(r"[ \t\r\n]*") + self.re_userlink = re.compile(r"@{(.*?)}") - self.tags = Tags() - self.html = None - - def template(self, path): - with open(path, 'r') as f: - self.html = HTML(f.read(), self.tags) + self.index = None + self.shortcut_finder = ShortcutFinder() def process(self): - if not self.html: - raise ProcessException('No template!') + if args.command == "write": + # parses the templates, and bails out on template error + # before going into analyzing the examples + self.index = ExamplesIndex() self.examples = [] - for relpath, path in self._files_with_extension('.py', args.examples_dir): + for relpath, path in self._files_with_extension(".py", args.examples_dir): verb("Processing \"%s\"" % path) - with open(path, 'r') as f: - self._load_ast(relpath, path, ast.parse(f.read(), path)) + with open(path, "r") as f: + self._load_ast(relpath, ast.parse(f.read(), path)) - self.examples = {'sub': sorted(self.examples, \ - key=lambda x: x[self.tags.order()])} + self._post_read_processing() - self.html.produce(self.examples) + if args.command == "show": + self._show() + elif args.command == "write": + self.index.produce(self.examples, self._collect_all_keywords()) - def _load_ast(self, relpath, path, tree): - self.tags.reset() - self.tags.add(Tags.PATH, relpath) - self.tags.add(Tags.NAME, os.path.splitext(os.path.basename(path))[0]) - self.tags.add(Tags.USES, self._uses_names(tree)) - self.tags.add(Tags.CATEGORY, relpath.split(os.sep)[0]) - self._parse_structured_comment(ast.get_docstring(tree, False)) - self.examples.append(self.tags.get()) + def _post_read_processing(self): + self._collect_example_names() # requisite for other post-read actions - def _parse_structured_comment(self, docstring): + self._collect_imported_uses() + + # trim down the final collection + + self.examples = [e for e in self.examples \ + if e.name not in config["exclude"]] + self.examples = sorted(self.examples, key=lambda x: x.name) + + self._collect_example_names() # now invalid, redo + + self._parse_description_links() + self._check_see_also_links() + + def _show(self): + if args.keywords: + print("\nKeywords used:") + for keyword in self._collect_all_keywords(): + print(" ", keyword) + + if args.search: + print("\nExamples using \"%s\":" % args.search) + for example in self.examples: + if args.search in example.keywords: + print(" ", example.path) + + def _collect_all_keywords(self): + all_keywords = set() + for example in self.examples: + all_keywords.update(example.keywords) + + return sorted(all_keywords, key=lambda x: x.lower()) + + def _load_ast(self, relpath, tree): + name = os.path.splitext(os.path.basename(relpath))[0] + category = relpath.split(os.sep)[0] + + # fix for Windows: paths may contain "\" instead of "/"; + # these ultimately come from os.walk() and the command line + # (_files_with_extension(), plus args.examples_dir -> rootdir) + relpath = relpath.replace("\\", "/") + + uses, imports = self._uses_and_imports(tree) + docstring = ast.get_docstring(tree, False) + + tags = Tags() + tags.add(Tags.PATH, relpath) + tags.add(Tags.NAME, name) + tags.add(Tags.CATEGORY, category) + + shortcuts = sorted(self.shortcut_finder.find(tree), \ + key=lambda x: x.lower()) + tags.add(Tags.SHORTCUTS, shortcuts) + + # the next two are kept as sets; + # they will be sorted lists after _collect_imported_uses() + tags.add(Tags.USES, uses) + tags.add(Tags.IMPORTS, imports) + + self._parse_structured_comment(docstring, tags) + self._add_autokeywords(tags) + + self.examples.append(Example(tags.get())) + + def _add_autokeywords(self, tags): + def add_keyword(m, key_out): + groups_dict = {str(n): m.group(n) for n in range(1, m.re.groups+1)} + new_keyword = key_out % groups_dict + + keywords = tags.tag_so_far(Tags.KEYWORDS) + keywords.append(new_keyword) + + global config + autokeys = config["auto-keywords"] + + for use in tags.tag_so_far(Tags.USES): + for key_out, key_res in autokeys: + # check for ALL auto-keywords generated by this "use" + for key_re in key_res: + # check for ANY pattern that matches this auto-keyword + m = key_re.match(use) + if m: + add_keyword(m, key_out) + break + + keywords = tags.tag_so_far(Tags.KEYWORDS) + tags.add(Tags.KEYWORDS, sorted(keywords, key=lambda x: x.lower())) + + def _parse_structured_comment(self, docstring, tags): if not docstring: return @@ -76,63 +190,54 @@ class Examples(object): self._remove_common_indentation(group_lines) if group_tag == Tags.DESCRIPTION: - item = '\n'.join(group_lines).lstrip('\n') + item = "\n".join(group_lines).strip("\n") elif group_tag in (Tags.KEYWORDS, Tags.SEE_ALSO): - item = [{group_tag: x.strip()} \ - for x in ','.join(group_lines).split(',')] + item = [] + for x in ",".join(group_lines).split(","): + x = x.strip() + if x: + item.append(x) else: - item = ' '.join(group_lines) + item = " ".join(group_lines).strip() - self.tags.add(group_tag, item) + if group_tag in (Tags.SUMMARY, Tags.DESCRIPTION): + # capitalize first + m = self.re_wspace.match(item) + if m and m.end() < len(item): + item = item[:m.end()] + item[m.end()].upper() \ + + item[m.end()+1:] - # Blocks of lines are separated by an empty line. + verb(" Read from docstring: tag \"%s\"" % group_tag) + tags.add(group_tag, item) + + # Blocks of lines are separated by indentation: + # a block MUST begin with a tag (followed by ":") at indent 0. + # # An attempt is made to preserve the original indentation # of each block of lines. - # - # If a block of lines wishes to contain a blank line, - # it must represent it with a line containing only a dot ('.') - # (indentation is irrelevant for these 'dot' lines). - # Example: - # description: - # This is one - # big paragraph - # . - # This is another - # big paragraph - # . - # This is the final - # big paragraph - warned = False - - for line in docstring.split('\n'): + for line in docstring.split("\n"): indent, line = self._indented_line(line.rstrip(), 0) - if line == '': + if indent == 0 and line: end_group() first_line = True group_tag = None group_lines = [] - continue if first_line: + if not line: + # ignore blank lines before the first tag + continue first_line = False m = self.re_tag.match(line) if not m: - if not warned: - warned = True - path = self.tags.get()[Tags.PATH] - verb('{}:\n No tag in docstring'.format(path)) - continue + tags.error("No tag in docstring: \"\"\"\n%s\n\"\"\"" % docstring) group_tag = m.group(1) - if not self.tags.is_valid(group_tag) or \ - not self.tags.can_occur_in_docstring(group_tag): - path = self.tags.get()[Tags.PATH] - msg = self.tags.error_message(group_tag) - verb('{}:\n {}'.format(path, msg)) - group_tag = None + tags.valid(group_tag) + tags.can_occur_in_docstring(group_tag) indent, line = self._indented_line(line, m.end()) @@ -149,9 +254,6 @@ class Examples(object): indent = fromPos + len(m.group()) line = line[m.end():] - if line == '.': - return None, None - return indent, line def _remove_common_indentation(self, lines): @@ -162,18 +264,127 @@ class Examples(object): for i in range(len(lines)): if lines[i][1]: - lines[i] = ((lines[i][0] - min_indent) * ' ') + lines[i][1] + lines[i] = ((lines[i][0] - min_indent) * " ") + lines[i][1] else: - lines[i] = '' + lines[i] = "" - def _uses_names(self, tree): + def _uses_and_imports(self, tree): names = set() - def callback(name): + def callback_uses(name): + verb(" Uses \"%s\"" % name) names.add(name) - visitor = TreeVisitor(callback, ['idc', 'idautils']) + imports = set() + def callback_imports(name): + verb(" Imports \"%s\"" % name) + imports.add(name) + + visitor = TreeVisitor(callback_uses, + callback_imports, + ["idc", "idautils"]) visitor.generic_visit(tree) - return [{Tags.USES: name} for name in sorted(names)] + + return names, imports + + def _parse_description_links(self): + # (all examples have been read already) + for example in self.examples: + text = example.description + + out = "" + while True: + m = self.re_userlink.search(text) + if not m: + break + + target_name = m.group(1) + if target_name not in self.examples_set: + raise ProcessException( + "Link in \"%s\": \"%s\" is not an example name" \ + % (example.path, target_name)) + + try: + subs = config["link-format"] % {'1': target_name} + except Exception as ex: + raise ProcessException( + "Link format, %s: %s" % (type(ex).__name__, ex)) + + out = text[:m.start()] + subs + text = text[m.end():] + + example.description = out + text + + def _check_see_also_links(self): + # do their targets exist? + # (all examples have been read already) + for example in self.examples: + for see_also in example.see_also: + if see_also not in self.examples_set: + raise ProcessException( + "%s\n See-also link to unexistent \"%s\"" + % (example.path, see_also)) + + def _collect_imported_uses(self): + # if an example imports another, + # make the parent "use" the API calls that the child "uses" + # (this has to be done after all examples have been read) + + examples_dict = { e.name: e for e in self.examples } + + # 1. restrict the imports to examples only + + imported_set = set() + for example in self.examples: + example.imports &= self.examples_set + imported_set |= example.imports + + # 2. topological sort of the imported examples + + graph = {} + for example in self.examples: + for imported in example.imports: + # this example imports other examples + if example.name in graph: + graph[example.name].append(imported) + else: + graph[example.name] = [imported] + + roots = set(graph) - imported_set + + # 3. add children uses to parents + + for name in roots: + self._add_imported_uses(name, examples_dict, graph, set()) + + # 4. now we can make them sorted lists instead of sets + # (we leave "uses" of uppercase before lowercase; + # the use of constants looks better this way) + + for example in self.examples: + example.uses = sorted(example.uses) + example.imports = sorted(example.imports, key=lambda x: x.lower()) + + def _add_imported_uses(self, name, examples_dict, graph, cycle_detect): + # cycles shouldn't happen if we're reading code that actually works, + # but we better protect ourselves against bad input + cycle_detect.add(name) + + example = examples_dict[name] + + for child in graph[name]: + if child in graph: + if child in cycle_detect: + raise ProcessException("Cycle in import: %s -> %s" % (name, child)) + + self._add_imported_uses(child, examples_dict, graph, cycle_detect) + + example.uses |= examples_dict[child].uses + + cycle_detect.remove(name) + + def _collect_example_names(self): + # (after all examples have been read) + self.examples_set = set(e.name for e in self.examples) def _files_with_extension(self, ext, rootdir): for path, _, files in os.walk(rootdir): @@ -184,7 +395,6 @@ class Examples(object): os.path.join(path, filename) #------------------------------------------------------------------------------- - class Tags(object): NAME = "name" PATH = "path" @@ -192,61 +402,79 @@ class Tags(object): DESCRIPTION = "description" CATEGORY = "category" KEYWORDS = "keywords" + SHORTCUTS = "shortcuts" USES = "uses" + IMPORTS = "imports" SEE_ALSO = "see_also" - JSDATA = "jsdata" + AUTHOR = "author" - # tags that can be used in the template (as a comment) + # tags that can be used in the template (with the {{example.XXX}} syntax) ALL_TAGS = set([NAME, PATH, SUMMARY, DESCRIPTION, CATEGORY, \ - KEYWORDS, USES, SEE_ALSO, JSDATA]) + KEYWORDS, USES, IMPORTS, SEE_ALSO, AUTHOR]) # tags that can be used in the examples' docstrings IN_DOCSTRING = set([SUMMARY, DESCRIPTION, CATEGORY, \ - KEYWORDS, USES, SEE_ALSO]) + KEYWORDS, USES, SEE_ALSO, AUTHOR]) def __init__(self): - self.tags = {} - self.reset() - - def order(self): - return self.NAME - - def error_message(self, name): - return 'Unrecognized tag: "{}"'.format(name) - - def check(self, name): - if name not in self.ALL_TAGS: - raise ProcessException(self.error_message(name)) - - def is_valid(self, name): - return name in self.ALL_TAGS - - def can_occur_in_docstring(self, tag): - return tag in self.IN_DOCSTRING - - def reset(self): self.items = {} for tag in self.ALL_TAGS: - if tag in (self.KEYWORDS, self.USES, self.SEE_ALSO): + if tag in (self.KEYWORDS, self.SEE_ALSO): self.items[tag] = [] - elif tag != self.JSDATA: - self.items[tag] = '' + elif tag in (self.USES, self.IMPORTS): + self.items[tag] = set() + else: + self.items[tag] = "" + + def error(self, message): + raise ProcessException("%s:\n %s" \ + % (self.items[self.PATH], message)) + + def valid(self, tag): + if tag not in self.ALL_TAGS: + self.error("Unrecognized tag: \"%s\"" % tag) + + def can_occur_in_docstring(self, tag): + if tag not in self.IN_DOCSTRING: + self.error("Not allowed in docstring: \"%s\"" % tag) def add(self, tag, item): self.items[tag] = item + def tag_so_far(self, tag): + return self.items[tag] + def get(self): return self.items #------------------------------------------------------------------------------- +class Example(object): + def __init__(self, content): + self.content = content + def __getattr__(self, key): + if key in self.content: + return self.content[key] + raise AttributeError("Example: \"%s\"" % key) + +#------------------------------------------------------------------------------- class TreeVisitor(ast.NodeVisitor): - def __init__(self, callback, interesting_names, *args): + def __init__(self, callback_uses, + callback_imports, + interesting_names, + *args): super(TreeVisitor, self).__init__(*args) - self.my_callback = callback + self.callback_uses = callback_uses + self.callback_imports = callback_imports self.interesting_names = set(interesting_names) + def visit_Import(self, node): + for alias in node.names: + self.callback_imports(alias.name) + def visit_ImportFrom(self, node): + self.callback_imports(node.module) + if self._is_interesting(node.module): self._add_interesting_names(node.names) @@ -257,7 +485,7 @@ class TreeVisitor(ast.NodeVisitor): self.interesting_names.add(name) def _is_interesting(self, name): - return name.startswith('ida_') or name in self.interesting_names + return name.startswith("ida_") or name in self.interesting_names def visit_Name(self, node): self._callback_if_interesting(node) @@ -270,8 +498,8 @@ class TreeVisitor(ast.NodeVisitor): if not names: return if self._is_interesting(names[0]) \ - and names[-1] != '__init__': # removed calls to base constructors - self.my_callback('.'.join(names)) + and names[-1] != "__init__": # removed calls to base constructors + self.callback_uses(".".join(names)) def _dotted_name(self, node): if isinstance(node, ast.Name): @@ -283,278 +511,417 @@ class TreeVisitor(ast.NodeVisitor): return None #------------------------------------------------------------------------------- +class ShortcutFinder(ast.NodeVisitor): + def find(self, tree): + self._reset() + self.generic_visit(tree) -class HTML(object): - def __init__(self, template, tags): - self.replacer = TemplateReplacer(tags) + return self.results - self.replacer.template(template) + def _reset(self): + self.results = [] + self.stack = [] - def produce(self, examples): - with open(args.output, 'w') as f: - self.replacer.expand(examples, f) + def generic_visit(self, node): + # look for "action_desc_t" instances, 4th constructor parameter + if isinstance(node, ast.Call): + name = self._name(node.func) + + if name == "ida_kernwin.action_desc_t": + if len(node.args) >= 4: + # search the scopes for value(s) of this parameter + values = self._find_values(node.args[3]) + for value in values: + self.results.append(value) + + # assigment - fill in (string) values into the current scope + elif isinstance(node, ast.Assign): + names = [self._name(t) for t in node.targets] + scope = self.stack[-1][1] + + value = None + # save strings + if isinstance(node.value, ast.Str): + value = node.value.s + # save also lists of names, in case they are class names + elif isinstance(node.value, ast.List): + if all(isinstance(elt, ast.Name) for elt in node.value.elts): + value = [elt.id for elt in node.value.elts] + + for name in names: + self._assign(scope, name, value) + + # if our immediate ancestor is a class definition, + # add this symbol also to the class scope + if len(self.stack) > 1 and self.stack[-2][0]: + class_scope = self.stack[-2][0] + if self.class_name in class_scope: + for name in names: + self._assign(class_scope[self.class_name], name, value) + + # remember class names + elif isinstance(node, ast.ClassDef): + class_scope = self.stack[-1][0] + self.class_name = node.name + + class_scope[self.class_name] = {} + + # "for" - treat it as a list assignment + elif isinstance(node, ast.For): + # only syntax recognized: "for name in name" + if isinstance(node.target, ast.Name) and \ + isinstance(node.iter, ast.Name): + name = node.target.id + scope = self.stack[-1][1] + values = self._find_list(node.iter.id) + # save the variable as having multiple values + self._assign(scope, name, values) + scope[name] = values + + # keep a stack of scopes [classes, variables] + self.stack.append([{}, {}]) + super(ShortcutFinder, self).generic_visit(node) + self.stack.pop() + + def _assign(self, scope, name, value): + if value: + scope[name] = value + else: + # symbol overwritten with something I don't understand, forget + if name in scope: + del scope[name] + + def _find_values(self, arg): + if isinstance(arg, ast.Str): + return [arg.s] + + # single variable + if isinstance(arg, ast.Name): + value = self._variable_in_scope(arg.id) + if value: + return [value] + + # variable dot variable - TODO: nested classes + if isinstance(arg, ast.Attribute) and \ + isinstance(arg.value, ast.Name): + left_name = arg.value.id + right_name = arg.attr + + values = self._find_list(left_name) + if values: + # return the values for each class scope + returned = [] + for c_name in values: + class_scope = self._find_class_scope(c_name) + if right_name in class_scope: + returned.append(class_scope[right_name]) + return returned + + return [] + + def _variable_in_scope(self, name): + for i in range(len(self.stack) - 1, -1, -1): + scope = self.stack[i][1] + if name in scope: + return scope[name] + return None + + def _find_list(self, name): + values = self._variable_in_scope(name) + if isinstance(values, list): + return values + return None + + def _find_class_scope(self, name): + for i in range(len(self.stack) - 1, -1, -1): + class_scope = self.stack[i][0] + if name in class_scope: + return class_scope[name] + return {} + + def _name(self, node): + if isinstance(node, ast.Name): + return node.id + if isinstance(node, ast.Attribute): + return self._name(node.value) + "." + node.attr + + # too complex for me + return "@" + node.__class__.__name__ #------------------------------------------------------------------------------- +class ExamplesIndex(object): + def __init__(self): + self.replacer = TemplateReplacer() -class SpecialBlock(object): - GROUP = 0 - FIRST = 1 - LAST = 2 + with open(args.template, "r") as f: + self.replacer.template(f.read()) - def __init__(self, kind, payload=None): - self.kind = kind - self.payload = payload + def produce(self, examples, all_keywords): + with open(args.output, "w") as f: + self.replacer.expand(examples, all_keywords, f) #------------------------------------------------------------------------------- - class TemplateReplacer(object): - def __init__(self, tags): - self.tags = tags + def __init__(self): + self.re_percent_line = re.compile(r" *% *") + self.re_end_keyword = re.compile(r"end([a-z]+|})$") + self.re_variable = re.compile(r"{{(.*?)}}") - self.re_variable = re.compile(r'(?i)') - - self.comment_block = '' - self.comment_end = '' - - self.comment_group = re.compile(r'$') - - self.comment_first = '' - self.comment_last = '' + self.keywords = { # has_body, keyword + ast.If: (True, "if"), + ast.For: (True, "for"), + ast.FunctionDef: (True, "def"), + ast.Break: (False, "break"), + ast.Continue: (False, "continue"), + ast.Return: (False, "return") + } + # "else" treated separately def template(self, content): - lines = content.strip().split('\n') + lines = content.rstrip("\n").split("\n") - # convert the file content, with block-end repetition blocks, - # into a list of (1) strings and (2) nested lists for blocks + # convert the template lines into a Python module - stack = [[]] + body = [self._sandwich(lines)] + self.module = ast.Module(body=body, type_ignores=[]) + self.module = ast.fix_missing_locations(self.module) - for line in lines: - clean = line.strip().lower() - if clean == self.comment_block: - stack.append([]) - elif clean == self.comment_end: - if len(stack) == 0: - raise ProcessException('mismatched gen:end') - d = stack.pop() - stack[-1].append(d) - elif clean == self.comment_first: - # open block - stack.append([SpecialBlock(SpecialBlock.FIRST)]) - elif clean == self.comment_last: - # open block - stack.append([SpecialBlock(SpecialBlock.LAST)]) - else: - m = self.comment_group.match(clean) - if m: - v = m.group(1) - self.tags.check(v) - # open block - stack.append([SpecialBlock(SpecialBlock.GROUP, v)]) - else: - stack[-1].append(line) + # "import" the module + self.module_scope = {} + exec(compile(self.module, "Template", "exec"), self.module_scope) - self.template = stack.pop() + def expand(self, examples, all_keywords, f): + # group by category + grouped = {} + for example in examples: + if example.category not in grouped: + grouped[example.category] = [] + grouped[example.category].append(example) - if len(stack) != 0: - raise ProcessException('gen:block/group without gen:end') + # call the template's entry point + self.module_scope["__mm__entry"](grouped, all_keywords, f) - def expand(self, data, f): - self._expand(self.template, data, None, f) + def _sandwich(self, lines, lineno=0, open_keyword=None): + in_else = False - def _expand(self, block, data, conditions, f): - self._verify_block(block, data) + body = [] + text = "" + while lineno < len(lines): + line = lines[lineno] + lineno += 1 - if not isinstance(block, list): - raise ProcessException('Expected block') + # process "% statement"s in the template + m = self.re_percent_line.match(line) + if m: + line = self._clean_line(line, m.end()) - for line in block: - if isinstance(line, list): - first = False # meaning, restrict/show only the first - last = False - if line and isinstance(line[0], SpecialBlock): - special = line[0] - line = line[1:] - if special.kind == SpecialBlock.GROUP: - gvar = special.payload - subkey = 'sub' - elif special.kind == SpecialBlock.FIRST: - first = True - subkey = None - elif special.kind == SpecialBlock.LAST: - last = True - subkey = None - else: - raise ProcessException('Unknown SpecialBlock: {} {}' \ - .format(special.kind, - repr(special.payload))) - else: - # regular block - gvar = None - subkey = self._obtain_subkey(line) + # text so far + if text: + body.extend(self._substitute_variables(text)) + text = "" - if subkey is None: - # (i.e. first,last): multiple lines but no data repetition - if conditions: - if first and not conditions[0]: - continue - if last and not conditions[1]: - continue - self._expand(line, data, None, f) + # "else" is not an ast.; parsed separately + ret = self._is_else(line, lineno, open_keyword) + if ret: + in_else = True + prev_body = body + body = [] continue - subdata = data[subkey] + # code block start "%{" + if self._is_start_of_code_block(line, lineno): + inner_body, _, lineno = self._code_block(lines, lineno) + body.extend(inner_body) + continue - if not isinstance(subdata, list): - raise ProcessException('Expected multiple data for {}' \ - .format('group' if gvar else 'block')) + if self._is_end_keyword(line, lineno, open_keyword): + if not in_else: + prev_body, body = body, [] + return prev_body, body, lineno - # repeat for each item + has_body, keyword, statement = self._check_percent_line(line, lineno) + if has_body: + inner_body, \ + inner_else, lineno = self._sandwich(lines, lineno, keyword) - if gvar: - subdata = self._group_by(subdata, gvar) + statement.body = inner_body + if inner_else: + statement.orelse = inner_else - n_items = len(subdata) - for i in range(n_items): - conditions = i == 0, i == n_items - 1 - self._expand(line, subdata[i], conditions, f) + body.append(statement) continue - f.write(self._substitute_variables(line, data)) - f.write('\n') + text += line + "\n" - def _obtain_subkey(self, block): - # presently (we don't need more at the moment) - # a block contains either: - # - a single variable inside, under the key = variable - # - multiple variables, under a constant key = 'sub' - # (so just one per block) + if open_keyword: + raise ProcessException( + "Template: unterminated \"%s\"" % open_keyword) - variables = set() + if text: + body.extend(self._substitute_variables(text)) - for line in block: - if isinstance(line, list): - continue # only this level + # wrap the final code in a function, so that data can be passed + return self._function_def("__mm__entry", + ["examples", "all_keywords", "_mm_f"], + body) - for key, _, _ in self._variables_in_line(line): - variables.add(key) + def _code_block(self, lines, lineno): + start_lineno = lineno - for key in variables: - break # get first + code = "" + while lineno < len(lines): + line = lines[lineno] + lineno += 1 - return key if len(variables) == 1 else 'sub' + # process "% statement"s in the template + m = self.re_percent_line.match(line) + if m: + line = self._clean_line(line, m.end()) - def _group_by(self, data, gvar): - # data assumed already sorted - grouped = {} - for item in data: - value = item[gvar] - if isinstance(value, list): - for obj in value: - subvalue = obj[gvar] - if subvalue not in grouped: - grouped[subvalue] = [] - grouped[subvalue].append(item) - else: - if value not in grouped: - grouped[value] = [] - grouped[value].append(item) + if self._is_end_of_code_block(line, lineno): + try: + body = ast.parse(code, "Template").body + return body, [], lineno + except: + line_range = "%s" % lineno if lineno == start_lineno \ + else "%d-%d" % (start_lineno, lineno) + raise ProcessException("Template[%s]: syntax error" % \ + line_range) + break # no other % allowed but %} - return [{gvar: key, 'sub': grouped[key]} for key in sorted(grouped)] + code += line + "\n" - def _substitute_variables(self, line, data): - out = '' - last = 0 - for key, start, end in self._variables_in_line(line): - sub = self._substitution_string(key, data) - out += line[last:start] + sub - last = end - out += line[last:] + raise ProcessException("Template: unterminated \"{\"") - return out + def _is_else(self, line, lineno, open_keyword): + if line != "else:": + return False - def _substitution_string(self, key, data): - if key != Tags.JSDATA: - value = data[key] - if key == Tags.PATH: - value = "/".join(value.split(os.sep)) - return str(value) + # use only in statements that accept "else" + if open_keyword not in ("if", "for"): + raise ProcessException( + "Template[%d]: invalid \"else\"%s" % \ + (lineno, " in \"%s\"" % open_keyword \ + if open_keyword else "")) - if 'sub' not in data: - ProcessException('Please use at the top level only' \ - .format(Tags.JSDATA)) - data = data['sub'] + return True - # JavaScript representation of the data - js = '// collected data\nexamples = [' - first = True - for item in data: - if first: - first = False - else: - js += ',' - js += '\n' + self._js_example(item) - js += '\n];' + def _is_start_of_code_block(self, line, lineno): + return line == "{" - return js + def _is_end_of_code_block(self, line, lineno): + return line == "}" - def _js_example(self, data): - first = True - js = '{' - for tag in Tags.ALL_TAGS: - if tag in data and data[tag]: - if first: - first = False - else: - js += ',' - js += "'" + tag + "': " + self._js_subdata(tag, data[tag]) - js += '}' - return js + def _is_end_keyword(self, line, lineno, open_keyword): + m = self.re_end_keyword.match(line) + if not m: + return False - def _js_subdata(self, tag, subdata): - if isinstance(subdata, list): - # no need to recurse, these are object enclosing a single item - subdata = [x[tag] for x in subdata] + if m.group(1) != open_keyword: + raise ProcessException( + " Template[%d]: expected \"end%s\"" % \ + (lineno, open_keyword)) - return repr(subdata) + return True - def _verify_block(self, block, data): - # check that all variables at the first 'flat' level of this block - # are present in the data and are not sublists - # (which would require an inner block) + def _check_percent_line(self, line, lineno): + # return the code for a "% statement" in the template + if line[-1] == ":": + line += "\n pass" + try: + tree = ast.parse(line, "Template") + except: + raise ProcessException("Template[%d]: syntax error" % lineno) - for line in block: - if isinstance(line, list): - continue # check only the flat level + if type(tree) is ast.Module and \ + len(tree.body) == 1: + head = type(tree.body[0]) + if head in self.keywords: + return self.keywords[head] + (tree.body[0],) - for key, _, _ in self._variables_in_line(line): - if key == Tags.JSDATA: - continue - if key not in data: - raise ProcessException('No keyword "{}" in data' \ - .format(key)) - if isinstance(data[key], list): - raise ProcessException('Missing block for multiple "{}" data' \ - .format(key)) + raise ProcessException("Template[%d]: unrecognized keyword" % lineno) - def _variables_in_line(self, line): - pos = 0 - while True: - m = self.re_variable.search(line, pos) - if m is None: + def _clean_line(self, line, code_pos): + comment_pos = line.find("#") + if comment_pos >= 0: + line = line[:comment_pos] + + return line[code_pos:].rstrip() + + def _substitute_variables(self, input_text): + # generate code to substitute {{variables}} when the template is run + code = [] + text = "" + while input_text: + m = self.re_variable.search(input_text) + if not m: break - tag = m.group(1).lower() - self.tags.check(tag) + # text in-between + text += input_text[:m.start()] + if text: + code.append(self._output_text(text)) + text = "" + input_text = input_text[m.end():] - yield tag, m.start(), m.end() - pos = m.end() + code.append(self._output_eval(m.group(1))) + text += input_text + if text: + code.append(self._output_text(text)) + + return code + + def _output_text(self, text): + return ast.Expr(value=self._call(self._dot("_mm_f", "write"), + [ast.Str(text)])) + + def _output_eval(self, expr): + # eval(expr) + value = self._call(ast.Name("eval", ast.Load()), [ast.Str(expr)]) + # str(eval(expr)) + valueStr = self._call(ast.Name("str", ast.Load()), [value]) + # _mm_f.write(str(eval(expr))) + call = self._call(self._dot("_mm_f", "write"), [valueStr]) + + return ast.Expr(call) + + def _dot(self, name1, name2): + return ast.Attribute(value=ast.Name(name1, ast.Load()), + attr=name2, + ctx=ast.Load()) + + def _call(self, func, args): + return ast.Call( + func=func, + args=args, + keywords=[] + ) + + def _function_def(self, fun_name, fun_args, fun_body): + if python2(): + fun_args = ast.arguments(args=[ast.Name(id=a, ctx=ast.Param()) \ + for a in fun_args], + defaults=[]) + else: + fun_args = ast.arguments(args=[ast.arg(a, None) \ + for a in fun_args], + posonlyargs=[], + kwonlyargs=[], + kw_defaults=[], + defaults=[]) + + return ast.FunctionDef(name=fun_name, + args=fun_args, + body=fun_body, + decorator_list=[]) + +#------------------------------------------------------------------------------- try: + read_config() e = Examples() - e.template(args.template) e.process() except ProcessException as ex: - print('? {}\n {}'.format(sys.argv[0], ex)) + print(ex) sys.exit(1) # other exceptions - let them fail diff --git a/tools/gen_idc_bc695.py b/tools/gen_idc_bc695.py deleted file mode 100644 index 1505bfd..0000000 --- a/tools/gen_idc_bc695.py +++ /dev/null @@ -1,217 +0,0 @@ - -# This script will do the following things: -# - open idc.idc -# - advance to the compatibility macros section -# - read, and parse each of those -# - if the symbol doesn't exist in the 'idc' module, dump its alias into the output file - -import argparse -p = argparse.ArgumentParser() -p.add_argument("-i", "--idc", required=True, help="Path to the idc.idc file") -p.add_argument("-o", "--output", required=True, help="Path to the output file") -p.add_argument("-d", "--debug-out", default=False, action="store_true", help="Dump code that shows, at ida start-time, what symbols would be overriden by the compat layer") -args = p.parse_args() - -import os - -with open(args.idc) as fin: - inlines = fin.readlines() - -# search for compat macros section, and remove uninteresting lines -for idx in range(len(inlines)): - if inlines[idx].replace(" ", "").find("COMPATIBILITYMACROS") > -1: - break -assert(idx < len(inlines)) -inlines=inlines[idx:] - -def nextline(): - global inlines - l = inlines[0].strip() - inlines=inlines[1:] - idx = l.find("//") - if idx > -1: - l = l[0:idx].strip() - return l - -# set of symbols that must not be redefined -forbidden = [ - "GetLocalType", - "AddSeg", - "SetType", - "GetDisasm", - "SetPrcsr", - "GetFloat", - "GetDouble", - "AutoMark", - "is_pack_real", - "set_local_type", - "WriteMap", - "WriteTxt", - "WriteExe", - "CompileEx", - "uprint", - "form", - "Appcall", - "ApplyType", - "GetManyBytes", - "GetString", - "ClearTraceFile", - "FindBinary", - "FindText", - "NextHead", - "ParseTypes", - "PrevHead", - "ProcessUiAction", - "SaveBase", - "eval", - "MakeStr", - "GetProcessorName", - "SegStart", - "SegEnd", - "SetSegmentType", - "CleanupAppcall", - "DelUserInfo", - "process_config_line", -] - -symbols_modules = [ - ("AF_ANORET", "ida_ida"), - ("AF_ANORET", "ida_ida"), - ("AF_CHKUNI", "ida_ida"), - ("AF_DATOFF", "ida_ida"), - ("AF_DOCODE", "ida_ida"), - ("AF_DODATA", "ida_ida"), - ("AF_FTAIL", "ida_ida"), - ("AF_HFLIRT", "ida_ida"), - ("AF_JUMPTBL", "ida_ida"), - ("AF_PURDAT", "ida_ida"), - ("AF_REGARG", "ida_ida"), - ("AF_SIGCMT", "ida_ida"), - ("AF_SIGMLT", "ida_ida"), - ("AF_STKARG", "ida_ida"), - ("AF_STRLIT", "ida_ida"), - ("AF_TRFUNC", "ida_ida"), - ("AF_VERSP", "ida_ida"), - ("BADADDR", "ida_idaapi"), - ("FF_UNUSED", "ida_bytes"), - ("FIXUPF_CREATED", "ida_fixup"), - ("FIXUPF_EXTDEF", "ida_fixup"), - ("FIXUPF_REL", "ida_fixup"), - ("FIXUPF_UNUSED", "ida_fixup"), - ("FIXUP_OFF8", "ida_fixup"), - ("GN_VISIBLE", "ida_name"), - ("SEGMOD_KEEP", "ida_segment"), - ("SEGMOD_KILL", "ida_segment"), - ("SEGMOD_SILENT", "ida_segment"), - ("SETPROC_IDB", "ida_idp"), - ("SETPROC_LOADER", "ida_idp"), - ("SETPROC_LOADER_NON_FATAL", "ida_idp"), - ("STRF_AUTO", "ida_ida"), - ("STRF_COMMENT", "ida_ida"), - ("STRF_GEN", "ida_ida"), - ("STRF_SAVECASE", "ida_ida"), - ("STRF_SERIAL", "ida_ida"), - ("STRTYPE_C", "ida_nalt"), - ("STRTYPE_C_16", "ida_nalt"), - ("STRTYPE_C_32", "ida_nalt"), - ("STRTYPE_LEN2_16", "ida_nalt"), - ("STRTYPE_LEN4_16", "ida_nalt"), - ("STRTYPE_PASCAL", "ida_nalt"), - ("STRTYPE_TERMCHR", "ida_nalt"), - ("V695_REF_VHIGH", "ida_nalt"), - ("V695_REF_VLOW", "ida_nalt"), - ("error", "ida_kernwin"), - ("warning", "ida_kernwin"), - ("ask_str", "ida_kernwin"), - ("ask_file", "ida_kernwin"), - ("ask_addr", "ida_kernwin"), - ("ask_long", "ida_kernwin"), - ("is_mapped", "ida_bytes"), - ("decode_insn", "ida_ua"), - ("HIST_IDENT", "ida_kernwin"), -] - -import re -def maybe_qualify(s): - last_idx = -1 - for sym, mod in symbols_modules: - idx = s.find(sym) - if idx > last_idx: - s = s.replace(sym, "%s.%s" % (mod, sym)) - last_idx = idx + 1 + len(mod) - return s - -def remove_parens(arg): - m = re.match(r'\s*\((.*)\)\s*$', arg) - if m: - arg = m.group(1) - return arg.strip() - -def fix_ternary_operator(code): - match = re.match(r'([^(]+)\((.*)\)', code) - if match: - changed = False - func = match.group(1) - args = match.group(2) - out = [] - for arg in args.split(','): - m2 = re.match(r'([^?]+)\?(.*):(.*)', arg) - if m2: - cond = remove_parens(m2.group(1)) - ithen = remove_parens(m2.group(2)) - ielse = remove_parens(m2.group(3)) - arg = ithen + ' if ' + cond + ' else ' + ielse - changed = True - out.append(arg.strip()) - if changed: - code = func + '(' + ', '.join(out) + ')' - return code - -import time -funcall_pat = re.compile(r"#define\s+([a-zA-Z0-9_]*)\s*(\([^\)]*\))\s*(.*)") -alias_pat = re.compile(r"#define\s+([a-zA-Z0-9_]*)\s*([a-zA-Z0-9_/\*\.]*)\s*$") -with open(args.output, "w") as fout: - fout.write("# Autogenerated on: %s\n\n" % time.strftime("%c")) - for mod in sorted(list(set(map(lambda tpl: tpl[1], symbols_modules)))): - fout.write("import %s\n" % mod) - fout.write("from idc import *\n\n") - while len(inlines): - l = nextline() - if l == "": - continue - repl = None - match = funcall_pat.match(l) - if match: - symbol = match.group(1) - parms = match.group(2) - code = match.group(3) - while True: - has_more = code.endswith("\\") - if has_more: - code = code[0:-1] - code = code + nextline() - else: - break - code = fix_ternary_operator(code) - code = maybe_qualify(code) - repl = "def %s%s: return %s\n" % (symbol, parms, code) - else: - match = alias_pat.match(l) - if match: - symbol = match.group(1) - newsym = match.group(2) - newsym = maybe_qualify(newsym) - repl = "%s=%s\n" % (symbol, newsym) - - if repl and symbol not in forbidden: - if not args.debug_out: - fout.write(repl) - else: - fout.write(""" -try: - import idc - x = idc.%s - print("Would override %s") -except: - pass -""" % (symbol, symbol)) diff --git a/tools/genhooks/all_recipes.py b/tools/genhooks/all_recipes.py new file mode 100644 index 0000000..1dfa417 --- /dev/null +++ b/tools/genhooks/all_recipes.py @@ -0,0 +1,65 @@ + +import recipe_idphooks +import recipe_idbhooks +import recipe_dbghooks +import recipe_uihooks +import recipe_viewhooks +import recipe_hexrays + +# filename +# enum name +# discard enum names with prefixes +# discard docs with prefixes +# remove prefixes from enum value names +# module with recipes + +hooks = { + "IDP_Hooks" : ( + "structprocessor__t.xml", + "event_t", + [], + None, + [], + recipe_idphooks + ), + "IDB_Hooks" : ( + "namespaceidb__event.xml", + "event_code_t", + [], + None, + [], + recipe_idbhooks + ), + "DBG_Hooks" : ( + "dbg_8hpp.xml", + "dbg_notification_t", + [], + None, + [], + recipe_dbghooks + ), + "UI_Hooks" : ( + "kernwin_8hpp.xml", + "ui_notification_t", + ["ui_dbg_", "ui_obsolete"], + "ui:", + ["ui_"], + recipe_uihooks + ), + "View_Hooks" : ( + "kernwin_8hpp.xml", + "view_notification_t", + [], + None, + [], + recipe_viewhooks + ), + "Hexrays_Hooks" : ( + "hexrays_8hpp.xml", + "hexrays_event_t", + [], + None, + ["hxe_", "lxe_"], + recipe_hexrays + ) +} diff --git a/tools/genhooks/doxy_gen_notifs.cfg.in b/tools/genhooks/doxy_gen_notifs.cfg.in index 7e5965c..6c114d0 100644 --- a/tools/genhooks/doxy_gen_notifs.cfg.in +++ b/tools/genhooks/doxy_gen_notifs.cfg.in @@ -228,7 +228,43 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +# Copied from etc/sdk/doxygen.cfg; +# alias \sq not included, because it translated to HTML; +# implemented at plugins/idapython/tools/docs/epytext.py +# Also, added \insn_t + + #"ph{1} = ::ph::\link processor_t::\1 \1\endlink" \ + #"inf{1} = ::inf::\link idainfo::\1 \1\endlink" \ + #"ash{1} = ::ash.\link asm_t::\1 \1\endlink" \ + #"cmd{1} = ::cmd::\link insn_t::\1 \1\endlink" \ + #"dto{1} = ::dto::\link text_options_t::\1 \1\endlink" \ + #"sq{4} = \ + # \ + # \ + #
    \1\2
    \3\4
    " \ + +ALIASES = "varmem{3} = \link ::\1 \1\endlink.\link \2::\3 \3\endlink" \ + "call1{2} = \link \1() \1\endlink(\2)" \ + "call2{3} = \link \1() \1\endlink(\2, \3)" \ + "isdecl{1} = \link \1(type_t) \1\endlink(get_decltype())" \ + "isreal{1} = \link \1(type_t) \1\endlink(get_realtype())" \ + "getset{1} = \link get\1() get\endlink/\link set\1()\endlink" \ + "tinfocc{1} = \link \1(cm_t) \1\endlink(get_cc())" \ + "ph{1} = processor_t::\1" \ + "inf{1} = idainfo::\1" \ + "ash{1} = asm_t::\1" \ + "cmd{1} = insn_t::\1" \ + "insn_t{1} = insn_t::\1" \ + "dto{1} = text_options_t::\1" \ + "dbg{1} = debugger_t::\1" \ + "idpcode{1} = \link processor_t::\1 \1\endlink" \ + "def{2} = \def \1\n \2" \ + "typedef{2} = \typedef \1\n \2" \ + "struct{2} = \struct \1\n \2" \ + "fn{2} = \fn \1\n \2" \ + "var{2} = \var \1\n \2" \ + "v{1} = \verbatim \1 \endverbatim" \ + "union{1} = \name \1" # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" @@ -291,7 +327,7 @@ EXTENSION_MAPPING = # case of backward compatibilities issues. # The default value is: YES. -MARKDOWN_SUPPORT = YES +MARKDOWN_SUPPORT = NO # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can diff --git a/tools/genhooks/recipe_hexrays.py b/tools/genhooks/recipe_hexrays.py index 23a8c29..9a2b4e6 100644 --- a/tools/genhooks/recipe_hexrays.py +++ b/tools/genhooks/recipe_hexrays.py @@ -16,7 +16,18 @@ recipe = { "convertor" : "Hexrays_Hooks::handle_create_hint_output", "convertor_pass_args" : True, } - } + }, + "build_callinfo" : { + "params" : { + "callinfo" : { "suppress_for_call" : True, }, + }, + "return" : { + "type" : "PyObject *", + "retexpr" : "Py_RETURN_NONE", + "convertor" : "Hexrays_Hooks::handle_build_callinfo_output", + "convertor_pass_args" : True, + } + }, } default_rtype = "int" diff --git a/tools/genhooks/recipe_idphooks.py b/tools/genhooks/recipe_idphooks.py index 0003a94..f124c4d 100644 --- a/tools/genhooks/recipe_idphooks.py +++ b/tools/genhooks/recipe_idphooks.py @@ -6,6 +6,8 @@ recipe = { "ev_get_idd_opinfo" : {"ignore" : True}, "ev_loader_elf_machine" : {"ignore" : True}, "ev_broadcast" : {"ignore" : True}, + "ev_obsolete1" : {"ignore" : True}, + "ev_obsolete2" : {"ignore" : True}, "ev_ana_insn" : { "return" : { "type" : "bool", diff --git a/tools/hooks_utils.py b/tools/hooks_utils.py index 1899fac..971ed23 100644 --- a/tools/hooks_utils.py +++ b/tools/hooks_utils.py @@ -10,12 +10,7 @@ genhooks_dir = os.path.join(mydir, "genhooks") if genhooks_dir not in sys.path: sys.path.append(genhooks_dir) -import recipe_idphooks -import recipe_idbhooks -import recipe_dbghooks -import recipe_uihooks -import recipe_viewhooks -import recipe_hexrays +import all_recipes class enum_info_t: def __init__( @@ -35,62 +30,24 @@ class enum_info_t: self.recipe = recipe self.default_rtype = default_rtype +_hooks_enum_info = {} +for klass in all_recipes.hooks: + fname, \ + enum_name, \ + discard_prefixes, \ + discard_doc, \ + strip_prefixes, \ + recipe_module = all_recipes.hooks[klass] -_hooks_enum_info = { - "IDP_Hooks" : enum_info_t( - "structprocessor__t.xml", - "event_t", - [], - None, - [], - recipe_idphooks.recipe, - recipe_idphooks.default_rtype), + _hooks_enum_info[klass] = enum_info_t( + fname, + enum_name, + discard_prefixes, + discard_doc, + strip_prefixes, + recipe_module.recipe, + recipe_module.default_rtype) - "IDB_Hooks" : enum_info_t( - "namespaceidb__event.xml", - "event_code_t", - [], - None, - [], - recipe_idbhooks.recipe, - recipe_idbhooks.default_rtype), - - "DBG_Hooks" : enum_info_t( - "dbg_8hpp.xml", - "dbg_notification_t", - [], - None, - [], - recipe_dbghooks.recipe, - recipe_dbghooks.default_rtype), - - "UI_Hooks" : enum_info_t( - "kernwin_8hpp.xml", - "ui_notification_t", - ["ui_dbg_", "ui_obsolete"], - "ui:", - ["ui_"], - recipe_uihooks.recipe, - recipe_uihooks.default_rtype), - - "View_Hooks" : enum_info_t( - "kernwin_8hpp.xml", - "view_notification_t", - [], - None, - [], - recipe_viewhooks.recipe, - recipe_viewhooks.default_rtype), - - "Hexrays_Hooks" : enum_info_t( - "hexrays_8hpp.xml", - "hexrays_event_t", - [], - None, - ["hxe_", "lxe_"], - recipe_hexrays.recipe, - recipe_hexrays.default_rtype), -} def get_hooks_enum_information(class_name): return _hooks_enum_info[class_name] diff --git a/tools/inject_pydoc.py b/tools/inject_pydoc.py index 750c812..4bc18b3 100644 --- a/tools/inject_pydoc.py +++ b/tools/inject_pydoc.py @@ -1,35 +1,56 @@ -from __future__ import print_function -# -# This (non-idiomatic) python script is in charge of -# 1) Parsing all .i files in the 'swig/' directory, and -# collecting all function, classes & methods comments -# that can be found between / tags. -# 2) Reading, line by line, the idaapi_.py.raw -# file, and for each function, class & method found -# there, associate a possily previously-harvested -# pydoc documentation. -# 3) Generating the idaapi_.py file. -# +# A program to combine docstrings from multiple sources (Python, C++) +# into the final docstrings in the IDAPython sources. +# Called from the idapython makefile. +# +# Bird's eye view: +# +# main() Input from idapython/obj/.../*.py, +# Various inputs Output to current/bin/.../*.py +# ------------------------ ----------------------- +# swig_pydoc_collector_t \ +# cpp_wrapper_parser_t |--> pydoc_patcher_t +# doxygen_info_t / +# ------------------------ ----------------------- +# +# pydoc_visitor_t __/ swig_pydoc_collector_t \__ +# used by both \ pydoc_patcher_t / to read Python's AST +# +# doc_info_t \ +# class_info_t | +# cpp_fun_info_t |-- (mostly) data objects +# location_t | +# repo_t | +# hook_info_t / +# +# prototype_t \ +# structured_comment_t |-- split docs in parts (prototype, parameters, text) +# assembled_comment_t / and help to reassemble these from multiple sources +# +# call_traces_t -- runtime info collected from uitests, +# used to fix prototypes (f.i. return values) +# +# cases_t \__ allow special exceptions to the general rules; +# case_t / special cases are read from the file given by the --cases argument +# +# inspect_importer_t \__ helper classes used resp. by __/ pydoc_visitor_t +# cpp_patterns_t / \ pydoc_patcher_t + + +from __future__ import print_function + +import ast +import re import sys import os -import re -import textwrap import xml.etree.ElementTree as ET -import six +import textwrap +from argparse import ArgumentParser -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise - -mydir, _ = os.path.split(__file__) -if mydir not in sys.path: - sys.path.append(mydir) - -import wrapper_utils -import hooks_utils +genhooks_dir = os.path.join(os.path.dirname(__file__), "genhooks") +if genhooks_dir not in sys.path: + sys.path.append(genhooks_dir) +import all_recipes parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) @@ -37,886 +58,2071 @@ parser.add_argument("-s", "--interface", required=True) parser.add_argument("-w", "--cpp-wrapper", required=True) parser.add_argument("-o", "--output", required=True) parser.add_argument("-x", "--xml-doc-directory", required=True) -parser.add_argument("-e", "--epydoc-injections", required=True) parser.add_argument("-m", "--module", required=True) +parser.add_argument("-t", "--traces", required=False) +parser.add_argument("-c", "--cases", required=False) parser.add_argument("-v", "--verbose", default=False, action="store_true") parser.add_argument("-d", "--debug", default=False, action="store_true") -parser.add_argument("-D", "--debug-function", type=str, default="") +parser.add_argument("-D", "--debug-name", type=str, default="") args = parser.parse_args() -this_dir, _ = os.path.split(__file__) -sys.path.append(this_dir) -import doxygen_utils +# -------------------------------------------------------------------------- +class pysyntax_exception_t(Exception): + def __init__(self, message, text): + super(pysyntax_exception_t, self).__init__( + "%s\n %s" % (message, text)) -DOCSTR_MARKER = '"""' -DOCSTR_MARKER_START_RAW = 'r"""' +# -------------------------------------------------------------------------- +class cppsyntax_exception_t(Exception): + def __init__(self, parser, message): + super(cppsyntax_exception_t, self).__init__( + "%s\n Path: %s\n Func: %s" + % (message, parser.path, parser.fun_name)) -inc = 0 -class indenter_t(object): - def __enter__(self): - global inc - inc += 1 - return self +# -------------------------------------------------------------------------- +class process_exception_t(Exception): + pass - def __exit__(self, type, value, tb): - global inc - inc -= 1 - if value: - raise +# -------------------------------------------------------------------------- +def pyver(): + return sys.version_info.major -def get_indent_str(): - return " " * inc +# -------------------------------------------------------------------------- +selective_debug = False +def debug(msg): + if isinstance(msg, bytes): + msg = msg.decode("utf-8") + if args.debug or selective_debug: + lines = msg.split("\n") + for line in lines: + print("DEBUG: %s" % line) +# -------------------------------------------------------------------------- def verb(msg): - if args.verbose: - print(get_indent_str() + msg) - -selective_debug_status = None -def dbg(msg): - if args.debug: - if selective_debug_status in [None, True]: - print("DEBUG: " + get_indent_str() + msg) + if isinstance(msg, bytes): + msg = msg.decode("utf-8") + if args.verbose or args.debug or selective_debug: + lines = msg.split("\n") + for line in lines: + print("VERBOSE: %s" % line) # -------------------------------------------------------------------------- -def load_patches(args): - patches = {} - dirpath, _ = os.path.split(__file__) - candidate = os.path.join(dirpath, "inject_pydoc", "%s.py" % args.module) - if os.path.isfile(candidate): - with open(candidate) as fin: - raw = fin.read() - patches = eval(raw) - return patches +# TL;DR: we need the proper "inspect" module, +# and this class ensures that we import the right one. +# +# Long story: +# +# pydoc_visitor_t (below) uses ast.get_docstring(..., False) +# ("True" would have cleaned the docstring by calling +# the "cleandoc" function in the "inspect" module). +# +# We chose to read without cleaning, and clean manually later +# (by a call to "inspect.cleandoc"), because other docstrings +# do not come from ast.get_docstring() - namely, the ones we +# pcik up manually after assignments, as docstrings for a variable. +# +# For that manual cleaning, we need the inspect module; +# this class ensures that we load the correct one +# (why is there a "correct" or an "incorrect" inspect module, +# is explaned in another comment below). -# -------------------------------------------------------------------------- -def split_oneliner_comments_and_remove_property_docstrings(lines): - out_lines = [] - pat = re.compile('(.*= property\(.*), doc=r""".*"""(\))') - for line in lines: +class inspect_importer_t(object): - line = line.rstrip() + singleton = None - m = pat.match(line) - if m: - line = m.group(1) + m.group(2) + @staticmethod + def get_singleton(): + klass = inspect_importer_t - if line.startswith("#"): - out_lines.append(line) - continue + if not klass.singleton: + klass.singleton = inspect_importer_t() - if len(line) == 0: - out_lines.append("") - continue - - handled = False - if line.endswith(DOCSTR_MARKER): - emarker_idx = line.rfind(DOCSTR_MARKER) - if line.lstrip().startswith(DOCSTR_MARKER_START_RAW): - smarker = DOCSTR_MARKER_START_RAW - smarker_idx = line.find(DOCSTR_MARKER_START_RAW) - elif line.lstrip().startswith(DOCSTR_MARKER): - smarker = DOCSTR_MARKER - smarker_idx = line.find(DOCSTR_MARKER) - else: - smarker_idx = -1 - if smarker_idx > -1: - pfx = line[0:smarker_idx] - meat = line[smarker_idx+len(smarker):emarker_idx] - if len(meat.strip()): - out_lines.append(pfx + smarker) - out_lines.append(pfx + meat) - out_lines.append(pfx + DOCSTR_MARKER) - handled = True - if not handled: - out_lines.append(line) - - return out_lines - -# -------------------------------------------------------------------------- -def dedent(lines): - if len(lines) < 1: - return lines - line0 = lines[0] - indent = len(line0) - len(line0.lstrip()) - if indent < 0: - raise BaseException("Couldn't find \" in '" + line0 + "'") - expect = " " * indent - def proc(l): - #print "DE-INDENTING '%s'" % l - if len(l) == 0: - return l # Keep empty lines - prefix = l[0:indent] - if prefix != expect: - raise BaseException("Line: '" + l + "' has wrong indentation. Expected " + str(indent) + " spaces.") - return l[indent:] - return list(map(proc, lines)) - -# -------------------------------------------------------------------------- -def apply_indent(lines, indent): - return list(map(lambda l: indent + l, lines)) - -# -------------------------------------------------------------------------- -def add_lines_block(storage, lines): - if storage and storage[-1] != "" and storage[-1] != "\n": - storage.append("\n") - storage.extend(lines) - -# -------------------------------------------------------------------------- -def get_fun_name(line): - return re.search("def ([^\(]*)\(", line).group(1) - -# -------------------------------------------------------------------------- -def get_class_name(line): - return re.search("class ([^\(:]*)[\(:]?", line).group(1) - -# -------------------------------------------------------------------------- -def get_indent_string(line): - indent = len(line) - len(line.lstrip()) - if not indent: - raise Exception("No indent in line '%s'" % line) - return " " * indent - -# -------------------------------------------------------------------------- -class collect_pywraps_pydoc_t(object): - """ - Search in all files in the 'plugins/idapython/swig/' directory - for possible additional we could use later. - """ - S_UNKNOWN = 0 - S_IN_PYDOC = 1 - S_IN_DOCSTR = 2 - # S_STOP = 5 - PYDOC_START = "#" - PYDOC_END = "#" - state = S_UNKNOWN - lines = None - - def __init__(self, input_path): - self.idaapi_pydoc = {"funcs" : {}, "classes" : {}} - self.input_path = input_path - - def next(self): - line = self.lines[0] - self.lines = self.lines[1:] - return line - - def set_fun(self, name, collected): - self.idaapi_pydoc["funcs"][name] = dedent(collected) - - def collect_fun(self, fun_name): - collected = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_fun(fun_name, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif not line.startswith(" "): - return self.set_fun(fun_name, collected) - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - return self.set_fun(fun_name, collected) - else: - collected.append(line) - else: - raise BaseException("Unexpected state: " + str(self.state)) - - def set_method(self, cls, method_name, collected): - cls["methods"][method_name] = dedent(collected) - - def collect_method(self, cls, method_name): - collected = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_method(cls, method_name, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - return self.set_method(cls, method_name, collected) - else: - collected.append(line) - - def set_class(self, name, cls_data, collected): - cls_data["doc"] = dedent(collected) if len(collected) > 0 else None - self.idaapi_pydoc["classes"][name] = cls_data - - def collect_cls(self, cls_name): - collected = [] - cls = {"methods":{},"doc":None} - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(" def "): - self.collect_method(cls, get_fun_name(line)) - if self.state == self.S_UNKNOWN: # method marked end of - return self.set_class(cls_name, cls, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_class(cls_name, cls, collected) - elif len(line) > 1 and not line.startswith(" "): - return self.set_class(cls_name, cls, collected) - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - else: - collected.append(line) - - def collect_file_pydoc(self, filename): - self.state = self.S_UNKNOWN - with open(filename) as f: - self.lines = split_oneliner_comments_and_remove_property_docstrings(f.readlines()) - context = None - doc = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_UNKNOWN: - if line.startswith(self.PYDOC_START): - self.state = self.S_IN_PYDOC - elif self.state is self.S_IN_PYDOC: - if line.startswith("def "): - self.collect_fun(get_fun_name(line)) - elif line.startswith("class "): - self.collect_cls(get_class_name(line)) - elif line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - - def collect(self): - verb("### Processing %s" % os.path.basename(self.input_path)) - self.collect_file_pydoc(self.input_path) - return self.idaapi_pydoc - - -class generated_func_info_t: - """ - Object model of what could be extracted from the SWiG-generated - python documentation. Functions that use polymorphism will have - multiple 'signature_t's. - """ - - class signature_t: - PARAM_WITH_CPP_TYPE_INFO_RE = re.compile(r".*:\s*(.*\(C\+\+:.*\).*)") - - def __init__(self, prototype): - self.prototype = prototype - self.params = [] - self.returns = [] - self.retvals = [] - - def replace_param(self, original_name, name, text, indent): - found_idx = -1 - for idx, l in enumerate(self.params): - if l.lstrip().startswith("%s:" % name): - found_idx = idx - break - if found_idx < 0: - for idx, l in enumerate(self.params): - if l.lstrip().startswith("%s:" % original_name): - found_idx = idx - break - if found_idx >= 0: - m = self.PARAM_WITH_CPP_TYPE_INFO_RE.match(self.params[found_idx]) - if m: - text = re.sub(r"(.*)\(C\+\+:.*\)(.*)", r"\1 - %s\2" % m.group(1), text) - lines = textwrap.wrap(text, 70, subsequent_indent=" " * indent, break_on_hyphens=False) - self.params = self.params[0:found_idx] + lines + self.params[found_idx+1:] - else: - verb("No param named '%s' for function with prototype '%s'" % (name, self.prototype)) - - def append_return(self, text, indent): - if self.returns is not None: - verb("Overriding return information") - self.returns = textwrap.wrap(text, 70, subsequent_indent=" " * indent, break_on_hyphens=False) - - def append_retval(self, text, indent): - self.retvals.extend(textwrap.wrap(text, 70, subsequent_indent=" " * indent, break_on_hyphens=False)) - - def get_lines(self): - return [self.prototype] \ - + list(map(lambda l: " %s" % l, self.params + self.returns + self.retvals)) - - - def __init__(self, lines): - self.original_comment = False - self.signatures = [] - - STATE_NONE = None - STATE_IN_SIG = "in signature" - STATE_AFTER_SIG = "after signature" - STATE_IN_PARAMS = "in params" - state = STATE_NONE - current_sig = None - try: - for line in lines: - line = line.lstrip() - assert(not line.startswith("@param")) - assert(not line.startswith("@return")) - - # print(">>> '%s' (state=%s)" % (line, state)) - if line: - if state == STATE_NONE: - assert(current_sig is None) - current_sig = self.signature_t(line) - state = STATE_IN_SIG - elif state == STATE_IN_SIG: - assert(current_sig is not None) - elif state == STATE_AFTER_SIG: - assert(current_sig is not None) - if line.startswith("Parameters"): - state = STATE_IN_PARAMS - else: - # print("FLUSHING!") - self.signatures.append(current_sig) - current_sig = None - elif state == STATE_IN_PARAMS: - if not line.startswith("-------"): - current_sig.params.append(line) - else: - crash() - else: - if state == STATE_NONE: - pass - elif state == STATE_IN_SIG: - state = STATE_AFTER_SIG - elif state == STATE_AFTER_SIG: - pass - elif state == STATE_IN_PARAMS: - # print("FLUSHING!!") - self.signatures.append(current_sig) - current_sig = None - state = STATE_NONE - else: - crash() - except AssertionError: - verb("Couldn't parse comment; it's likely it was not generated by SWiG. Assuming 'original_comment'.") - self.original_comment = True - - -class ioarg_t: - def __init__(self, original_name, name, ptyp, desc): - self.original_name = original_name - self.name = name - self.ptyp = ptyp - self.desc = desc - - def __str__(self): - return "{original_name=\"%s\", name=\"%s\", ptyp=\"%s\", desc=\"%s\"}" % ( - self.original_name, - self.name, - self.ptyp, - self.desc) - - -class SDK_base_info_t: + return klass.singleton def __init__(self): - self.brief = None - self.detailed = None + self.imported_inspect = False + self.saved_sys_path = None + self.is_python_2 = pyver() == 2 - def is_valid(self): - return self.brief or self.detailed + def ensure_imported_inspect(self): + if self.imported_inspect: + return + self.imported_inspect = True + if self.is_python_2: + self._modify_sys_path() -class SDK_func_info_t(SDK_base_info_t): - # FIXME: Ideally, each match_t should bring its own description, - # but that will make the resulting documentation more busy and - # it's unclear what we would gain... - class match_t: - def __init__(self): #, brief, detailed): - # self.brief = brief - # self.detailed = detailed - self.params = [] - self.returns = None - self.retvals = None + import inspect + self.inspect = inspect - def __init__(self): - SDK_base_info_t.__init__(self) - self.matches = [] + if self.is_python_2: + self._restore_sys_path() - def maybe_set_brief_and_detailed(self, brief, detailed): - # set the brief+detailed info, if none was set yet - if not self.brief and not self.detailed: - self.brief = brief - self.detailed = detailed + def _modify_sys_path(self): + # We need to use the "inspect" module after "ast.get_docstring()". + # (See pydoc_visitor_t.) And... + # + # ... there is an "inspect.py" module next to this program, that + # is used (as per CL 101338) to ensure a consistent documentation + # regardless of the minor version of Python 3. + # + # However, it's useless when running on Python 2, + # in which case we temporarily remove dirname(__file__) from sys.path + # in order to use Python 2's own "inspect" module. - def maybe_add_param_to_match( - self, - swig_generated_param_names, - match, - name, - ptyp, - desc): - dbg("maybe_add_param_to_match(name=%s, ptyp=%s, desc=%s, swig_generated_param_names=%s)" % ( - name, - ptyp, - desc, - swig_generated_param_names)) - # SWiG will rename e.g., 'from' to '_from' automatically, and we want to match that - swig_name = ("_%s" % name) if name in ["from", "with"] else name - to_add = None - if swig_name in swig_generated_param_names: - to_add = ioarg_t(name, swig_name, ptyp, desc) - elif name == "from": - if "frm" in swig_generated_param_names: - to_add = ioarg_t(name, "frm", ptyp, desc) - if to_add: - dbg("==> adding='%s'" % (to_add,)) - match.params.append(to_add) + self.saved_sys_path = sys.path[:] - def traverse(self, node, swig_generated_param_names): - self.maybe_set_brief_and_detailed( - doxygen_utils.get_element_description(node, "briefdescription"), - doxygen_utils.get_element_description(node, "detaileddescription")) - - match = self.match_t() - - # collect params - doxygen_utils.for_each_param( - node, - lambda name, ptyp, desc: self.maybe_add_param_to_match( - swig_generated_param_names, - match, - name, - ptyp, - desc)) - - # return value - return_node = node.find(".//simplesect[@kind='return']") - if return_node is not None: - return_desc = " ".join(return_node.itertext()).strip() - if return_desc: - match.returns = ioarg_t(None, None, None, return_desc) - - detaileddescription_el = node.find("detaileddescription") - if detaileddescription_el: - def collect_retval(value, desc): - if match.retvals is None: - match.retvals = [] - match.retvals.append((value, desc)) - doxygen_utils.for_each_retval(detaileddescription_el, collect_retval) - - self.matches.append(match) - - - def import_from_hooks_enumerator(self, enum, swig_generated_param_names): - self.maybe_set_brief_and_detailed( - enum.get("brief", None), - enum.get("detailed", None)) - - match = self.match_t() - - params = enum.get("params", [])[:] - - # return value - if params and params[0]["name"] == "": - retdata = params[0] - params = params[1:] - if retdata["desc"]: - match.returns = ioarg_t(None, None, retdata["type"], retdata["desc"]) - if retdata["values"]: - match.retvals = retdata["values"] - - # collect params - for param in params: - self.maybe_add_param_to_match( - swig_generated_param_names, - match, - param["name"], - param["type"], - param["desc"]) - - self.matches.append(match) - - -class SDK_def_info_t(SDK_base_info_t): - def traverse(self, node): - self.brief = doxygen_utils.get_element_description(node, "briefdescription") - self.detailed = doxygen_utils.get_element_description(node, "detaileddescription") - - def generate_lines(self): - out = [] - if self.brief: - out.extend(self.brief) - out.append("") - if self.detailed: - out.extend(self.detailed) - out = doxygen_utils.remove_empty_header_or_footer_lines(out) - return doxygen_utils.remove_empty_header_or_footer_lines( - [DOCSTR_MARKER] \ - + list(map(lambda s : s.replace('\\', '\\\\'), out)) \ - + [DOCSTR_MARKER]) - - -# -------------------------------------------------------------------------- -class idaapi_fixer_t(object): - lines = None - - def __init__(self, collected_pywraps_pydoc, patches, cpp_wrapper_functions): - self.collected_pywraps_pydoc = collected_pywraps_pydoc - self.patches = patches - self.cpp_wrapper_functions = cpp_wrapper_functions - self.xml_dir = None - # Since variables cannot have a docstring in Python, - # but epydoc supports the syntax: - # --- - # MYVAR = 12 - # """ - # MYVAR is the best - # """ - # --- - # we want to remember whatever epydoc-compatible - # documentation we inject, since it will be impossible to - # retrieve it from the runtime. - self.epydoc_injections = {} - - def has_more(self): - return len(self.lines) > 0 - - def next(self): - line = self.lines[0] - with indenter_t(): - dbg("next(): '%s'" % line) - self.lines = self.lines[1:] - return line - - def copy(self, out): - line = self.next() - out.append(line) - return line - - def push_front(self, line): - self.lines.insert(0, line) - - def get_class_info(self, class_name): - return self.collected_pywraps_pydoc["classes"].get(class_name) - - def get_def_info(self, def_name): - def_info = None - dnodes = self.xml_tree.findall("./compounddef/sectiondef[@kind='define']/memberdef[@kind='define']/[name='%s']" % def_name) - ndnodes = len(dnodes) - if ndnodes > 0: - if ndnodes > 1: - print("Warning: more than 1 define doc found for '%s'; picking first" % def_name) - dd = SDK_def_info_t() - dd.traverse(dnodes[0]) - if dd.is_valid(): - def_info = dd.generate_lines() - return def_info - - def extract_swig_generated_param_names(self, fun_name, lines): - def sanitize_param_name(pn): - idx = pn.find("=") - if idx > -1: - pn = pn[0:idx] - pn = pn.strip() - return pn - for l in lines: - if l.find(fun_name) > -1: - idx_open_paren = l.find("(") - idx_close_paren = l.find(") -> ") - if idx_close_paren == -1 and l.endswith(")"): - idx_close_paren = len(l) - 1 - if idx_open_paren > -1 \ - and idx_close_paren > -1 \ - and idx_close_paren > idx_open_paren+1: - clob = l[idx_open_paren+1:idx_close_paren] - parts = clob.split(",") - return list(map(sanitize_param_name, parts)) - return [] - - def maybe_fix_swig_generated_docstring_prototype(self, fun_name, line): - forced_output_type = None - fdef = None - for _, one in six.iteritems(self.cpp_wrapper_functions): - if one.api_function_name == fun_name: - fdef = one - break - if fdef: - for l in fdef.contents: - for pattern, forced in [ - ("resultobj = _maybe_sized_cstring_result(", "str"), - ("resultobj = _maybe_cstring_result(", "str"), - ("resultobj = _maybe_binary_result(", "str"), - ("resultobj = _maybe_cstring_result_on_charptr_using_allocated_buf(", "str"), - ("resultobj = _maybe_cstring_result_on_charptr_using_qbuf(", "str"), - ("resultobj = _maybe_byte_array_as_hex_or_none_result(", "str"), - ("resultobj = _maybe_byte_array_or_none_result(", "bytes"), - ("resultobj = _sized_cstring_result(", "str"), - ]: - if l.find(pattern) > -1: - assert(forced_output_type is None); - forced_output_type = forced - if forced_output_type: - splitter = " -> " - idx = line.find(splitter) - if idx > -1: - line = line[0:idx + len(splitter)] + forced_output_type - return line - - def generate_function_pydoc(self, class_name=None): - out = [] - line = self.copy(out) - fun_name = get_fun_name(line) - class_info = self.get_class_info(class_name) if class_name else None - - if args.debug_function: - global selective_debug_status - selective_debug_status = fun_name == args.debug_function - - #verb("generate_function_pydoc: fun_name: '%s'" % fun_name) - line = self.copy(out) - doc_start_line_idx = len(out) - if line.find(DOCSTR_MARKER) > -1: - # Opening docstring line; determine indentation level - indent = get_indent_string(line) - docstring_line_nr = 0 - while True: - line = self.next() - if docstring_line_nr == 0: - line = self.maybe_fix_swig_generated_docstring_prototype(fun_name, line) - - if line.find(DOCSTR_MARKER) > -1: - - # Closing docstring line - pydoc_lines = out[doc_start_line_idx:] - swig_generated_param_names = self.extract_swig_generated_param_names(fun_name, pydoc_lines) - - if class_name is None: - pywraps_fi = self.collected_pywraps_pydoc["funcs"].get(fun_name) - else: - pywraps_fi = class_info["methods"].get(fun_name) if class_info else [] - if pywraps_fi: - # documentation coming from pywraps takes precedence. - dbg("'pywraps/'-originating comment takes precedence (%s)" % str(pywraps_fi)) - found = pywraps_fi - if pydoc_lines: - l0 = pydoc_lines[0].lstrip() - if l0.startswith(fun_name): - found = [l0] + found - else: - found = [] - # no documentation coming from pywraps. - # Merge SWiG-generated documentation, and the - # SDK-provided bits - generated_fi = generated_func_info_t(pydoc_lines) - if generated_fi.original_comment: - dbg("SWiG-generated comment found (%s)" % str(pydoc_lines)) - found = pydoc_lines - else: - sdk_fi = SDK_func_info_t() - fnodes = [] - if class_name is None: - fnodes = doxygen_utils.get_toplevel_functions( - self.xml_tree, - name=fun_name) - else: - if class_name.endswith("_Hooks"): - enums = hooks_utils.get_hooks_enumerators( - self.xml_dir, - class_name) - for enum in enums: - if enum["name"] == fun_name: - sdk_fi.import_from_hooks_enumerator( - enum, - swig_generated_param_names) - else: - refid, udt_xml_tree = doxygen_utils.load_xml_for_udt( - self.xml_dir, - self.xml_tree, - udt_name=class_name) - if udt_xml_tree: - fnodes = doxygen_utils.get_udt_methods( - udt_xml_tree, - refid, - name=fun_name) - - for fnode in fnodes: - sdk_fi.traverse(fnode, swig_generated_param_names) - - if sdk_fi.brief: - found.extend(sdk_fi.brief) - found.append("") - if sdk_fi.detailed: - found.extend(sdk_fi.detailed) - found.append("") - - # We'll look in all SDK signatures (i.e., we don't - # do proper signature matching) and patch all params - # in all generated signatures information. Hopefully - # this will be good enough. - for sdk_match in sdk_fi.matches: - for p in sdk_match.params: - dbg("Handling param '%s'" % p) - if p.name: - pline = "@param %s" % p.name - subsequent_indent = len(pline) + 2 - if p.desc: - pline = "%s: %s" % (pline, p.desc) - if p.ptyp: - pline = "%s (C++: %s)" % (pline, p.ptyp) - for sig in generated_fi.signatures: - sig.replace_param(p.original_name, p.name, pline, subsequent_indent) - if sdk_match.returns: - rline = "@return: %s" % sdk_match.returns.desc - for sig in generated_fi.signatures: - sig.append_return(rline, len("@return: ")) - if sdk_match.retvals: - for retval_value, retval_desc in sdk_match.retvals: - rvline_pfx = "@retval: %s - " % retval_value - rvline = "%s%s" % (rvline_pfx, retval_desc) - for sig in generated_fi.signatures: - sig.append_retval(rvline, len(rvline_pfx)) - - # Append the (modified) signatures - for sig in generated_fi.signatures: - add_lines_block(found, sig.get_lines()) - - found = doxygen_utils.remove_empty_header_or_footer_lines(found) - if found: - verb("fix_%s: found info for %s" % ( - "method" if class_name else "fun", fun_name)); - while len(out) > doc_start_line_idx: - out.pop() - add_lines_block(out, apply_indent(found, indent)) - - - # - # apply possible additional patches - # - fun_patches = self.patches.get(fun_name, {}) - - example = fun_patches.get("+example", None) - if example: - ex_lines = list(map(lambda l: "Python> %s" % l, example.split("\n"))) - out.extend(list(map(lambda l: indent + l, ["", "Example:"] + ex_lines))) - - repl_text = fun_patches.get("repl_text", None) - if repl_text: - from_text, to_text = repl_text - for i in range(doc_start_line_idx, len(out)): - out[i] = out[i].replace(from_text, to_text) - - out.append(line) - break - else: - out.append(line) - docstring_line_nr += 1 - return out - - def generate_method_pydoc(self, class_name): - return self.generate_function_pydoc(class_name) - - def generate_class_pydoc(self): - out = [] - line = self.copy(out) - cls_name = get_class_name(line) - class_info = self.get_class_info(cls_name) - verb("generate_class_pydoc: found info for %s" % cls_name); + executable_dir = os.path.abspath(os.path.dirname(__file__)) while True: - line = self.copy(out) - if line.strip(): - indent = get_indent_string(line) + try: + sys.path.remove(executable_dir) + except: break - # If class has doc, maybe inject additional - if class_info: - if line.find(DOCSTR_MARKER) > -1: - while self.has_more(): - line = self.next() - if line.find(DOCSTR_MARKER) > -1: - doc = class_info["doc"] - if doc is not None: - out.append("\n") - for dl in doc: - out.append(indent + dl) - out.append(line) - break - else: - out.append(line) - - # Iterate on class methods, and possibly patch - # their docstring - method_start = indent + "def " - while self.has_more(): - line = self.next() - # print "Fixing methods.. Line is '%s'" % line - if line.startswith(indent) or line.strip() == "": - if line.startswith(method_start): - self.push_front(line) - out.extend(self.generate_method_pydoc(cls_name)) - else: - out.append(line) - else: - self.push_front(line) - break - - return out - - def fix_assignment(self, out, match): - # out.append("LOL: %s" % match.group(1)) - line = self.copy(out) - line = self.next() - if not line.startswith(DOCSTR_MARKER): - # apparently no epydoc-compliant docstring follows. Let's - # look for a possible match in the xml doc. - def_name = match.group(1) - found = self.get_def_info(def_name) - if found: - verb("fix_assignment: found info for %s" % (def_name,)) - out.extend(found) - self.epydoc_injections[def_name] = found[:] - self.push_front(line) - - IDENTIFIER_PAT = r"([a-zA-Z_]([a-zA-Z_0-9]*)?)" - IDENTIFIER_RE = re.compile(IDENTIFIER_PAT) - SIMPLE_ASSIGNMENT_RE = re.compile(r"^(%s)\s*=.*" % IDENTIFIER_PAT) - - def fix_file(self, args): - input_path, self.xml_dir, out_path = args.input, args.xml_doc_directory, args.output - with open(input_path) as f: - self.lines = split_oneliner_comments_and_remove_property_docstrings(f.readlines()) - self.xml_tree = doxygen_utils.load_xml_for_module(self.xml_dir, args.module) - out = [] - while len(self.lines) > 0: - line = self.next() - if line.startswith("def "): - self.push_front(line) - with indenter_t(): - out.extend(self.generate_function_pydoc()) - elif line.startswith("class "): - self.push_front(line) - with indenter_t(): - out.extend(self.generate_class_pydoc()) - else: - m = self.SIMPLE_ASSIGNMENT_RE.match(line) - if m: - self.push_front(line) - with indenter_t(): - self.fix_assignment(out, m) - else: - out.append(line) - out = list(map(lambda l: l.replace("NONNULL_", ""), out)) - with open(out_path, "w") as o: - o.write("\n".join(out)) + def _restore_sys_path(self): + sys.path = self.saved_sys_path[:] # -------------------------------------------------------------------------- -patches = load_patches(args) -collecter = collect_pywraps_pydoc_t(args.interface) -collected_pywraps_pydoc = collecter.collect() -parser = wrapper_utils.cpp_wrapper_file_parser_t(args) -cpp_wrapper_functions = parser.parse(args.cpp_wrapper) -fixer = idaapi_fixer_t(collected_pywraps_pydoc, patches, cpp_wrapper_functions) -fixer.fix_file(args) -with open(args.epydoc_injections, "w") as fout: - for key in sorted(fixer.epydoc_injections.keys()): - fout.write("\n\nida_%s.%s\n" % (args.module, key)) - fout.write("\n".join(fixer.epydoc_injections[key])) +# Keeps track of where a docstring appears in the source code, +# so that the text can be replaced later. + +class location_t(object): + def __init__(self, *args): + if len(args) == 1: + reference = args[0] + + # used when there is no comment to be removed from the source; + # we just need a line to insert a comment if needed + + line_after_ref = self.last_line(reference) + 1 + + self.start_line = self.end_line = line_after_ref + self.start_col = self.end_col = reference.col_offset + + elif len(args) == 2: + node, reference = args + + # the docstring's lineno/col_offset mark the end + # for multiline comments (end_col for single-line comments + # is not available, so the rest of the code will not use it); + # we use a "reference node" (the class or function, or + # the assigment before the string) to guess the start + # and assume that there is nothing else in between. + # The initial column is assumed 4 if class/function, + # or 0 if variable assignment (plus the reference indent). + + is_variable = isinstance(reference, ast.Assign) + + if hasattr(node, "end_lineno"): + self.start_line = node.lineno + self.end_line = node.end_lineno + else: + self.start_line = self.last_line(reference) + 1 + self.end_line = node.lineno + + self.end_col = node.col_offset # only for multi-line comments + self.start_col = reference.col_offset + (0 if is_variable else 4) + + else: + raise process_exception_t("Internal error, location_t with %d args" \ + % len(args)) + + @staticmethod + def last_line(node): + if hasattr(node, "end_lineno"): + return node.end_lineno + + # hack, until Python 3.8 (where nodes have both lineno and end_lineno) + + last_line = node.lineno + + if isinstance(node, ast.ClassDef): + # note: no class body, just the header + last_line = max(last_line, + last_line + len(node.decorator_list), + location_t._max_lineno(node.bases)) + + elif isinstance(node, ast.FunctionDef): + # note: no function body, just the header + last_line = max(last_line, + last_line + len(node.decorator_list), + location_t._max_lineno(node.args)) + + elif isinstance(node, (ast.Assign, ast.AugAssign)): + last_line = max(last_line, + location_t._max_lineno(node)) + + return last_line + + @staticmethod + def _max_lineno(subtree): + # can return 0 + + if isinstance(subtree, list): + return max(location_t._max_lineno(item) for item in subtree) \ + if len(subtree) > 0 else 0 + + linenos = [node.lineno for node in ast.walk(subtree) \ + if hasattr(node, "lineno")] + return max(linenos) if len(linenos) > 0 else 0 + +# -------------------------------------------------------------------------- +# Containers for docstrings + +class doc_info_t(object): + # for both functions and variables; classes use a specialization + + def __init__(self, name, doc, location, extra=None): + self.name = name + self.doc = doc if doc else "" + self.location = location + self.extra = extra + self.parent = None # filled in later + +# -------------------------------------------------------------------------- +class class_info_t(doc_info_t): + def __init__(self, name, doc, location): + super(class_info_t, self).__init__(name, doc, location) + self.classes = {} + self.functions = {} + self.variables = {} + +# -------------------------------------------------------------------------- +# C++ functions with body text + +class cpp_fun_info_t(object): + def __init__(self, name, body): + self.name = name + self.body = body + +# -------------------------------------------------------------------------- +# In this context, "storage" is an object with dictionaries +# named "classes", "functions" and "variables". +# This class implement common lookups for all such containers. + +KIND_CLASS = "class" +KIND_UNION = "union" +KIND_STRUCT = "struct" +KIND_FUNCTION = "function" +KIND_VARIABLE = "variable" +KIND_DEFINE = "define" +KIND_FILE = "module" + +class repo_t(object): + def __init__(self, storage): + self.storage = storage + + def find(self, kind, long_name): + chain = long_name.split(".") + + return self._find(kind, chain, self.storage) + + def _find(self, kind, chain, storage): + name = chain[0] + + if len(chain) > 1: + # only classes left of dots + if name not in storage.classes: + return None + + return self._find(kind, chain[1:], storage.classes[name]) + + # right terminal + + if kind == KIND_CLASS: + if name in storage.classes: + return storage.classes[name] + elif kind == KIND_FUNCTION: + if name in storage.functions: + return storage.functions[name] + elif kind == KIND_VARIABLE: + if name in storage.variables: + return storage.variables[name] + + return None + +# -------------------------------------------------------------------------- +# AST navigation common to wrappers/*.py files +# and s in swig/*.i files +# (they are both Python code) + +class pydoc_visitor_t(ast.NodeVisitor): + + WARN_ON_VARIABLE = "Docstring on assignment not recognized" + + ADD_CLASS = 1 + ADD_FUNCTION = 2 + ADD_VARIABLE = 3 + + def __init__(self, classes, functions, variables): + self.super = super(pydoc_visitor_t, self) + self.super.__init__() + + self.classes = classes + self.functions = functions + self.variables = variables + + self.assign_line = -1 + + def collect_from(self, tree): + self.in_class = [] + self.in_func = [] + self.generic_visit(tree) + + def visit_ClassDef(self, node): + info = self._info_class_or_func(node, class_info_t, self.in_func) + if info is None: + return + + self._add(info, self.ADD_CLASS) + + self.in_class.append(info) + self.super.generic_visit(node) + self.in_class.pop() + + def visit_FunctionDef(self, node): + # ignore "replfun"-decorated functions + for dec in node.decorator_list: + if isinstance(dec, ast.Attribute) and dec.attr == "replfun": + return + + info = self._info_class_or_func(node, doc_info_t, self.in_func) + if info is None: + return + + self._add(info, self.ADD_FUNCTION) + + self.in_func.append(info) + self.super.generic_visit(node) + self.in_func.pop() + + def visit_If(self, node): + # ignore declarations in block (formerly, if _BC695) + + pass # no call to generic_visit into its body + + def visit_Assign(self, node): + if self.in_func: + return + + self.assign_line = location_t.last_line(node) + # unless stated otherwise + self.assign_warn = self.WARN_ON_VARIABLE + + # only syntax accepted: var = expr or self.member = expr + # (as opposed to v1 = v2 = expr, or var += expr, or obj.member = expr) + + if len(node.targets) != 1: + return + target = node.targets[0] + + if isinstance(target, ast.Attribute): + if not isinstance(target.value, ast.Name): + return + if target.value.id != "self": + return + if not self.in_class: + self.assign_warn = "\"self.%s\" not inside a class" \ + % target.attr + return + + name = target.attr + + elif isinstance(target, ast.Name): + name = target.id + else: + return + + # success + + self.assign_node = node + self.assign_var = name + self.assign_warn = None + + # aim to add a comment after this line, if there isn't one + info = doc_info_t(self.assign_var, "", location_t(node)) + self._add(info, self.ADD_VARIABLE) + + def visit_AugAssign(self, node): + if self.in_func: + return + + # unaccepted syntax, f.i. var += expr + self.assign_line = location_t.last_line(node) + self.assign_warn = self.WARN_ON_VARIABLE + + def visit_Expr(self, node): + if self.in_func: + return + + if isinstance(node.value, ast.Str): + if hasattr(node, "end_lineno"): + line_before = node.lineno - 1 # "lineno" is the start line + else: + # hack until Python 3.8 + num_lines = len(node.value.s.split("\n")) + line_before = node.lineno - num_lines # "lineno" is the end line + + if line_before == self.assign_line: + # the string follows an assignment + # (as opposed to a class or function) + + if self.assign_warn: + verb("%s, line %d: %s" + % (self.path, node.lineno, self.assign_warn)) + return + + docstring = self._clean_docstring(node.value.s) + + # update the info structure already collected on Assign + + storage = self.in_class[-1] if self.in_class else self + info = storage.variables[self.assign_var] + + info.doc = docstring + info.location = location_t(node, self.assign_node) + + def _info_class_or_func(self, node, info_type, nested): + private = node.name[0] == "_" and node.name[:2] != "__" + if private or nested: + # ignore internals + if not private: + verb("Ignoring nested (%s): %s" + % (nested[-1].name, node.name)) + return None + + docstring = self._get_docstring(node) + + return info_type(node.name, docstring, + location_t(node.body[0], node)) + + def _add(self, info, add_type): + target = self.in_class[-1] if self.in_class else self + + if add_type == self.ADD_CLASS: + storage = target.classes + msg = KIND_CLASS + elif add_type == self.ADD_FUNCTION: + storage = target.functions + msg = KIND_FUNCTION + else: + storage = target.variables + msg = KIND_VARIABLE + + if info.name in storage: + if self.in_class: + if msg == KIND_FUNCTION: + msg = "method" + msg = "%s in class %s" % (msg, target.name) + + verb("Duplicate %s: %s" % (msg, info.name)) + return # keep the first + + storage[info.name] = info + + info.parent = None if target is self else target + + def _get_docstring(self, node): + # clean a docstring manually, as we would for strings after a variable + return self._clean_docstring(ast.get_docstring(node, False)) + + def _clean_docstring(self, docstring): + if docstring: + inspect_importer = inspect_importer_t.get_singleton() + inspect_importer.ensure_imported_inspect() + + docstring = inspect_importer.inspect.cleandoc(docstring) + + return docstring + +# -------------------------------------------------------------------------- +# for s in swig/*.i files + +class swig_pydoc_collector_t(object): + def __init__(self): + super(swig_pydoc_collector_t, self).__init__() + + self.re_pydoc = re.compile(r"^#.*?$" + r"(.*?)" + r"^#.*?$", re.MULTILINE | re.DOTALL) + + def collect(self, path): + # collect ... texts + + with open(path, "r") as f: + text = f.read() + + pydocs = [] + start = 0 + while text: + m = self.re_pydoc.search(text, start) + if not m: + break + pydocs.append(m.group(1)) + start = m.end() + + # parse the pydocs for docstrings + + self.classes = {} + self.functions = {} + self.variables = {} + + visitor = pydoc_visitor_t(self.classes, self.functions, self.variables) + + for pydoc in pydocs: + try: + tree = ast.parse(pydoc) + except Exception as ex: + message = ex.__class__.__name__ + ": " + str(ex) + raise pysyntax_exception_t(message, pydoc) + + visitor.collect_from(tree) + +# -------------------------------------------------------------------------- +# for wrappers/*.cpp files + +class cpp_wrapper_parser_t(object): + def __init__(self): + self.re_wrap = re.compile(r".*PyObject *\*_wrap_([^\(]*)\(.*\) *{") + self.re_string = re.compile(r"([\"'])(?:\\?.)*?\1") + self.re_curly = re.compile(r"[{}]") + + def collect(self, path): + # only "functions" filled in + self.classes = {} + self.functions = {} + self.variables = {} + + self.path = path # for cppsyntax_exception_t + + with open(path, "r") as f: + text = f.read() + + # remove strings + # (to avoid being confused by "{" "}" inside strings) + text = self.re_string.sub("", text) + # no need to remove comments + # because these _wrap_* functions are computer-generated code, + # they contain no comments + + start = 0 + while text: + m = self.re_wrap.search(text, start) + if not m: + break + self.fun_name = m.group(1) # for cppsyntax_exception_t + start, end = self._find_body(text, m.start()) + body = text[start:end] + + self.functions[self.fun_name] = cpp_fun_info_t(self.fun_name, body) + start = end + + def _find_body(self, text, pos): + count = 0 + while True: + m = self.re_curly.search(text, pos) + if not m: + break + + if m.group()[0] == "{": + if count == 0: + start = m.start() + count += 1 + else: + if count == 0: + break + count -= 1 + if count == 0: + return start, m.end() + + pos = m.end() + + raise cppsyntax_exception_t(self, "Cannot find body") + +# -------------------------------------------------------------------------- +# get return types from patterns in the C++ body + +class cpp_patterns_t(object): + PATTERNS = ( + ("resultobj = _maybe_sized_cstring_result(", "str"), + ("resultobj = _maybe_cstring_result(", "str"), + ("resultobj = _maybe_binary_result(", "str"), + ("resultobj = _maybe_cstring_result_on_charptr_using_allocated_buf(", "str"), + ("resultobj = _maybe_cstring_result_on_charptr_using_qbuf(", "str"), + ("resultobj = _maybe_byte_array_as_hex_or_none_result(", "str"), + ("resultobj = _maybe_byte_array_or_none_result(", "bytes"), + ("resultobj = _sized_cstring_result(", "str") + ) + + def from_pattern(self, fun_info): + have_type = None + + for pattern, ret_type in cpp_patterns_t.PATTERNS: + if fun_info.body.find(pattern) >= 0: + if have_type: + verb("C++ function \"%s\", multiple patterns match" + % fun_info.name) + have_type = ret_type + + return have_type + +# -------------------------------------------------------------------------- +class hook_info_t(object): + def __init__(self, storage, data): + self.filename, \ + self.enum_name, \ + self.discard_prefixes, \ + self.discard_doc, \ + self.strip_prefixes, \ + recipe_module = data + + self.storage = storage + self.discard_prefixes = tuple(self.discard_prefixes) + self.recipe = recipe_module.recipe + self.default_rtype = recipe_module.default_rtype + self.ignore_parameters = {} + + def add_fun(self, klass, fun, doc): + if klass in self.storage.classes: + info = self.storage.classes[klass] + else: + info = self.storage.classes[klass] = class_info_t(klass, "", None) + + if fun in info.functions: + verb("%s: existing function collides with hook callback \"%s\"" + % (klass, fun)) + + info.functions[fun] = fun_info = doc_info_t(fun, doc, None) + + def ignore_parameter(self, fun, param): + if fun not in self.ignore_parameters: + self.ignore_parameters[fun] = set() + + self.ignore_parameters[fun].add(param) + +# -------------------------------------------------------------------------- +class doxygen_info_t(object): + def __init__(self, xml_dir): + self.xml_dir = xml_dir + + self.module = None + self.classes = {} + self.functions = {} + self.variables = {} + + self.hook_recipes = {} + + # hook (callback) functions from C++ enumerations + + def get_hook_info(self, klass): + return self.hook_recipes.get(klass) + + def load_hooks(self): + file_index = {} + + for klass in all_recipes.hooks: + hook = all_recipes.hooks[klass] + + self.hook_recipes[klass] = info = hook_info_t(self, hook) + + if info.filename in file_index: + index_entry = file_index[info.filename] + else: + index_entry = file_index[info.filename] = {} + index_entry[info.enum_name] = klass + + for filename in file_index: + pathname = os.path.join(self.xml_dir, filename) + if not os.path.exists(pathname): + verb("A hook recipe calls for XML file \"%s\"," + " which does not exist!" + % filename) + continue + + with open(pathname, "r") as f: + xml = ET.fromstring(f.read()) + + for compound_kind, section_kind, member_kind, name, _, _, _, enum_nodes \ + in self._enumerate_names(xml): + + if member_kind != "enum" or name not in file_index[filename]: + continue + klass = file_index[filename][name] + info = self.hook_recipes[klass] + + if enum_nodes is None: + verb("Hooks recipe \"%s\" calls for enum \"%s\"" + " in file \"%s\", which has no data!" + % (klass, info.enum_name, filename)) + continue + + for node in enum_nodes: + data = self._candidate_value(node, compound_kind, section_kind, member_kind, name) + if data: + _, _, _, \ + value_name, brief_node, detailed_node, _, _ = data + + if value_name.startswith(info.discard_prefixes): + continue + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + if info.discard_doc and doc.startswith(info.discard_doc): + continue + if doc.startswith("cb:"): + doc = doc[3:].lstrip() + + for prefix in info.strip_prefixes: + if value_name.startswith(prefix): + value_name = value_name[len(prefix):] + break + + if not self._follow_recipe(info, value_name): + continue + + info.add_fun(klass, value_name, doc) + + def _follow_recipe(self, info, fun_name): + if fun_name not in info.recipe: + return True + + recipe = info.recipe[fun_name] + + if recipe.get("ignore", False): + return False + + if "params" in recipe: + params = recipe["params"] + for param_name in params: + param = params[param_name] + + if param.get("suppress_for_call", False): + info.ignore_parameter(fun_name, param_name) + + return True + + # recover comments from C++ classes / functions / variables + + def load(self, module): + xmodule = self._load_module(module) + if xmodule is None: + return False + verb("Loading module %s" % module) + self._examine_xml(xmodule, module, self) + return True + + def _examine_xml(self, xml, module_name, storage): + for name in self._enum_classes(xml): + if name not in storage.classes: + storage.classes[name] = class_info_t(name, "", None) + + xclass = self._load_class(xml, name) + self._examine_xml(xclass, module_name, storage.classes[name]) + + for compound_kind, section_kind, member_kind, name, brief_node, detailed_node, plist, enum_nodes \ + in self._enumerate_names(xml): + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + # verb("section_kind=%s, compound_kind=%s, member_kind=%s, name=%s, brief_doc=%s" % ( + # section_kind, + # compound_kind, + # member_kind, + # name, + # brief_doc)) + + if section_kind == "": + if compound_kind in (KIND_CLASS, KIND_STRUCT, KIND_UNION): + if name in storage.classes: + storage.classes[name].doc = doc + else: + storage.classes[name] = class_info_t(name, doc, None) + elif compound_kind == "file" and name.startswith("%s.h" % module_name): + storage.module = self._join_paragraphs( (brief_doc, detailed_doc) ) + continue + + if member_kind == KIND_FUNCTION: + storage.functions[name] = doc_info_t(name, doc, None, plist) + elif member_kind in (KIND_DEFINE, KIND_VARIABLE): + storage.variables[name] = doc_info_t(name, doc, None) + + # add enum values as variables definitions + + if enum_nodes is None: + continue + + for node in enum_nodes: + data = self._candidate_value(node, compound_kind, section_kind, member_kind, name) + if data: + _, _, _, \ + value_name, brief_node, detailed_node, _, _ = data + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + storage.variables[value_name] = doc_info_t(value_name, doc, None) + + def _enumerate_names(self, xml): + for compound in xml.findall("compounddef"): + compound_kind = compound.attrib["kind"] + + data = self._candidate_value(compound, + compound_kind) + if data: + yield data + + for section in compound.findall("sectiondef"): + section_kind = section.attrib["kind"] + + if section_kind.startswith("private-") or \ + section_kind.startswith("protected-") or \ + section_kind in ("friend"): + continue + + data = self._candidate_value(section, + compound_kind, + section_kind) + if data: + yield data + + for member in section.findall("memberdef"): + member_kind = member.attrib["kind"] + + data = self._candidate_value(member, + compound_kind, + section_kind, + member_kind, + "", + True) + if data: + yield data + + def _candidate_value(self, node, compound_kind, section_kind="", member_kind="", enum="", get_enums=False): + brief_node = node.find("briefdescription") + detailed_node = node.find("detaileddescription") + enum_nodes = node.findall("enumvalue") if get_enums else None + + if brief_node is None and \ + detailed_node is None and \ + enum_nodes is None: + return None + + plist = [] + for pnode in node.findall("param"): + plist.append(self._parse_param_node(pnode)) + + name_node = node.find("name" if section_kind else "compoundname") + name = "" + if name_node is not None: + name = name_node.text + if not name: + verb("Doxygen xml: compound \"%s\", section \"%s\"," + " member \"%s\"%s has no name but has content!" + % (compound_kind, section_kind, member_kind, + (", enum \"%s\"" % enum) if enum else "")) + return None + + return compound_kind, section_kind, member_kind, name, brief_node, detailed_node, plist, enum_nodes + + def _parse_param_node(self, pnode): + name_child = pnode.find("declname") + type_child = pnode.find("type") + + ret = ["", ""] + if name_child is not None: + ret[0] = name_child.text + if type_child is not None: + ret[1] = self._clean(type_child) + return ret + + def _outer_paragraphs(self, node): + return self._paragraphs(node, True) + + def _paragraphs(self, node, wrap=False): + if node is None: + return "" + + texts = [self._nul(node.text)] + for para in node.findall("para"): + clean = self._clean(para) + if wrap: + clean = self._wrap(clean) + texts.append(clean) + + return self._join_paragraphs(texts) + + def _wrap(self, text): + lines = text.split("\n") + + out = [] + for line in lines: + subsequent_indent = "" + + clean = line.lstrip() + if clean and clean[0] == "@": + # compute indent for @tags + pos_colon = line.find(":") + if pos_colon >= 0: + subsequent_indent = (pos_colon + 2) * " " + + # wrapping at 80; if left at 70, + # texts from C++/Doxygen already contain + # linebreaks just after 70, that will + # make the wrapping ugly. Removing + # C++ linebreaks is probably not an option, + # if we want to respect pre-formatting. + out.extend(textwrap.wrap(line, 80, \ + subsequent_indent=subsequent_indent)) + + return "\n".join(out) + + def _join_paragraphs(self, texts): + # paragraphs (from "") separated by a blank line + + return "\n\n".join( (text.strip() for text in texts) ).strip("\n") + + def _clean(self, node): + N = self._nul + + texts = [N(node.text)] + for child in node: + check_subchildren = False + + if child.tag == "ref": + check_subchildren = True + texts[-1] += N(child.text) + N(child.tail) + + elif child.tag == "parameterlist": + self._add_parameter_list(child, texts) + + elif child.tag == "itemizedlist": + self._add_unordered_list(child, texts) + + elif child.tag == "orderedlist": + self._add_ordered_list(child, texts) + + elif child.tag == "simplesect": + kind = child.attrib["kind"] + desc = self._paragraphs(child) + # remove "@return: void" + if kind != "return" or desc != "void": + self._add_tag(kind, desc, texts) + + elif child.tag == "ulink": + check_subchildren = True + # macro interpreted in tools/docs/epytext.py + ref = child.attrib["url"] + if ref == child.text: + texts[-1] += r"\link{{{}}}".format(ref) + else: + texts[-1] += r"\link{{{},{}}}".format(ref, child.text) + texts[-1] += N(child.tail) + + elif child.tag == "linebreak": + check_subchildren = True + texts.append(child.tail) + + elif child.tag in ("mdash", "ndash"): + check_subchildren = True + texts[-1] += "-" + N(child.tail) + + elif child.tag == "sp": + check_subchildren = True + texts[-1] += " " + N(child.tail) + + elif child.tag in ("preformatted", "verbatim"): + # TODO? blockquote? may contain sub-elements like ) + + inner = [N(child.text)] + for sub in child: + if sub.tag == "ref": + # ignore the link markup inside a
    +                        inner[-1] += N(sub.text) + N(sub.tail)
    +                    else:
    +                        # fail
    +                        check_subchildren = True
    +                        break
    +                if child.tail:
    +                    inner.append(N(child.tail))
    +                texts.append("".join(inner).strip("\n"))
    +
    +            elif child.tag == "computeroutput":
    +                # like preformatted/verbatim above, but inline text
    +                texts[-1] += N(child.text)
    +                for sub in child:
    +                    if sub.tag == "ref":
    +                        # ignore the link markup
    +                        texts[-1] += N(sub.text) + N(sub.tail)
    +                    else:
    +                        # fail
    +                        check_subchildren = True
    +                        break
    +                texts[-1] += N(child.tail)
    +
    +            elif child.tag == "programlisting":
    +                for sub in child:
    +                    if sub.tag == "codeline":
    +                        texts.append(self._clean(sub))
    +                    else:
    +                        # fail
    +                        check_subchildren = True
    +                        break
    +                if child.tail:
    +                    texts.append(N(child.tail))
    +
    +            elif child.tag == "codeline":
    +                for sub in child:
    +                    texts[-1] += self._clean(sub)
    +                texts[-1] += N(child.tail)
    +
    +            elif child.tag == "highlight":
    +                texts[-1] += self._clean(child)
    +
    +            else:
    +                verb("Unrecognized tag \"%s\"" % child.tag)
    +                if child.text is not None:
    +                    texts.append(self._paragraphs(child))
    +                if child.tail is not None:
    +                    texts.append(child.tail)
    +
    +            if check_subchildren:
    +                for sub in child:
    +                    raise process_exception_t(
    +                        "Unrecognized sub-tag \"%s\" under \"%s\"" \
    +                        % (sub.tag, child.tag))
    +
    +        texts[-1] += N(node.tail)
    +
    +        return "\n".join(text.strip() for text in texts)
    +
    +    def _add_parameter_list(self, node, texts):
    +        tag   = node.attrib["kind"]
    +        plist = []
    +        for param in node.findall("parameteritem"):
    +            namelist    = param.find("parameternamelist")
    +            description = param.find("parameterdescription")
    +            names = []
    +            if namelist is not None:
    +                for name in namelist.findall("parametername"):
    +                    names.append(self._clean(name))
    +            if not names:
    +                names = ["unknown"]
    +            plist.append( (tag + " " + ",".join(names),
    +                           self._paragraphs(description).strip()) )
    +
    +        # remove "@param none"
    +        if len(plist) == 1 and plist[0] == ("param none", ""):
    +            return
    +
    +        for tag, desc in plist:
    +            self._add_tag(tag, desc, texts)
    +
    +    def _add_unordered_list(self, node, texts):
    +        self._add_list(lambda n: "*", node, texts)
    +
    +    def _add_ordered_list(self, node, texts):
    +        self._add_list(lambda n: "%d." % n, node, texts)
    +
    +    def _add_list(self, marker, node, texts):
    +        num = 0
    +        for item in node.findall("listitem"):
    +            num += 1
    +            para = self._paragraphs(item).strip()
    +            texts.append(("%s " % marker(num)) + para)
    +
    +    def _add_tag(self, tag, text, texts):
    +        result = "@%s" % tag
    +        if text:
    +            result += ": " + text
    +        texts.append(result)
    +
    +    def _nul(self, text):
    +        return text if text else ""
    +
    +    def _load_module(self, name):
    +        for suffix in ("_8hpp", "_8h"):
    +            xml_path = os.path.join(self.xml_dir, "%s%s.xml" % (name, suffix))
    +            if os.path.isfile(xml_path):
    +                with open(xml_path, "r") as f:
    +                    return ET.fromstring(f.read())
    +        return None
    +
    +    def _enum_classes(self, xml):
    +        for node in xml.findall("compounddef/innerclass"):
    +            yield node.text
    +
    +    def _load_class(self, xml, name):
    +        # apparently, an xpath to search for the TEXT of an element
    +        # is not available until Python 3.7
    +        for node in xml.findall("compounddef/innerclass"):
    +            if node.text == name:
    +                break
    +        else:
    +            node = None
    +
    +        if node is None:
    +            return None
    +        xml_path = os.path.join(self.xml_dir, "%s.xml" % node.attrib["refid"])
    +        with open(xml_path, "r") as fin:
    +            return ET.fromstring(fin.read())
    +
    +# --------------------------------------------------------------------------
    +# for wrappers/*.py files
    +# (output goes typically to bin/.../python/[23])
    +
    +class pydoc_patcher_t(object):
    +    def __init__(self):
    +        self.traces = call_traces_t()
    +        self.traces.load(args.traces)
    +
    +        self.cases = cases_t()
    +        self.cases.load(args.cases)
    +
    +    def patch(self, infile, extra_sources, outfile):
    +        swig, cpp, doxy = extra_sources
    +
    +        swig_repo = repo_t(swig)
    +        cpp_repo  = repo_t(cpp)
    +        doxy_repo = repo_t(doxy)
    +
    +        self.classes   = {}
    +        self.functions = {}
    +        self.variables = {}
    +
    +        with open(infile, "r") as f:
    +            text  = f.read()
    +            lines = text.split("\n")
    +
    +        try:
    +            tree = ast.parse(text)
    +        except Exception as ex:
    +            # this text can be very long,
    +            # so we're not including all of it in the exception
    +            bad_line = "Line %d: %s" % (ex.lineno, lines[ex.lineno - 1]) \
    +                if ex.lineno > 0 and ex.lineno <= len(lines) \
    +                else "(line %s)" % str(ex.lineno)
    +
    +            message = ex.__class__.__name__ + ": " + str(ex)
    +            raise pysyntax_exception_t(message, bad_line)
    +
    +        visitor = pydoc_visitor_t(self.classes, self.functions, self.variables)
    +        visitor.collect_from(tree)
    +
    +        cpp_patterns = cpp_patterns_t()
    +
    +        NOT_SKIPPING = -1
    +
    +        by_line   = self._sort_docstrings(visitor)
    +        skip_upto = NOT_SKIPPING
    +
    +        with open(outfile, "w") as f:
    +            lineno = 0
    +
    +            for lidx, line in enumerate(lines):
    +                if line.find("IDA Plugin SDK API wrapper") > -1:
    +                    skip_upto = lidx + 1
    +                    break
    +
    +            if doxy.module is not None:
    +                f.write("\"\"\"\n")
    +                f.write(doxy.module)
    +                f.write("\"\"\"\n")
    +
    +            for line in lines:
    +                lineno += 1
    +
    +                if by_line and by_line[0][1].location.start_line == lineno:
    +                    kind, info   = by_line[0]
    +                    skip_upto    = info.location.end_line
    +                    indent       = info.location.start_col * " "
    +                    quote_open   = indent + "r\"\"\"\n"
    +                    quote_close  = indent + "\"\"\"\n"
    +                    long_name    = self._long_name(info)
    +                    special_case = self.cases.get(long_name)
    +
    +                    global selective_debug
    +                    selective_debug = info.name == args.debug_name
    +
    +                    debug("### Processing %s" % long_name)
    +
    +                    # pywraps comments for functions typically contain
    +                    # a function prototype before the parameter documentation;
    +                    # for classes and variables, we add a dummy, empty prototype
    +                    # to allow matching in the replace() function below.
    +
    +                    comment = structured_comment_t(kind != KIND_FUNCTION)
    +                    comment.parse(info.doc)
    +
    +                    # "swig" and "doxy" have typically parameter documentation
    +                    # without a prototype, so an empty prototype is added
    +                    # (parameter True of structured_comment_t)
    +                    # in order to attempt to parse @param tags from these texts
    +                    # (as opposed to "free text before any prototype").
    +
    +                    doxy_kind = special_case.doxy_kind(kind) \
    +                                if special_case else kind
    +
    +                    swig_cmt  = structured_comment_t(True)
    +                    swig_info = swig_repo.find(kind, long_name)
    +                    if swig_info and swig_info.doc:
    +                        swig_cmt.parse(swig_info.doc)
    +
    +                    doxy_cmt  = structured_comment_t(True)
    +                    doxy_info = doxy_repo.find(doxy_kind, long_name)
    +                    if doxy_info and doxy_info.doc:
    +                        # no prototypes from doxygen; also, avoid lines
    +                        # wrapped by textwrap to be interpreted as
    +                        # prototypes by accident
    +                        doxy_cmt.parse(doxy_info.doc, parse_prototypes=False)
    +                        # for functions, doxy_info.extra = C++ parameter types
    +                        doxy_cmt.add_cpp_params(doxy_info.extra)
    +
    +                    cpp_info = cpp_repo.find(kind, long_name)
    +
    +                    debug("==== From wrappers (.py)\n" + comment.total())
    +                    debug("==== From swig (.i)\n"      + swig_cmt.total())
    +                    debug("==== From Doxygen (.xml)\n" + doxy_cmt.total())
    +
    +                    assembled = assembled_comment_t(special_case)
    +                    if comment.text_before.strip():
    +                        assembled.add_text_before(comment.text_before)
    +                    elif swig_cmt.text_before.strip():
    +                        assembled.add_text_before(swig_cmt.text_before)
    +                    else:
    +                        assembled.add_text_before(doxy_cmt.text_before)
    +
    +                    if comment.prototypes:
    +                        for p in comment.prototypes:
    +                            assembled.add_prototype(p)
    +                    else:
    +                        assembled.add_prototype(prototype_t(""))
    +
    +                    ret_type = cpp_patterns.from_pattern(cpp_info) \
    +                               if cpp_info else None
    +                    if ret_type:
    +                        debug("==== Return type from C++/Doxygen: \"%s\"" % ret_type)
    +                        for p in assembled.prototypes:
    +                            p.replace_return_type(ret_type)
    +                    else:
    +                        have_pyobject = any(p.get_return_type() == "PyObject *" \
    +                                            for p in assembled.prototypes)
    +                        if have_pyobject:
    +                            runtime_type = self.traces.suggest_return_type(long_name)
    +                            if runtime_type:
    +                                debug("==== Return type from runtime trace: \"%s\"" \
    +                                      % runtime_type)
    +                                for p in assembled.prototypes:
    +                                    if p.get_return_type() == "PyObject *":
    +                                        p.replace_return_type(runtime_type)
    +
    +                    def replace(cmt):
    +                        for p in cmt.prototypes:
    +                            n = assembled.match_prototype(p)
    +                            if n < 0:
    +                                continue
    +                            debug("==== Matched prototype # %d, replaced" % n)
    +                            assembled.replace_after_prototype(n, p)
    +
    +                    # SWIG has precedence
    +                    if swig_cmt.parsed:
    +                        debug("==== Taking from swig:")
    +                        replace(swig_cmt)
    +                    elif doxy_cmt.parsed:
    +                        debug("==== Taking from doxygen:")
    +                        replace(doxy_cmt)
    +
    +                    if info.parent:
    +                        hook = doxy.get_hook_info(info.parent.name)
    +                        if hook:
    +                            assembled.ignore_parameters(
    +                                hook.ignore_parameters.get(info.name))
    +
    +                    out_comment = assembled.total()
    +                    debug("==== Final comment:\n" + out_comment)
    +                    if out_comment:
    +                        f.write(quote_open)
    +                        f.write(self._indent(indent, out_comment))
    +                        f.write(quote_close)
    +                    else:
    +                        debug("==== (Empty, not written)")
    +
    +                    if info.doc:
    +                        if skip_upto == lineno:
    +                            skip_upto = NOT_SKIPPING
    +                    else:
    +                        # no comment at source: the start line is actual code
    +                        f.write(line + "\n")
    +                        skip_upto = NOT_SKIPPING
    +
    +                    by_line = by_line[1:]
    +                    continue
    +
    +                if skip_upto == NOT_SKIPPING:
    +                    f.write(line + "\n")
    +                else:
    +                    if skip_upto == lineno:
    +                        skip_upto = NOT_SKIPPING
    +                    continue
    +
    +        self._final_check(tree, outfile)
    +
    +    class simplifier_t(ast.NodeVisitor):
    +        # Produce a simplified version of the AST
    +        # (flattened list, containing ony node names)
    +        # but without any string node
    +        # (it is not enough to leave a "Str" name without string content;
    +        #  some docstring may have been removed).
    +        # Expr nodes are also removed; docstrings are an Expr(Str()),
    +        # and Exprs containing something more complex will show the interior nodes.
    +
    +        def simplify(self, subtree):
    +            self.output = []
    +            self.generic_visit(subtree)
    +
    +            return self.output
    +
    +        def visit(self, node):
    +            if not isinstance(node, (ast.Str, ast.Expr)):
    +                self.output.append(node.__class__.__name__)
    +
    +            super(pydoc_patcher_t.simplifier_t, self).generic_visit(node)
    +
    +    def _final_check(self, tree, outfile):
    +        # check that we produced valid Python code
    +
    +        with open(outfile, "r") as f:
    +            try:
    +                # part 1: can it be parsed?
    +                final_tree = ast.parse(f.read())
    +
    +                # part 2: basic AST comparison
    +                simpl = pydoc_patcher_t.simplifier_t()
    +                if simpl.simplify(tree) != simpl.simplify(final_tree):
    +                    raise process_exception_t("Final AST comparison failed!")
    +
    +            except Exception as ex:
    +                message = ex.__class__.__name__ + ": " + str(ex)
    +                raise pysyntax_exception_t(message, outfile)
    +
    +    def _indent(self, indent, text):
    +        lines = text.split("\n")
    +        lines = [(indent + line if line.strip() else "") \
    +                 for line in lines]
    +
    +        return "\n".join(lines)
    +
    +    def _long_name(self, info):
    +        if info.parent:
    +            return self._long_name(info.parent) + "." + info.name
    +
    +        return info.name
    +
    +    def _sort_docstrings(self, visitor):
    +        docs = []
    +
    +        self._add_to_docs(visitor, docs)
    +
    +        for info in visitor.classes.values():
    +            docs.append( (KIND_CLASS, info) )
    +
    +            self._add_to_docs(info, docs)
    +
    +        return sorted(docs, key=lambda pair: pair[1].location.start_line)
    +
    +    def _add_to_docs(self, obj, docs):
    +        for info in obj.functions.values():
    +            docs.append( (KIND_FUNCTION, info) )
    +
    +        for info in obj.variables.values():
    +            docs.append( (KIND_VARIABLE, info) )
    +
    +# --------------------------------------------------------------------------
    +# Runtime info from calls to the IDAPython API,
    +# collected during special tests (t2 uitests ... --trace-idapython-calls)
    +# and gathered together in one file by tools/collect_traces.py.
    +# The name of this one file is passed to the program on the --traces option.
    +
    +class call_traces_t(object):
    +    def load(self, path):
    +        if not path or not os.path.exists(path):
    +            self.traces = {}
    +            return
    +
    +        with open(path, "r") as f:
    +            content = ast.literal_eval(f.read())
    +
    +            self.traces = {}
    +            for key in content:
    +                data = content[key]
    +                if key == "#empty":
    +                    # entry with special format
    +                    for fun in data:
    +                        self.traces[fun] = set(self._str(x) for x in data[fun])
    +                else:
    +                    self.traces[key] = set(self._str(x) for x in data["return"])
    +
    +    def _str(self, expr):
    +        if isinstance(expr, list):
    +            return "[" + ", ".join(self._str(x) for x in expr) + "]"
    +        if isinstance(expr, tuple):
    +            if len(expr) == 1:
    +                return "(" + self._str(expr[0]) + ",)"
    +            return "(" + ", ".join(self._str(x) for x in expr) + ")"
    +
    +        return str(expr)
    +
    +    def suggest_return_type(self, long_name):
    +        key = args.module + "." + long_name
    +
    +        if key not in self.traces:
    +            return None
    +
    +        # type [, type ...] [or None]
    +
    +        return_set = self.traces[key]
    +        none_repr = "NoneType"
    +        if none_repr in return_set:
    +            suffix = " or None"
    +            return_set.remove(none_repr)
    +        else:
    +            suffix = ""
    +
    +        types = ", ".join(sorted(return_set))
    +        if not types:
    +            return None
    +
    +        return types + suffix
    +
    +# --------------------------------------------------------------------------
    +# Exceptions to the general rule.
    +
    +class cases_t(object):
    +    def load(self, path):
    +        if args.cases:
    +            with open(path, "r") as f:
    +                self.cases = ast.literal_eval(f.read())
    +        else:
    +            self.cases = {}
    +
    +        for fun in self.cases:
    +            self.cases[fun] = case_t(fun, self.cases[fun])
    +
    +    def get(self, long_name):
    +        key = args.module + "." + long_name
    +
    +        return self.cases[key] if key in self.cases else None
    +
    +# --------------------------------------------------------------------------
    +# Special case for one symbol.
    +
    +class case_t(object):
    +    def __init__(self, symbol, items):
    +        self.symbol = symbol
    +        self.items  = items
    +
    +        for item in items:
    +            if "param" in item:
    +                item["param"] = set(item["param"].split("|"))
    +            if "change" in item:
    +                item["change"] = self._to_function(item["change"])
    +
    +    def _to_function(self, code_text):
    +        code_fun_name = "__INJECT_PYDOC__case"
    +
    +        code     = ast.parse(code_text.strip())
    +        module   = ast.parse("def %s(_):\n pass" % code_fun_name)
    +        function = module.body[0]
    +        function.body = code.body
    +
    +        scope  = {}
    +        exec(compile(module, "" % self.symbol, "exec"), scope)
    +
    +        return scope[code_fun_name]
    +
    +    def ignore_parameter(self, name):
    +        # supercedes any special case
    +        for item in self.items:
    +            if "param" in item and name in item["param"]:
    +                if len(item["param"]) == 1:
    +                    # an action for just this parameter. Hijack it
    +                    item["ignore"] = True
    +                else:
    +                    # remove the parameter from this action, add a new one
    +                    item["param"].remove(name)
    +                    self._append_ignore_action(name)
    +                break
    +        else:
    +            # add exception
    +            self._append_ignore_action(name)
    +
    +    def _append_ignore_action(self, name):
    +        self.items.append({
    +            "param" : set([name]),
    +            "ignore" : True
    +        })
    +
    +    def is_parameter_ignored(self, name):
    +        item = self._get_param_action(name)
    +
    +        return item and item.get("ignore", False)
    +
    +    def change_param(self, name, desc):
    +        item = self._get_param_action(name)
    +        if item:
    +            change = item.get("change")
    +            if change:
    +                name, desc = change([name, desc])
    +
    +        return name, desc
    +
    +    def _get_param_action(self, name):
    +        for item in self.items:
    +            if "param" in item and name in item["param"]:
    +                return item
    +        return None
    +
    +    def doxy_kind(self, kind):
    +        attr = "doxy-kind"
    +        for item in self.items:
    +            if attr in item:
    +                return item[attr]
    +        return kind
    +
    +# --------------------------------------------------------------------------
    +# A function prototype, plus parameters and some text around.
    +
    +class prototype_t(object):
    +    RE_PARAM = re.compile(r" *([A-Za-z0-9_]+)(?: *=.*?)? *([\),])")
    +
    +    def __init__(self, *parts):
    +        self.proto   = list(parts)  # [0] name, [1] parameters, [2] return type
    +        self.after   = ""
    +        self.params  = []
    +        self.ctypes  = {}
    +        self.inter   = []  # text after each parameter
    +        self.retn    = ""
    +        self.ignored = False
    +
    +        self._split_params_in_proto()
    +
    +    def _split_params_in_proto(self):
    +        self.param_names = []
    +
    +        if len(self.proto) < 2:
    +            return
    +
    +        start = 1  # parameter list; skip "(" at 0
    +        while True:
    +            m = self.RE_PARAM.match(self.proto[1], start)
    +            if not m:
    +                break
    +
    +            name, delimiter = m.groups()
    +            if name[0] == "_" and len(name) > 1:    # "self", not "_self"
    +                name = name[1:]
    +            self.param_names.append(name)
    +
    +            if delimiter == ")":
    +                break
    +            start = m.end()
    +
    +    def get_return_type(self):
    +        if len(self.proto) < 2:
    +            return None
    +
    +        return self.proto[-1]
    +
    +    def replace_return_type(self, ret_type):
    +        if len(self.proto) < 2:
    +            return  # no-op for dummy prototypes
    +
    +        if len(self.proto) == 2:
    +            self.proto.append(ret_type)
    +        else:
    +            self.proto[-1] = ret_type
    +
    +    def text_after_proto(self, line):
    +        self.after += line + "\n"
    +
    +    def add_parameter(self, *parts):
    +        self.params.append(parts)
    +        self.inter .append("")
    +
    +    def add_cpp_param(self, name, ctype):
    +        self.ctypes[name] = ctype
    +
    +    def text_after_last_param(self, line):
    +        self.inter[-1] += line + "\n"
    +
    +    def text_return(self, line):
    +        self.retn += line + "\n"
    +
    +    def clone(self):
    +        copy = prototype_t(*self.proto)
    +        copy.ctypes = dict(self.ctypes)
    +        copy.after  = self.after
    +        copy.retn   = self.retn
    +
    +        for p, t in zip(self.params, self.inter):
    +            copy.params.append(tuple(p))
    +            copy.inter .append(t)
    +
    +        return copy
    +
    +    def total(self, case=None):
    +        # ignored? (typically from assembled_comment_t._clear_repeats)
    +        if self.ignored:
    +            return ""
    +
    +        part_1 = self.repr_proto() \
    +               + self._clean(self.after)
    +
    +        part_2 = ""
    +        for p, t in zip(self.params, self.inter):
    +            # note: not cleaning texts after parameters ("t")
    +            #       to preserve some of the original formatting
    +
    +            if self._is_parameter_ignored(p, case):
    +                repr_p = ""
    +                text_p = []
    +                for line in t.split("\n"):
    +                    # remove text associated to an ignored parameter,
    +                    # but stop removing on the next @tag
    +                    # (which may be other than @param)
    +
    +                    if text_p:
    +                        text_p.append(line)
    +                    else:
    +                        line_text = line.lstrip()
    +                        if line_text and line_text[0] == "@":
    +                            text_p.append(line)
    +                t = "\n".join(text_p)
    +            else:
    +                repr_p = self._repr_param(p, case)
    +
    +            part_2 += repr_p + t
    +
    +        clean_retn = self._clean(self.retn)
    +        if clean_retn:
    +            part_2 += "@return: " + clean_retn
    +
    +        return "\n".join(part for part in (part_1, part_2) if part)
    +
    +    def _is_parameter_ignored(self, parts, case):
    +        if not case:
    +            return False
    +
    +        _, name, _ = parts
    +        return case.is_parameter_ignored(name)
    +
    +    def _repr_param(self, parts, case):
    +        indent, name, desc = parts
    +
    +        if case:
    +            name, desc = case.change_param(name, desc)
    +
    +        text = indent + "@param " + name
    +        if name in self.ctypes:
    +            if desc == self.ctypes[name]: # avoid some duplication
    +                desc = ""
    +            desc = ("(C++: %s)" % self.ctypes[name]) \
    +                 + (" " if desc else "") + desc
    +        if desc:
    +            text += ": " + desc
    +
    +        return text + "\n"
    +
    +    def _clean(self, text):
    +        cleaned = text.strip("\n")
    +        if cleaned:
    +            cleaned += "\n"
    +        return cleaned
    +
    +    def repr_proto(self):
    +        if not self.proto[0]:
    +            return ""
    +
    +        if len(self.proto) == 1:
    +            verb("Internal error, prototype with only 1 part: %s"
    +                 % repr(self.proto))
    +            return self.proto[0] + "\n"
    +
    +        if len(self.proto) == 2:
    +            return "".join(self.proto) + "\n"
    +
    +        return "".join(self.proto[:-1]) \
    +             + " -> " + self.proto[-1] + "\n"
    +
    +# --------------------------------------------------------------------------
    +# Class to split a docstring into parts (prototype, parameter information, etc.)
    +#
    +# Docstrings are considered to be of the form:
    +#   (prototype, optionally parameters) repeated zero or more times,
    +#   with arbitrary text anywhere in-between.
    +#
    +# Prototypes are required to have NO space between function name and
    +# open parenthesis, otherwise many texts would look like a prototype.
    +
    +class structured_comment_t(object):
    +
    +    WORD       = r"[A-Za-z_][A-Za-z0-9_]*"
    +    PROTO_HEAD = r"(%s)(\(.*?\))" % WORD
    +
    +    RE_WORD   = re.compile(WORD)
    +    RE_PARAM  = re.compile(r"(%s) *: *([< ]*%s.*)" % (WORD, WORD))
    +    RE_PROTO1 = re.compile(PROTO_HEAD + r"$")
    +    RE_PROTO2 = re.compile(PROTO_HEAD + r" *-> *(.*)")
    +    RE_TITLE  = re.compile(r"[Pp]arameters? *:?$")  # Parameters
    +    RE_DASHES = re.compile(r"-+$")                  # ----------
    +    RE_INDENT = re.compile(r" *")
    +
    +    PAT_NONE   = 0
    +    PAT_PROTO  = 1
    +    PAT_PARAM  = 2
    +    PAT_TITLE  = 3
    +    PAT_RETURN = 4
    +    PAT_TEXT   = 5
    +
    +    def __init__(self, always_a_prototype=False):
    +        self.always_a_prototype = always_a_prototype
    +
    +        self.reset()
    +        self.parsed = False
    +
    +    def reset(self):
    +        self.text_before = ""
    +        self.prototypes  = []
    +        self.ctypes      = {}  # collected for only one prototype in Doxygen
    +
    +    def parse(self, text, parse_prototypes=True):
    +        self.reset()
    +        self.parsed = True
    +
    +        lines = text.split("\n") if text else [""]
    +        prev  = self.PAT_NONE
    +        state = self.PAT_NONE # used to decide where to store text
    +                              # (after the prototype, or after a parameter)
    +
    +        if self.always_a_prototype:
    +            self.prototypes.append(prototype_t(""))
    +            state = self.PAT_PROTO
    +
    +        for line in lines:
    +            pat  = self._pattern(line, prev, parse_prototypes)
    +            prev = pat
    +
    +            if pat == self.PAT_TITLE:
    +                continue
    +
    +            if pat == self.PAT_PROTO:
    +                self.prototypes.append(prototype_t(*self.parts))
    +
    +            elif pat == self.PAT_PARAM:
    +                if not self.prototypes:
    +                    self.prototypes.append(prototype_t(""))
    +                self.prototypes[-1].add_parameter(*self.parts)
    +
    +            elif pat == self.PAT_RETURN:
    +                if not self.prototypes:
    +                   self.prototypes.append(prototype_t(""))
    +                self.prototypes[-1].text_return(self.parts[0])
    +
    +            elif pat == self.PAT_TEXT:
    +                if self.prototypes:
    +                    if state == self.PAT_PROTO:
    +                        self.prototypes[-1].text_after_proto(line)
    +                    elif state == self.PAT_PARAM:
    +                        self.prototypes[-1].text_after_last_param(line)
    +                    elif state == self.PAT_RETURN:
    +                        self.prototypes[-1].text_return(line)
    +                    else:
    +                        self.text_before += line + "\n"
    +                else:
    +                    self.text_before += line + "\n"
    +
    +            if pat in (self.PAT_PROTO, self.PAT_PARAM, self.PAT_RETURN):
    +                state = pat
    +
    +    def _pattern(self, line, prev, parse_prototypes):
    +        # may also return extra information in self.parts
    +
    +        indent = self.RE_INDENT.match(line).group(0)
    +        line   = line.strip()
    +
    +        if line.startswith("@"):
    +            m = self.RE_WORD.search(line, 1)
    +            if m:
    +                tag = m.group(0)
    +                if tag == "param":
    +                    m = self.RE_WORD.search(line, m.end())
    +                    if m:
    +                        self.parts = indent, m.group(0), \
    +                                     self._rest_after_colon(line, m)
    +                        return self.PAT_PARAM
    +                    raise process_exception_t("No word after @param: " + line)
    +                if tag == "return":
    +                    self.parts = (self._rest_after_colon(line, m),)
    +                    return self.PAT_RETURN
    +                else:
    +                    return self.PAT_TEXT
    +
    +            verb("Missing or invalid tag after \"@\": " + line)
    +            return self.PAT_TEXT
    +
    +        if self.RE_TITLE.match(line) or self.RE_DASHES.match(line):
    +            return self.PAT_TITLE
    +
    +        m = self.RE_PARAM.match(line)
    +        if m and prev != self.PAT_TEXT:
    +            self.parts = (indent,) + m.groups()
    +            return self.PAT_PARAM
    +
    +        if not indent and parse_prototypes:
    +            for re in (self.RE_PROTO1, self.RE_PROTO2):
    +                m = re.match(line)
    +                if m:
    +                    self.parts = m.groups()
    +                    return self.PAT_PROTO
    +
    +        return self.PAT_TEXT
    +
    +    def _rest_after_colon(self, line, m):
    +        rest = line[m.end():].strip()
    +        if rest and rest[0] == ":":
    +            rest = rest[1:].lstrip()
    +        return rest
    +
    +    def add_cpp_params(self, plist):
    +        if plist is None:
    +            return
    +        proto = self.prototypes[-1]
    +        for name, ctype in plist:
    +            proto.add_cpp_param(name, ctype)
    +
    +    def total(self):
    +        # used only for debug output;
    +        # no notion of "special cases" passed to prototype_t.total()
    +
    +        text = self.text_before
    +        if text:
    +            text = "\n" + text
    +
    +        protos = "\n".join(p.total() for p in self.prototypes)
    +        if protos:
    +            protos = "\n" + protos
    +
    +        return text + protos
    +
    +# --------------------------------------------------------------------------
    +class assembled_comment_t(object):
    +    def __init__(self, case):
    +        self.case        = case
    +        self.text_before = ""
    +        self.prototypes  = []
    +
    +    def add_text_before(self, text):
    +        self.text_before += text
    +
    +    def add_prototype(self, prototype):
    +        self.prototypes.append(prototype.clone())
    +
    +    def match_prototype(self, given):
    +        for i in range(len(self.prototypes)):
    +            if self._match(self.prototypes[i], given):
    +                return i
    +        return -1
    +
    +    # add more detail if needed
    +    def _match(self, p1, p2):
    +        t1 = tuple(p1.proto)
    +        t2 = tuple(p2.proto)
    +
    +        if t1 == ("",) or t2 == ("",):
    +            # wildcard - possibly coming from structured_comment_t(True)
    +            return True
    +
    +        return t1 == t2
    +
    +    def replace_after_prototype(self, i, given):
    +        proto = self.prototypes[i]
    +        if tuple(proto.proto) == ("",):
    +            proto.proto       = given.proto
    +            proto.param_names = given.param_names
    +        proto.ctypes = given.ctypes
    +        proto.after  = given.after
    +        proto.retn   = given.retn
    +
    +        # replace only the parameters that match the prototype
    +
    +        old_params = proto.params
    +        old_inter  = proto.inter
    +        proto.params = []
    +        proto.inter  = []
    +
    +        names_in_proto = proto.param_names
    +        if len(names_in_proto) > 1 and names_in_proto[0] == "self":
    +            names_in_proto = names_in_proto[1:]
    +
    +        given_params = self._params_fix(given.params, names_in_proto)
    +
    +        NAME = 1
    +        index_old   = { old_params[i][NAME]   : (old_params[i], old_inter[i]) \
    +                                                for i in range(len(old_params)) }
    +        index_given = { given.params[i][NAME] : (given.params[i], given.inter[i]) \
    +                                                for i in range(len(given.params)) }
    +
    +        selected = set()
    +        for i in range(len(names_in_proto)):
    +            param, inter = self._choose_param(i, names_in_proto,
    +                            given.params, given.inter, index_given,
    +                            old_params,   old_inter,   index_old)
    +            if param is not None:
    +                selected.add(param[NAME])
    +                proto.params.append(param)
    +                proto.inter .append(inter)
    +
    +        # extra given parameters (not in the prototype)
    +        # are added but marked as ignored,
    +        # so that additional @tags in the inter-text can be displayed
    +
    +        for i in range(len(names_in_proto), len(given.params)):
    +            name = given.params[i][NAME]
    +            if name not in selected:
    +                debug("Param %d: ignored \"%s\"" % (i, name))
    +                self.ignore_parameter(name)
    +                proto.params.append(given.params[i])
    +                proto.inter .append(given.inter [i])
    +
    +    def _params_fix(self, given_params, names_in_proto):
    +        # make "py_XXX" match "XXX"
    +
    +        NAME = 1
    +        for i in range(min(len(names_in_proto), len(given_params))):
    +            given_param = list(given_params[i])
    +            in_proto    = names_in_proto[i]
    +
    +            if in_proto[:3] == "py_" and in_proto[3:] == given_param[NAME]:
    +                given_param[NAME] = in_proto
    +                given_params[i] = tuple(given_param)
    +
    +    def _choose_param(self, i, names_in_proto,
    +                            given_params, given_inter, index_given,
    +                            old_params,   old_inter,   index_old):
    +        def safe_index(i, arr):
    +            return arr[i] if i < len(arr) else None
    +
    +        in_proto = names_in_proto[i]
    +
    +        # use a name if recognized, even if not in order
    +        if in_proto in index_given:
    +            given_param, given_inter = index_given[in_proto]
    +        else:
    +            given_param = safe_index(i, given_params)
    +            given_inter = safe_index(i, given_inter)
    +
    +        if in_proto in index_old:
    +            old_param, old_inter = index_old[in_proto]
    +        else:
    +            old_param = safe_index(i, old_params)
    +            old_inter = safe_index(i, old_inter)
    +
    +        NAME = 1
    +        DESC = 2
    +
    +        debug("Param %d: in prototype \"%s\", original doc \"%s\", given doc \"%s\""
    +              % (i, in_proto, old_param[NAME] if old_param else "",
    +                              given_param[NAME] if given_param else ""))
    +
    +        if given_param is None:
    +            if old_param:
    +                debug("- choosing old \"%s\" because none given" % old_param[NAME])
    +            return old_param, old_inter
    +
    +        # make "py_XXX" match "XXX"
    +        given_param = list(given_param)
    +        if in_proto[:3] == "py_" and in_proto[3:] == given_param[NAME]:
    +            given_param[NAME] = in_proto
    +        given_param = tuple(given_param)
    +
    +        if in_proto == "" or given_param[NAME] == in_proto:
    +            debug("- choosing given \"%s\"" % given_param[NAME])
    +            return given_param, given_inter
    +
    +        if old_param is None:
    +            debug("- no match")
    +            return None, None
    +
    +        # even if there is no match,
    +        # choose data if it appears to be more informative
    +
    +        if len(old_param[NAME]) <= 2 and len(given_param[NAME]) > 2:
    +            debug("- choosing given \"%s\" because of short name \"%s\""
    +                  % (given_param[NAME], old_param[NAME]))
    +            return given_param, given_inter
    +
    +        if len(given_param[NAME]) <= 2 and len(old_param[NAME]) > 2:
    +            debug("- choosing old \"%s\" because of short name \"%s\""
    +                  % (old_param[NAME], given_param[NAME]))
    +            return old_param, old_inter
    +
    +        if len(given_param[DESC]) > 3 * len(old_param[DESC]):
    +            debug("- choosing given \"%s\" because it has more text"
    +                  % given_param[NAME])
    +            return given_param, given_inter
    +
    +        if old_param:
    +            debug("- no good match, choosing old \"%s\""
    +                  % old_param[NAME])
    +        return old_param, old_inter
    +
    +    def ignore_parameters(self, ignore_set):
    +        if ignore_set:
    +            for name in ignore_set:
    +                self.ignore_parameter(name)
    +
    +    def ignore_parameter(self, name):
    +        if self.case is None:
    +            self.case = case_t("", [])
    +            # assembled_comment_t operates at the very end of the process;
    +            # there is likely no need to store this dummy case_t in the
    +            # dictionary of cases for all symbols (inside pydoc_patcher_t)
    +
    +        self.case.ignore_parameter(name)
    +
    +    def total(self):
    +        self._clear_repeats()
    +        return self.text_before + "".join(p.total(self.case) \
    +                                          for p in self.prototypes)
    +
    +    def _clear_repeats(self):
    +        unique = set()
    +        for p in self.prototypes:
    +            tuple_p = tuple(p.proto)
    +            if tuple_p in unique:
    +                p.ignored = True
    +            else:
    +                unique.add(tuple_p)
    +
    +# --------------------------------------------------------------------------
    +def main():
    +    swig = swig_pydoc_collector_t()
    +    swig.collect(args.interface)
    +
    +    cpp = cpp_wrapper_parser_t()
    +    cpp.collect(args.cpp_wrapper)
    +
    +    doxy = doxygen_info_t(args.xml_doc_directory)
    +    doxy.load_hooks()
    +    doxy.load(args.module)
    +
    +    extra_sources = swig, cpp, doxy
    +
    +    patcher = pydoc_patcher_t()
    +    patcher.patch(args.input, extra_sources, args.output)
    +
    +main()
    diff --git a/tools/inject_pydoc_cases.txt b/tools/inject_pydoc_cases.txt
    new file mode 100644
    index 0000000..bb0d71f
    --- /dev/null
    +++ b/tools/inject_pydoc_cases.txt
    @@ -0,0 +1,10 @@
    +
    +# Individual exceptions to the general processing in "inject_pydoc.py".
    +
    +{
    +  "typeinf.til_t.base" : [
    +    {
    +      "doxy-kind" : "variable"
    +    }
    +  ]
    +}
    diff --git a/tools/patch_codegen.py b/tools/patch_codegen.py
    index 8016f78..165dcaf 100644
    --- a/tools/patch_codegen.py
    +++ b/tools/patch_codegen.py
    @@ -139,6 +139,7 @@ with open(args.input) as f:
         current_function_proto = None
         current_function_uses_args = False
         current_function_uses_varargs = False
    +    current_function_uses_AppendOutput = False
     
         def prepend_subst(subst, to_prepend, orig_line):
             if not isinstance(to_prepend, list):
    @@ -188,6 +189,7 @@ with open(args.input) as f:
                 current_function_proto = line
                 current_function_uses_args = False
                 current_function_uses_varargs = False
    +            current_function_uses_AppendOutput = False
                 func_patches = patches.get(current_function, [])[:]
                 if current_function == "SWIG_Python_TypeError":
                     func_patches.append(
    @@ -216,12 +218,23 @@ with open(args.input) as f:
                         ))
                 line = line.replace(", ...arg0)", ", ...)")
             else:
    -            if line.find("PyArg_UnpackTuple(args") > -1:
    +            if line.find("(args") > -1:
                     current_function_uses_args = True
    -            elif line.find(" = args;"):
    +            elif line.find(" = args;") > -1:
                     current_function_uses_args = True
                 elif line.find("varargs") > -1:
                     current_function_uses_varargs = True
    +
    +            if line.find("SWIG_Python_AppendOutput") > -1:
    +                current_function_uses_AppendOutput = True
    +            elif line.find("return resultobj;") > -1:
    +                if current_function_uses_AppendOutput:
    +                    subst = line.rstrip().replace(
    +                        "resultobj",
    +                        "PyList_Check(resultobj) ? PyList_AsTuple(resultobj) : resultobj"
    +                    )
    +                    subst = "%s %s" % (subst, patched_cmt)
    +
                 for patch_kind, patch_data in func_patches:
                     if patch_kind == "spontaneous_callback_call":
                         if patch_data is not None:
    @@ -283,7 +296,7 @@ with open(args.input) as f:
                                     hooks_class_name, hooks_class_name),
                             ]
                             for forbidden, replacement in (patch_data or []):
    -                            subst.append("ensure_no_method_when_no_695_compat(self, \"%s\", \"%s\");" % (
    +                            subst.append("ensure_no_method(self, \"%s\", \"%s\");" % (
                                     forbidden, replacement))
     
                     elif patch_kind == "thread_unsafe":
    @@ -318,6 +331,12 @@ with open(args.input) as f:
                                 subst = re.sub("\(.*\);", call_args + ";", line)
                                 if add_error:
                                     subst = ["#error CHECK_THAT_THIS_WORKS", subst]
    +                elif patch_kind == "nullptr_result_on_py_error":
    +                    rpfx = "  resultobj = "
    +                    idx = line.find(rpfx)
    +                    if idx > -1:
    +                        repl = line[0:idx+len(rpfx)] + "PyErr_Occurred() != nullptr ? nullptr : " + line[idx+len(rpfx):]
    +                        subst = ["%s %s" % (repl, patched_cmt)]
                     else:
                         raise Exception("Unknown patch kind: %s" % patch_kind)
                 entered_function = False
    diff --git a/tools/patch_codegen/bytes.py b/tools/patch_codegen/bytes.py
    new file mode 100644
    index 0000000..8adf771
    --- /dev/null
    +++ b/tools/patch_codegen/bytes.py
    @@ -0,0 +1,8 @@
    +{
    +    "next_that" : [
    +        ("nullptr_result_on_py_error", None),
    +    ],
    +    "prev_that" : [
    +        ("nullptr_result_on_py_error", None),
    +    ],
    +}
    diff --git a/tools/patch_codegen/dirtree.py b/tools/patch_codegen/dirtree.py
    index b6dcdf4..d5be2e3 100644
    --- a/tools/patch_codegen/dirtree.py
    +++ b/tools/patch_codegen/dirtree.py
    @@ -1,10 +1,20 @@
     {
         "SwigDirector_dirspec_t::get_name" : [
    -        ("spontaneous_callback_call", None),
             ("repl_text", (
                 "int swig_res = SWIG_AsVal_bool(result, &swig_val);",
                 ("int swig_res = IDAPyStr_Check(result) && (out == nullptr || IDAPyStr_AsUTF8(out, result));",
                  "  swig_val = static_cast(swig_res);"))),
    +        ("director_method_call_arity_cap", (
    +            True, # add GIL lock
    +            "get_name",
    +            "(method ,(PyObject *)obj0,(__argcnt < 2 ? NULL : (PyObject *)obj1), NULL)",
    +            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(__argcnt < 3 ? NULL : (PyObject *)obj1), NULL)",
    +        )),
    +        ("spontaneous_callback_call", (
    +            False,                               # add GIL lock
    +            None,                                # try anchor
    +            None,                                # catch anchor
    +        )),
         ],
         "SwigDirector_dirspec_t::get_inode" : [
             ("spontaneous_callback_call", None)
    diff --git a/tools/patch_codegen/funcs.py b/tools/patch_codegen/funcs.py
    new file mode 100644
    index 0000000..63ef84f
    --- /dev/null
    +++ b/tools/patch_codegen/funcs.py
    @@ -0,0 +1,13 @@
    +{
    +    "func_item_iterator_t___next__" : [
    +        ("nullptr_result_on_py_error", None),
    +    ],
    +    "func_item_iterator_t_prev" : [
    +        ("nullptr_result_on_py_error", None),
    +    ],
    +    "func_item_iterator_t_succ" : [
    +        ("nullptr_result_on_py_error", None),
    +    ],
    +}
    +
    +
    diff --git a/tools/patch_codegen/idp.py b/tools/patch_codegen/idp.py
    index 90a0a26..366bb01 100644
    --- a/tools/patch_codegen/idp.py
    +++ b/tools/patch_codegen/idp.py
    @@ -74,4 +74,13 @@ if ( __argcnt == 2 )
                 "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2,(__argcnt < 5 ? NULL : (PyObject *)obj3), NULL)")
             ),
         ],
    +
    +    "SwigDirector_IDB_Hooks::segm_deleted" : [
    +        ("director_method_call_arity_cap", (
    +            False, # add GIL lock
    +            "segm_deleted",
    +            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? NULL : (PyObject *)obj2), NULL)",
    +            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? NULL : (PyObject *)obj2), NULL)")
    +        ),
    +    ],
     }
    diff --git a/tools/swigdocs.py b/tools/swigdocs.py
    deleted file mode 100644
    index 944d64e..0000000
    --- a/tools/swigdocs.py
    +++ /dev/null
    @@ -1,98 +0,0 @@
    -# -----------------------------------------------------------------------
    -# This script is used to extract embedded documentation strings
    -# from SWIG interface files.
    -# (c) Hex-Rays
    -#
    -import glob
    -import sys
    -import os
    -
    -# ---------------------------------------------------------------------------
    -def extract_docs(lines, out):
    -    S_SWIG_CLOSE    = '%}'
    -    S_PYDOC_START   = '#'
    -    S_PYDOC_END     = '#'
    -    S_COMMENT       = '#'
    -    S_INLINE        = '%inline %{'
    -    S_PYCODE_START  = '%pythoncode %{'
    -
    -    in_inline = False
    -    in_pythoncode = False
    -    in_pydoc = False
    -
    -    for line in lines:
    -        line = line.rstrip()
    -        # skip empty lines
    -        if not line:
    -            continue
    -
    -        # Inside pythoncode tag?
    -        if in_pythoncode:
    -            if line == S_PYDOC_START:
    -                in_pydoc = True
    -                continue
    -            elif line == S_PYDOC_END:
    -                in_pydoc = False
    -                continue
    -            elif line == S_SWIG_CLOSE:
    -                in_pythoncode = False
    -                continue
    -            # Skip unneeded tags
    -            elif line[:8] == '#